12-SAS 相关与回归分析
1 直线相关分析
两个变量之间的相关关系分析可以使用 corr过程。如两个变量都来自正态分布的总体,可以作直线相关分析,计算 Pearson 相关系数。
以下数据和程序用来说明如何计算直线相关系数。
数据集可从 Data-collection 处下载。
如可以选择如下方式载入数据集:
- 数据集载入 libname 目录下:
libname libname ‘C:\syp\data’;
data = dataset;
set libname.spec-data;
where spec-condition;
keep var1 var2...;
drop var1 var2...;
format var1 dollar12. var2 monyy.;
run;
程序说明:
libname
语句定义了将在 SAS 的环境中的 SAS 资源管理器下新建一个工作目录;‘C:\syp\data’
是数据集所在的路径,指定了你想要导入的数据;data = dataset
是创建一个新的数据集,dataset
是数据集的名称;set libname.spec-data
是从指定的库中读取数据集;where spec-condition
是指定数据集的条件筛选;keep var1 var2...
是指定保留的数据变量;drop var1 var2...
是指定删除的数据变量;format var1 dollar12. var2 monyy.
是指定变量的格式。run;
语句结束数据步。
- 或者直接使用 infile 语句读取数据:
- 使用
input
语句和datalines
语句直接输入数据:
代码
Using SAS Config named: winlocal
SAS Connection established. Subprocess id is 17040
CORR 过程
2 变量: | x y |
简单统计量 | ||||||
---|---|---|---|---|---|---|
变量 | 数目 | 均值 | 标准差 | 总和 | 最小值 | 最大值 |
x | 12 | 12.45000 | 1.18244 | 149.40000 | 10.82000 | 14.72000 |
y | 12 | 10.95083 | 1.08520 | 131.41000 | 9.08000 | 12.89000 |
Pearson 相关系数, N = 12 Prob > |r|, H0: Rho=0 |
||
---|---|---|
x | y | |
x |
1.00000
|
0.81599
0.0012
|
y |
0.81599
0.0012
|
1.00000
|
1.1 结果说明
corr
过程首先给出两个变量的一些简单统计量,如例数、均数、标准差、总和、最小值和最大值。
随后输出相关分析的结果,结果中有 Pearson 相关系数,即直线相关系数,还有判断该相关系数是否来自总体相关系数为0的总体假设检验的 P 值(当 \(H_0:Rho=0\) 时,\(Prob>r\)),这两个值位于两个变量名所交叉处,相关系数位于上方,检验结果的 P 值位于下方。
这里 Pearson 相关系数为 r=0.815 99,所对应的 P=0.001 2<0.05说明两个变量之间存在正相关关系,即一个变量的值增大时,另一个变量的值也相应增大。
2 直线回归分析
直线回归分析是研究一个因变量与一个或多个自变量之间的线性关系。SAS 中可以使用 reg
过程和 nlin
过程进行直线回归分析。
直线回归分析是回归分析中较为简单的一种,即两个变量的数值在散点图上呈直线变化,完成直线回归可用 reg
过程。
代码
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 9 |
使用的观测数 | 9 |
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 1 | 7.61077 | 7.61077 | 59.15 | 0.0001 |
误差 | 7 | 0.90072 | 0.12867 | ||
校正合计 | 8 | 8.51149 |
均方根误差 | 0.35871 | R 方 | 0.8942 |
因变量均值 | 4.14889 | 调整 R 方 | 0.8791 |
变异系数 | 8.64598 |
参数估计 | |||||
---|---|---|---|---|---|
变量 | 自由度 | 参数 估计 |
标准 误差 |
t 值 | Pr > |t| |
Intercept | 1 | 1.29098 | 0.39037 | 3.31 | 0.0130 |
x | 1 | 0.06952 | 0.00904 | 7.69 | 0.0001 |
REG 过程
模型: MODEL1
因变量: y
2.1 model 语句常用选项
stb
选项:model y = x / stb
计算标准化回归系数,即将自变量和因变量都标准化后进行回归分析,得到的回归系数可以直接比较各个自变量对因变量的影响大小。p
选项:model y = x / p
计算预测值和残差,即在回归分析中计算每个观测值的预测值和残差,可以用于评估模型的拟合效果。clb
选项:model y = x / clb
计算回归系数的置信区间,即在回归分析中计算每个回归系数的置信区间,可以用于评估回归系数的可靠性。cli
输出每个观测预测值的双侧 95%容许区间。clm
输出每个观测预测值均数的双侧95% 置信区间。r
输出残差分析的结果,除了输出p选项要求的内容外,还包括预测值和残差的标准误、student
残差和Conk
的D
统计量。如果使用了cli
、clm
和r
选项,p
选项就可以省略。语句为model y=x/cli clm r
;
代码
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 9 |
使用的观测数 | 9 |
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 1 | 7.61077 | 7.61077 | 59.15 | 0.0001 |
误差 | 7 | 0.90072 | 0.12867 | ||
校正合计 | 8 | 8.51149 |
均方根误差 | 0.35871 | R 方 | 0.8942 |
因变量均值 | 4.14889 | 调整 R 方 | 0.8791 |
变异系数 | 8.64598 |
参数估计 | |||||
---|---|---|---|---|---|
变量 | 自由度 | 参数 估计 |
标准 误差 |
t 值 | Pr > |t| |
Intercept | 1 | 1.29098 | 0.39037 | 3.31 | 0.0130 |
x | 1 | 0.06952 | 0.00904 | 7.69 | 0.0001 |
REG 过程
模型: MODEL1
因变量: y
输出统计量 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
观测 | 因 变量 |
预测 值 |
标准 误差 均值 预测 |
95% 置信均值 | 95% 置信预测 | 残差 | 标砖误差 残差 |
Student 残差 |
Cook D | ||
1 | 5.32 | 5.1839 | 0.1800 | 4.7582 | 5.6096 | 4.2349 | 6.1330 | 0.1361 | 0.310 | 0.439 | 0.032 |
2 | 3.21 | 3.5155 | 0.1452 | 3.1722 | 3.8588 | 2.6005 | 4.4306 | -0.3055 | 0.328 | -0.931 | 0.085 |
3 | 4.67 | 4.1412 | 0.1196 | 3.8584 | 4.4239 | 3.2471 | 5.0353 | 0.5288 | 0.338 | 1.564 | 0.153 |
4 | 5.03 | 4.8363 | 0.1493 | 4.4833 | 5.1893 | 3.9176 | 5.7551 | 0.1937 | 0.326 | 0.594 | 0.037 |
5 | 3.01 | 3.0289 | 0.1884 | 2.5833 | 3.4745 | 2.0708 | 3.9870 | -0.0189 | 0.305 | -0.062 | 0.001 |
6 | 3.57 | 3.7241 | 0.1317 | 3.4126 | 4.0355 | 2.8205 | 4.6277 | -0.1541 | 0.334 | -0.462 | 0.017 |
7 | 2.98 | 2.7508 | 0.2176 | 2.2363 | 3.2653 | 1.7588 | 3.7429 | 0.2292 | 0.285 | 0.804 | 0.188 |
8 | 3.93 | 4.5583 | 0.1309 | 4.2488 | 4.8678 | 3.6553 | 5.4612 | -0.6283 | 0.334 | -1.881 | 0.272 |
9 | 5.62 | 5.6010 | 0.2235 | 5.0725 | 6.1295 | 4.6016 | 6.6004 | 0.0190 | 0.281 | 0.068 | 0.001 |
残差和 | 0 |
残差平方和 | 0.90072 |
预测残差 SS (PRESS) | 1.26549 |
结果说明
- 第 5、6 列为 clm 选项的结果,为预测值均数的 95% 置信区间(95% CL Mean );
- 第 7、8 列为 cli选项的结果,为预测值的 95%容许区间(95%CPredict);第9列为残差值(Residual);
- 第 10~12 列为选项r的结果,分别为残差标准误(Sld ErrorResidual)、student 残差值( Student Residual)、和Cook D统计量(Cook’sD),从 Cook’s D统计量可以看出第8观测与其他观测有很大差异,在实际工作中应仔细考察这个观测的情况。
2.2 两条回归直线的比较
使用 glm
过程可以比较两条回归直线,即比较两个不同组别的回归直线是否有显著差异。
代码
%%SAS
/*程序12-4*/
data two_liner;
input x y c @@;
datalines;
13 3.54 1 11 3.01 1 9 3.09 1 6 2.48 1 8 2.56 1 10 3.36 1 12 3.18 1 7 2.65 1
10 3.01 2 9 2.83 2 11 2.92 2 12 3.09 2 15 3.98 2 16 3.89 2 8 2.21 2 7 2.39 2
10 2.74 2 15 3.36 2
;
proc glm data = two_liner;
class c;
model y= x c x*c;
run;
proc glm data = two_liner;
class c;
model y = x c;
run;
GLM 过程
分类水平信息 | ||
---|---|---|
分类 | 水平 | 值 |
c | 2 | 1 2 |
读取的观测数 | 18 |
使用的观测数 | 18 |
GLM 过程
因变量: y
源 | 自由度 | 平方和 | 均方 | F 值 | Pr > F |
---|---|---|---|---|---|
模型 | 3 | 3.44201996 | 1.14733999 | 27.18 | <.0001 |
误差 | 14 | 0.59100782 | 0.04221484 | ||
校正合计 | 17 | 4.03302778 |
R 方 | 变异系数 | 均方根误差 | y 均值 |
---|---|---|---|
0.853458 | 6.812167 | 0.205463 | 3.016111 |
源 | 自由度 | I 型 SS | 均方 | F 值 | Pr > F |
---|---|---|---|---|---|
x | 1 | 3.19449983 | 3.19449983 | 75.67 | <.0001 |
c | 1 | 0.21641720 | 0.21641720 | 5.13 | 0.0400 |
x*c | 1 | 0.03110293 | 0.03110293 | 0.74 | 0.4052 |
源 | 自由度 | III 型 SS | 均方 | F 值 | Pr > F |
---|---|---|---|---|---|
x | 1 | 2.75799086 | 2.75799086 | 65.33 | <.0001 |
c | 1 | 0.08377358 | 0.08377358 | 1.98 | 0.1807 |
x*c | 1 | 0.03110293 | 0.03110293 | 0.74 | 0.4052 |
GLM 过程
分类水平信息 | ||
---|---|---|
分类 | 水平 | 值 |
c | 2 | 1 2 |
读取的观测数 | 18 |
使用的观测数 | 18 |
GLM 过程
因变量: y
源 | 自由度 | 平方和 | 均方 | F 值 | Pr > F |
---|---|---|---|---|---|
模型 | 2 | 3.41091703 | 1.70545851 | 41.12 | <.0001 |
误差 | 15 | 0.62211075 | 0.04147405 | ||
校正合计 | 17 | 4.03302778 |
R 方 | 变异系数 | 均方根误差 | y 均值 |
---|---|---|---|
0.845746 | 6.752131 | 0.203652 | 3.016111 |
源 | 自由度 | I 型 SS | 均方 | F 值 | Pr > F |
---|---|---|---|---|---|
x | 1 | 3.19449983 | 3.19449983 | 77.02 | <.0001 |
c | 1 | 0.21641720 | 0.21641720 | 5.22 | 0.0373 |
源 | 自由度 | III 型 SS | 均方 | F 值 | Pr > F |
---|---|---|---|---|---|
x | 1 | 3.39583675 | 3.39583675 | 81.88 | <.0001 |
c | 1 | 0.21641720 | 0.21641720 | 5.22 | 0.0373 |
程序说明
- 进行两条回归直线比较可调用
glm
过程,在glm
过程中需定义分组变量,本例为c
。在定义模型时,将变量x
和c
同时加入模型中,并考察两者的交互作用,该交互作用就是检验两条直线的回归系数之间差异是否有统计学意义。 - 第二个
glm
过程没有变量x
和c
的交互项,则考察两条回归直线的截距之间的差异是否有统计学意义。
结果说明
- 第一个
glm
过程的结果中,主要考察x*c
的交互作用项的 F 值和 P 值。F 值为 0.74,P 值为 0.4052,说明两条回归直线的斜率没有显著差异。 - 第二个
glm
过程的结果中,主要考察c
的 F 值和 P 值。F 值为 5.22,P 值为 0.0373,说明两条回归直线的截距有显著差异。
3 秩相关
当样本资料不服从正态分布时,用直线相关不能正确描述两个变量之间的相关关系,此时可考虑用秩相关进行分析。
主要可以使用 proc corr
过程中的 spearman
选项来计算 Spearman 秩相关系数。
数据集可以从 Data-collection 处下载。
代码
CORR 过程
2 变量: | x y |
简单统计量 | ||||||
---|---|---|---|---|---|---|
变量 | 数目 | 均值 | 标准差 | 中位数 | 最小值 | 最大值 |
x | 18 | 5.55556 | 8.66889 | 0.95500 | 0.03000 | 27.96000 |
y | 18 | 5.55556 | 8.31028 | 2.89500 | 0.05000 | 33.95000 |
Spearman 相关系数, N = 18 Prob > |r|, H0: Rho=0 |
||
---|---|---|
x | y | |
x |
1.00000
|
0.90506
<.0001
|
y |
0.90506
<.0001
|
1.00000
|
3.1 结果说明
该结果的结构与两变量直线相关分析的结构很相似,只是最后计算的相关系数为 Spearman 相关系数。本例秩相关系数为 0.905 06,所对应的 P<0.0001,说明 x 与 y 构成的关系有统计学意义。
4 加权直线回归
前述直线回归方程的最小二乘估计方法对于模型中的每个观测点是同等看待的,反映在确定回归直线时每个点的残差平方和要最小。然而在某些情况下,根据一定的专业知识考虑并结合实际数据,某些观察值对于估计回归方程显得更“重要”而有些并不是很“重要”此时可以采用加权最小二乘估计,以减少方差较大的观测对回归结果的影响。
- 加权最小二乘法(WLS):通过观测量方差的倒数对观测进行加权,从而拟合线性回归模型。
- 权重的选择:理想的权重是误差方差的倒数,但通常难以计算,因此需要使用其他方法来确定。
- 加权回归在处理数据时能够提高模型的准确性,尤其是在数据存在异方差性时。
4.1 示例
序号 | 年龄/岁(X) | IgG抗体水平(Y) | \(W=\frac{1}{X^2}\) | \(WX=\frac{1}{X}\) | \(WY\) | \(WXY=\frac{Y}{X}\) | \(WY^2=\frac{Y^2}{X^2}\) |
---|---|---|---|---|---|---|---|
1 | 0.11 | 4.00 | 82.64 | 9.09 | 330.58 | 36.36 | 1322.31 |
2 | 0.12 | 5.10 | 69.44 | 8.33 | 354.17 | 42.50 | 1806.25 |
3 | 0.21 | 9.50 | 22.68 | 4.76 | 215.42 | 45.24 | 2046.49 |
4 | 0.30 | 9.00 | 11.11 | 3.33 | 100.00 | 30.00 | 900.00 |
5 | 0.34 | 17.20 | 8.65 | 2.94 | 148.79 | 50.59 | 2559.17 |
6 | 0.44 | 14.00 | 5.17 | 2.27 | 72.31 | 31.82 | 1012.40 |
7 | 0.56 | 18.90 | 3.19 | 1.79 | 60.27 | 33.75 | 1139.06 |
8 | 0.60 | 29.40 | 2.78 | 1.67 | 81.67 | 49.00 | 2401.00 |
9 | 0.69 | 22.10 | 2.10 | 1.45 | 46.42 | 32.03 | 1025.86 |
10 | 0.80 | 41.50 | 1.56 | 1.25 | 64.84 | 51.87 | 2691.02 |
合计 | 4.17 | 170.70 | 209.32 | 36.89 | 1474.46 | 403.16 | 16903.55 |
代码
Using SAS Config named: winlocal
SAS Connection established. Subprocess id is 33664
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 10 |
使用的观测数 | 10 |
权重: w
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 1 | 5869.96312 | 5869.96312 | 72.53 | <.0001 |
误差 | 8 | 647.41204 | 80.92650 | ||
校正合计 | 9 | 6517.37516 |
均方根误差 | 8.99592 | R 方 | 0.9007 |
因变量均值 | 7.04403 | 调整 R 方 | 0.8882 |
变异系数 | 127.70979 |
参数估计 | |||||
---|---|---|---|---|---|
变量 | 自由度 | 参数 估计 |
标准 误差 |
t 值 | Pr > |t| |
Intercept | 1 | -0.17197 | 1.05095 | -0.16 | 0.8741 |
x | 1 | 40.95053 | 4.80825 | 8.52 | <.0001 |
REG 过程
模型: MODEL1
因变量: y
5 指数曲线会回归
5.1 示例
编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
住院天数(x) | 2 | 5 | 7 | 10 | 14 | 19 | 26 | 31 | 34 | 38 | 45 | 52 | 53 | 60 | 65 |
预后指数(y) | 54 | 50 | 45 | 37 | 35 | 25 | 20 | 16 | 18 | 13 | 8 | 11 | 8 | 4 | 6 |
代码
NLIN 过程
因变量“y”
方法: Gauss-Newton
迭代阶段 | |||
---|---|---|---|
迭代 | a | b | 平方和 |
0 | 0 | 0 | 11425.0 |
1 | 2.8413 | -0.0470 | 6455.2 |
2 | 3.7352 | -0.0365 | 879.2 |
3 | 4.1136 | -0.0402 | 66.2189 |
4 | 4.0719 | -0.0396 | 49.4669 |
5 | 4.0709 | -0.0396 | 49.4593 |
6 | 4.0708 | -0.0396 | 49.4593 |
NOTE: Convergence criterion met. |
估计汇总 | |
---|---|
方法 | Gauss-Newton |
迭代 | 6 |
子迭代 | 4 |
平均子迭代 | 0.666667 |
R | 6.724E-6 |
PPC(b) | 1.048E-6 |
RPC(b) | 0.000032 |
对象 | 4.399E-8 |
目标 | 49.4593 |
读取的观测 | 15 |
使用的观测 | 15 |
缺失的观测 | 0 |
An intercept was not specified for this model.
源 | 自由度 | 平方和 | 均方 | F 值 | 近似 Pr > F |
---|---|---|---|---|---|
模型 | 2 | 12060.5 | 6030.3 | 1585.01 | <.0001 |
误差 | 13 | 49.4593 | 3.8046 | ||
未校正合计 | 15 | 12110.0 |
参数 | 估计 | 近似 标准误差 |
近似 95% 置信限 | |
---|---|---|---|---|
a | 4.0708 | 0.0251 | 4.0166 | 4.1251 |
b | -0.0396 | 0.00171 | -0.0433 | -0.0359 |
近似相关矩阵 | ||
---|---|---|
a | b | |
a | 1.0000000 | -0.7071474 |
b | -0.7071474 | 1.0000000 |
5.2 结果说明
整个结果可以分为五个部分
- 第一部分为用高斯-牛顿方法进行迭代,并输出每次迭代确定的参数估计值和残差平方和,本例表明经过6次迭代,误差平方和从 11425.0减小到 49.4593,满足收敛准则,即提示 NOTE:Convergence criterion met,停止迭代。得到回归方程的参数a为 4.0708,b为 -0.039 6.
- 第二部分是迭代过程中的一些统计量。R是参数的初步收敛值,PPC是期望参数变化值,RPC是回顾参数变化值,Object是迭代过程中目标函数值的相关改变值。
- 第三部分是对模型进行方差分析的结果,方差来源包括回归部分(Model)、残差部分(Error)和未校正平方和( Uncorrected total )。
- 第四部分为参数估计的结果,包括参数的估计结果、相应的渐近标准误差和渐近 95% 置信区间,由此得到回归方程为: \(\hat y = e^{4.0708-0.0396 x}\)
- 第五部分是方程中的两个参数 a 和 b 的渐近相关矩阵。
5.3 关于高斯-牛顿迭代法
高斯-牛顿迭代法是一种用于非线性回归模型中求解回归参数的迭代方法。其基本思想是使用泰勒级数展开式近似代替非线性回归模型,通过多次迭代修正回归系数,使其不断逼近最佳回归系数,最终使残差平方和达到最小。
基本步骤
- 初始值选择:可以根据经验选定初始值,或使用分段法求出初始值,或者通过线性变换后施行最小平方法求出初始值。
- 泰勒级数展开:设非线性回归模型为 \(f(X, \beta)\),在初始值附近作泰勒展开,忽略二阶及以上的项。
- 估计修正因子:用最小平方法估计修正因子,得到新的迭代值。
- 精确度检验:计算残差平方和,若满足给定的误差率则停止迭代,否则继续。
- 重复迭代:重复上述步骤,直到满足精度要求。
- 重要考虑事项:高斯-牛顿迭代法在迭代点附近区域线性度较好时,收敛速度较快,但在线性度较差时效果不佳。此外,求解过程中涉及矩阵求逆,计算量较大。
6 对数曲线回归
对数回归是一种在方程中包含对数的回归模型。具体来说,在对数回归中,取自变量的对数。
当样本数据形成对数曲线时,对数回归对于拟合回归模型非常有用,从而使回归模型更好地拟合样本数据。
因此,对数回归是非线性回归的一种,就像指数回归和多项式回归一样。
对数回归方程的公式为:
\[y=a+b\cdot \ln(x)\]
6.1 示例
编号 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
CRF/(nmol/L) | 0.005 | 0.050 | 0.500 | 5.000 | 25.000 |
ACTH/(pmol/L) | 34.11 | 57.99 | 94.49 | 128.50 | 169.98 |
代码
NLIN 过程
因变量“y”
方法: Gauss-Newton
迭代阶段 | |||
---|---|---|---|
迭代 | a | b | 平方和 |
0 | 0 | 0 | 58860.1 |
1 | 110.1 | 36.1154 | 234.3 |
NOTE: Convergence criterion met. |
估计汇总 | |
---|---|
方法 | Gauss-Newton |
迭代 | 1 |
R | 0 |
PPC | 0 |
RPC(a) | 1.1006E8 |
对象 | 0.996019 |
目标 | 234.3347 |
读取的观测 | 5 |
使用的观测 | 5 |
缺失的观测 | 0 |
源 | 自由度 | 平方和 | 均方 | F 值 | 近似 Pr > F |
---|---|---|---|---|---|
模型 | 1 | 11567.2 | 11567.2 | 148.09 | 0.0012 |
误差 | 3 | 234.3 | 78.1116 | ||
校正合计 | 4 | 11801.6 |
参数 | 估计 | 近似 标准误差 |
近似 95% 置信限 | |
---|---|---|---|---|
a | 110.1 | 4.0953 | 97.0270 | 123.1 |
b | 36.1154 | 2.9678 | 26.6705 | 45.5603 |
近似相关矩阵 | ||
---|---|---|
a | b | |
a | 1.0000000 | 0.2617813 |
b | 0.2617813 | 1.0000000 |
6.2 回归方程
\[\hat y = 110.1 + 36.1154 log_{10} x\]
7 多元线性回归
多元线性回归是分析一个应变量和多个自变量之间的依存关系,逐步回归则能判断哪些自变量对应变量有影响,哪些没有。
SAS系统可以用 reg
、nlin
、glm
、stepwise
、rsreg
和 rsquare
等过程来完成,由于每个过程各具特点,因此在使用过程中,应根据需要选择合适的过程。这里介绍最常用的 reg
过程。
7.1 多元线性回归过程的特点介绍
以下是 SAS 中与回归分析相关的 reg
、nlin
、glm
、stepwise
、rsreg
等过程的主要特点和应用场景介绍(注:SAS 中无独立的 rsquare
过程,可能是对回归结果中决定系数的误写,故不单独介绍):
- REG 过程(线性回归)
- 主要特点
- 基础线性回归:用于拟合多元线性回归模型(响应变量为连续变量),支持自变量为连续变量或分类变量(需提前转换为虚拟变量)。
- 变量选择方法:内置多种变量选择策略,包括:
SELECTION=STEPWISE
(逐步回归):自动向前引入和向后剔除变量,基于显著性水平(如SLENTRY
和SLSTAY
)。SELECTION=FORWARD
(向前选择):逐步添加显著变量。SELECTION=BACKWARD
(向后剔除):逐步删除不显著变量。SELECTION=MAXR
(最大 \(R^2\) 增量)、SELECTION=MINR
(最小均方误差)等。
- 输出统计量:提供回归系数、显著性检验(
t
检验、F
检验)、决定系数(\(R^2\))、调整 \(R^2\)、残差分析等。 - 支持交互项和多项式项:可通过
MODEL
语句手动指定复杂项(如y = x1 x2 x1*x2 x1**2
)。
- 应用场景
- 分析连续响应变量与多个自变量的线性关系(如房价预测、销售额影响因素分析)。
- 需要灵活选择变量筛选方法时(逐步回归是最常用的场景)。
- 示例代码:
- NLIN 过程(非线性回归)
- 主要特点
- 拟合非线性模型:用于响应变量与自变量存在非线性关系的场景(如指数增长、Logistic 曲线、Michaelis-Menten 动力学等)。
- 需指定模型形式:用户需手动定义非线性函数形式(通过
PARMS
语句设定初始参数值),SAS 通过迭代算法(如高斯-牛顿法)优化参数。 - 输出统计量:提供参数估计值、标准误、拟合优度(如残差平方和、决定系数),但解释性弱于线性模型。
- 应用场景
- 生物学、化学、工程等领域的非线性关系建模(如药物浓度衰减、酶促反应动力学)。
- 示例代码(拟合指数模型
y = a*exp(b*x)
):
- GLM 过程(广义线性模型)
- 主要特点
- 扩展线性回归:允许响应变量服从非正态分布(如二项分布、泊松分布、伽马分布等),通过链接函数将线性预测值与响应变量的均值关联。
- 支持分类变量:可直接分析因子变量(分类变量)及其交互作用,自动生成方差分析(ANOVA)表。
- 常见模型:
- 二项分布 + logit 链接:逻辑回归(响应变量为二分类,如患病/未患病)。
- 泊松分布 + 对数链接:计数数据回归(如网页点击量)。
- 正态分布 + 恒等链接:等同于传统线性回归(但
GLM
更灵活)。
- 输出统计量:提供参数估计(优势比、发生率比等)、偏差检验、拟合优度(如 Pearson 卡方、Deviance)。
- 应用场景
- 响应变量为分类变量(二分类、多分类)或计数数据时(如客户流失预测、疾病发病率影响因素)。
- 示例代码(逻辑回归):
- STEPWISE 过程(逐步回归,已弃用)
- 主要特点
- 历史过程:早期 SAS 中用于逐步回归的独立过程,目前已被
REG
过程的SELECTION=STEPWISE
选项替代。 - 功能局限:仅支持逐步回归(向前引入 + 向后剔除),无法使用其他变量选择方法(如向前选择、向后剔除单独使用)。
- 输出内容:与
REG
过程的逐步回归结果类似,包括变量进入/剔除步骤、显著性水平、最终模型参数等。
- 历史过程:早期 SAS 中用于逐步回归的独立过程,目前已被
- 应用场景
- 仅建议用于兼容旧代码,新场景推荐使用
REG
过程的SELECTION
选项。
- 仅建议用于兼容旧代码,新场景推荐使用
- RSREG 过程(响应面回归)
- 主要特点
- 实验设计与优化:用于拟合响应面模型(Response Surface Methodology, RSM),分析响应变量与多个自变量的非线性关系(通常为二次模型),寻找最优工艺条件。
- 模型形式:自动拟合包含一次项、二次项和交互项的模型(如 ( y = 0 + i x_i + {ii}x_i^2 + {ij}x_i x_j ))。
- 支持设计类型:中心复合设计(CCD)、Box-Behnken 设计等,内置实验设计功能。
- 输出结果:提供模型参数、响应面图、等高线图、最优点估计(如最大值、最小值)。
- 应用场景
- 工业优化(如化工反应条件优化、产品配方设计)、生物医药实验(如药物剂量-效应关系)。
- 示例代码:
7.2 选择建议
需求场景 | 推荐过程 | 理由 |
---|---|---|
连续响应变量的线性回归 | REG |
基础线性模型,支持多种变量选择方法 |
非线性关系建模 | NLIN |
需自定义非线性函数形式 |
非正态响应变量(分类/计数数据) | GLM |
广义线性模型,支持二项式、泊松等分布 |
自动变量选择(逐步回归) | REG (SELECTION ) |
替代传统 STEPWISE 过程,更灵活 |
响应面分析与优化 | RSREG |
内置实验设计,支持二次模型和交互项,适用于寻优 |
7.3 注意事项
STEPWISE
过程在新版 SAS 中可能被标记为弃用,建议优先使用REG
过程的SELECTION
选项。- 回归分析前需验证假设(如线性关系、正态性、方差齐性、无多重共线性等),可通过
REG
或GLM
过程的残差分析实现。 - 对于高维数据(自变量数量多),可结合
REG
过程的正则化方法(如 LASSO、岭回归,需加载SAS/STAT
模块)。
7.4 多元线性回归示例
1个反应变量 y ,和3个自变量 \(x_1\),\(x_2\),\(x_3\)。
代码
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 16 |
使用的观测数 | 16 |
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 3 | 1883479 | 627826 | 14.31 | 0.0003 |
误差 | 12 | 526521 | 43877 | ||
校正合计 | 15 | 2410000 |
均方根误差 | 209.46778 | R 方 | 0.7815 |
因变量均值 | 2275.00000 | 调整 R 方 | 0.7269 |
变异系数 | 9.20738 |
参数估计 | |||||
---|---|---|---|---|---|
变量 | 自由度 | 参数 估计 |
标准 误差 |
t 值 | Pr > |t| |
Intercept | 1 | -2922.22620 | 1459.15441 | -2.00 | 0.0683 |
x1 | 1 | 68.89352 | 23.86651 | 2.89 | 0.0137 |
x2 | 1 | 31.95682 | 16.11436 | 1.98 | 0.0707 |
x3 | 1 | 84.69245 | 78.11936 | 1.08 | 0.2996 |
REG 过程
模型: MODEL1
因变量: y
7.5 逐步法
筛选的方法有前进法、后退法、逐步法等,最常用是逐步法。现仍参照上例数据,讨论如何用SAS 完成逐步回归。
程序中增加 /selection = stepwise sle =0.10 sls = 0.15 stb
语句,其中 selection=stepwise
表示将用逐步法筛选变量;stb
表示将输出标准化偏回归系数,sle=0.10
和 sls=0.15
选项表示在筛选变量时入选标准为 0.10,剔除标准为 0.15.
代码
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 16 |
使用的观测数 | 16 |
逐步选择: 第 1 步
变量 x1 已输入: R 方 = 0.6110 和 C(p) = 9.3658
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 1 | 1472539 | 1472539 | 21.99 | 0.0003 |
误差 | 14 | 937461 | 66962 | ||
校正合计 | 15 | 2410000 |
变量 | 参数 估计 |
标准 误差 |
II 型 SS | F 值 | Pr > F |
---|---|---|---|---|---|
Intercept | -1783.27616 | 867.82268 | 282749 | 4.22 | 0.0590 |
x1 | 100.51458 | 21.43426 | 1472539 | 21.99 | 0.0003 |
条件数字的边界: 1, 1
逐步选择: 第 2 步
变量 x2 已输入: R 方 = 0.7601 和 C(p) = 3.1754
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 2 | 1831908 | 915954 | 20.60 | <.0001 |
误差 | 13 | 578092 | 44469 | ||
校正合计 | 15 | 2410000 |
变量 | 参数 估计 |
标准 误差 |
II 型 SS | F 值 | Pr > F |
---|---|---|---|---|---|
Intercept | -4019.79958 | 1057.87260 | 642090 | 14.44 | 0.0022 |
x1 | 85.75822 | 18.22215 | 984932 | 22.15 | 0.0004 |
x2 | 40.38947 | 14.20772 | 359369 | 8.08 | 0.0138 |
条件数字的边界: 1.0883, 4.3533
留在模型中的所有变量的显著性水平都为 0.1500。
没有其他变量满足 0.1000 显著性水平,无法输入该模型。
“逐步选择”的汇总 | ||||||||
---|---|---|---|---|---|---|---|---|
步 | 进入的 变量 |
删除的 变量 |
进入的 变量数 |
偏 R 方 |
模型 R 方 |
C(p) | F 值 | Pr > F |
1 | x1 | 1 | 0.6110 | 0.6110 | 9.3658 | 21.99 | 0.0003 | |
2 | x2 | 2 | 0.1491 | 0.7601 | 3.1754 | 8.08 | 0.0138 |
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 16 |
使用的观测数 | 16 |
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 2 | 1831908 | 915954 | 20.60 | <.0001 |
误差 | 13 | 578092 | 44469 | ||
校正合计 | 15 | 2410000 |
均方根误差 | 210.87586 | R 方 | 0.7601 |
因变量均值 | 2275.00000 | 调整 R 方 | 0.7232 |
变异系数 | 9.26927 |
参数估计 | ||||||
---|---|---|---|---|---|---|
变量 | 自由度 | 参数 估计 |
标准 误差 |
t 值 | Pr > |t| | 标准化 估计 |
Intercept | 1 | -4019.79958 | 1057.87260 | -3.80 | 0.0022 | 0 |
x1 | 1 | 85.75822 | 18.22215 | 4.71 | 0.0004 | 0.66692 |
x2 | 1 | 40.38947 | 14.20772 | 2.84 | 0.0138 | 0.40285 |
REG 过程
模型: MODEL1
因变量: y
7.6 后退法
如果用前进法和后退法来筛选变量,可以在 model
后加上选项 forward
和 backward
。
程序说明: 该程序和逐步回归程序的不同点在于 selection=
语句后面的方法有所不同,本程序选择的是 backward
,表示后退法。
REG 过程
模型: MODEL1
因变量: y
读取的观测数 | 16 |
使用的观测数 | 16 |
向后消除: 第 0 步
所有变量已输入: R 方 = 0.7815 和 C(p) = 4.0000
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 3 | 1883479 | 627826 | 14.31 | 0.0003 |
误差 | 12 | 526521 | 43877 | ||
校正合计 | 15 | 2410000 |
变量 | 参数 估计 |
标准 误差 |
II 型 SS | F 值 | Pr > F |
---|---|---|---|---|---|
Intercept | -2922.22620 | 1459.15441 | 175979 | 4.01 | 0.0683 |
x1 | 68.89352 | 23.86651 | 365606 | 8.33 | 0.0137 |
x2 | 31.95682 | 16.11436 | 172558 | 3.93 | 0.0707 |
x3 | 84.69245 | 78.11936 | 51571 | 1.18 | 0.2996 |
条件数字的边界: 2.4281, 17.217
向后消除: 第 1 步
变量 x3 已删除: R 方 = 0.7601 和 C(p) = 3.1754
方差分析 | |||||
---|---|---|---|---|---|
源 | 自由度 | 平方 和 |
均方 | F 值 | Pr > F |
模型 | 2 | 1831908 | 915954 | 20.60 | <.0001 |
误差 | 13 | 578092 | 44469 | ||
校正合计 | 15 | 2410000 |
变量 | 参数 估计 |
标准 误差 |
II 型 SS | F 值 | Pr > F |
---|---|---|---|---|---|
Intercept | -4019.79958 | 1057.87260 | 642090 | 14.44 | 0.0022 |
x1 | 85.75822 | 18.22215 | 984932 | 22.15 | 0.0004 |
x2 | 40.38947 | 14.20772 | 359369 | 8.08 | 0.0138 |
条件数字的边界: 1.0883, 4.3533
留在模型中的所有变量的显著性水平都为 0.1000。
“向后消除”的汇总 | |||||||
---|---|---|---|---|---|---|---|
步 | 删除的 变量 |
进入的 变量数 |
偏 R 方 |
模型 R 方 |
C(p) | F 值 | Pr > F |
1 | x3 | 2 | 0.0214 | 0.7601 | 3.1754 | 1.18 | 0.2996 |
REG 过程
模型: MODEL1
因变量: y
8 CORR 过程和 REG 过程常用选项和语句详解
在使用 SAS 进行相关分析和回归分析时,CORR
过程和 REG
过程是最常用的工具。通过灵活配置选项和语句,可以更精确地控制分析过程并获取所需结果。
8.1 CORR 过程(相关分析)
基本格式
常用选项
PEARSON
- 功能:计算皮尔逊积矩相关系数(默认选项),适用于两个连续变量呈线性关系的场景。
- 示例:
proc corr pearson;
- 功能:计算皮尔逊积矩相关系数(默认选项),适用于两个连续变量呈线性关系的场景。
SPEARMAN
- 功能:计算斯皮尔曼等级相关系数,基于变量的秩次而非原始值,适用于非正态分布或非线性关系的数据。
- 示例:
proc corr spearman;
- 功能:计算斯皮尔曼等级相关系数,基于变量的秩次而非原始值,适用于非正态分布或非线性关系的数据。
NOMISS
- 功能:排除任何包含缺失值的观测(行),确保计算基于完整数据。
- 对比:默认行为是
NOMISS
的列版本(NOMISSCOL
),仅排除特定变量有缺失值的观测。
- 功能:排除任何包含缺失值的观测(行),确保计算基于完整数据。
- 其他实用选项
KENDALL
:计算肯德尔 τ 相关系数(适用于有序分类变量)。
COV
:输出协方差矩阵而非相关系数矩阵。
PVALUE
:显示相关系数的 p 值(默认包含)。
8.2 REG 过程(回归分析)
基本格式
MODEL 语句常用选项
NOINT
- 功能:不拟合截距项(强制回归直线过原点)。
- 注意:慎用此选项,可能导致模型解释困难或违反统计假设。
- 功能:不拟合截距项(强制回归直线过原点)。
- 共线性诊断选项
COLIN
:计算方差膨胀因子(VIF)和条件指数,诊断自变量间的多重共线性。
COLLINOINT
:在COLIN
基础上包含截距项,适用于检验截距是否受共线性影响。
- 变量选择方法
SELECTION=STEPWISE
:逐步回归(向前引入+向后剔除)。
SELECTION=FORWARD
:向前选择法。
SELECTION=BACKWARD
:向后剔除法。
- 控制参数:
SLENTRY=0.05
(引入变量的显著性水平)、SLSTAY=0.10
(保留变量的显著性水平)。
- 残差分析选项
R
:输出残差、预测值和学生化残差。
P
:生成预测值和残差数据集。
DW
:计算 Durbin-Watson 统计量(检验残差自相关)。
- 其他实用选项
STB
:输出标准化回归系数(β 系数)。
CLM
和CLI
:分别计算均值和个体预测值的置信区间。
OUTPUT OUT=新数据集名
:将结果保存到新数据集。
8.3 三、对比与最佳实践
场景 | 推荐选项/语句 | 说明 |
---|---|---|
检验非正态分布变量的相关性 | proc corr spearman; |
斯皮尔曼等级相关系数不依赖分布假设。 |
处理缺失值 | proc corr nomiss; |
确保所有变量无缺失值时进行计算。 |
诊断多重共线性 | model y = x1 x2 x3 / colin; |
VIF > 10 或条件指数 > 30 提示严重共线性。 |
自动筛选显著变量 | model y = x1-x10 / selection=stepwise slentry=0.05; |
逐步引入 p < 0.05 的变量。 |
绘制残差图 | plot r.*p. 或 plot residual.*predicted. |
检测残差是否符合正态分布和等方差性假设。 |
8.4 五、注意事项
- 共线性处理:若发现严重共线性,可尝试删除冗余变量、合并变量或使用主成分回归。
- 缺失值策略:
NOMISS
可能导致样本量大幅减少,建议先使用PROC MI
进行多重插补。
- 模型验证:始终检查残差图和诊断统计量(如 Durbin-Watson、Shapiro-Wilk 检验)。
- 逐步回归的局限性:变量选择结果可能受输入顺序影响,最终模型需结合专业知识验证。