?
I错误!
未定义书签。
,其中I为NxN
单位矩阵。
用最小二乘法原理,令残差平方和
0=(/―舫)(「祯
最小,得到
为6的最佳线性无偏估计量(高斯-马尔可夫定理)
2.?
?
的估计和T检验
选取?
?
的估计'量:
88
矿—
N-k—1
则
5二仇一/fN-kf
假如t值的绝对值相当大,就可以在适当选定的置信水平上否定原假
设,参数的1-0®信区间可由下式得出:
其中ta/为与"%显著水平有关的t分布临界值。
3.R2和F检验
回归方差分析&,
变异来偃
source
离差平方和自由度.均方-F统计皇一P概率值一
SS.df觇FF
回归凡
误差&
RSS"、MSR=RSS4、F*n二MSRfMSEp.'
E%Nk-LMSE=ESS\N-k-\)-#*
总变异T
TSSV-h『。
『
ess,&RxxR
1—
若因变量不具有0平均值,则必须对R2做如下改进:
-TSS~y
随着模型中增添新的变量,R2的值必定会增大,为了去掉这种增大的
干扰,还需要对R2进行修正(校正拟合优度对白由度的依赖关系):
2ESS/(N-k-1)N-12)
R=1=I(I-R)
TSS/(N-1)N-k-1
做假设检验:
H0:
?
?
=…=?
?
=0;H1:
?
?
…,?
?
至少有一个丰0;
使用F统计量做检验,
_R2/k_R2N-k-1
w(]_R,(N_si)_1_史k
若F值较大,则否定原假设。
二、PROCREG过程步
基本语法:
PROCREGdata=数据集;
MODEL因变量=自变量列表可选项〉;
说明:
MODEL语句用来指定因变量和白变量;
restrict语句示例:
restricta1+a2=1;
常用的输出可选项:
STB——输出标准化偏回归系数矩阵
CORRB——输出参数估计矩阵
COLLINOINT——对白变量进行共线性分析
P——输出个体观测值、预测值及残差(R/CLM/CLI包含P)
R——输出每个个体观测值、残差及标准误差
CLM——输出因变量均值95%的置信界限的上下限
CLI——对各预测值输出95%的置信界限的上下限
MSE——要求输出随机扰动项方差?
?
的估计节2
与残差分析有关的可选项
_VIF——输出变量间相关性的方差膨胀系数,VIF越大,说明
由于共线性存在,使方差变大;
2COLLIN——输出条件数,它表示最大的特征值与每个白变量
特征值之比的平方根。
一般情况下,条件数越大越可能存在共线性;
[TOL——表示共线性水平的容许值,TOL越小说明其可用别的
白变量解释的部分多,白然可能与别的白变量存在共线性关系;
[DW——输出Durbin-Watson统计量;
influence对异常点进行诊断,对每一观测点输出统计量
(Cook'sE>50%,defits/debetas>猊明该点影响较大)
交互式语句
_ad向模型中增加变量;
-delet删除原拟合模型中的有关变量;
-refit重新拟合模型;
-print输出有关模型的相关信息
绘制回归分析的图形
在PROCREG过程步加入绘图选项语句即可。
基本语法:
PROCREGdata=数据集PLOTS=(图形类型);
可选的绘图类型:
FITPLOT——带回归线、置信预测带的散点图;
RESIDUALS——白变量的残差图;
DIAGNOSTICS——诊断图(包括下面各图);
COOKSD——Cook'sD统计量图;
OBSERVEDBYPREDICTED——根据预测值的因变量图;
QQPLOT——检验残差正态性的QQ图;
RESIDUALBYPREDICTED——根据预测值的残差图;
RESIDUALHISTOGRAM——残差的直方图;
RFPLOT——残差拟合图;
RSTUDENTBYLEVERAGE——杠杆比率的学生化残差图;
RSTUDENTBYPREDICTED——预测值的学生化残差图;
注:
残差图(RESIDUALS)和诊断图(DIAGNOSTICS)是白动生成
的,根据模型也有其它默认的图形输出;若只绘制指定的图形需要加
上ONLY:
PROCREGdata=数据集PLOTS(ONLY)=(图形类型);
例1用多元线性回归模型,来研究耗氧量的是如何依赖其它变量的
31位成年人心肺功能的调查数据(见下表),由于回归是相关的,所以理论上还应该做共线性诊断。
age
weight
Oxygen
耗氧量
runtime
跑15英哩的
时间(分)
rstpulse
休息时每分
钟心跳次数
runpulse
跑步时每分
钟心跳次数
Maxpulse
每分钟心跳
次数最大值
44
89.47
44.609
11.37
62
178
182
40
75.07
45.313
10.07
62
185
185
44
85.84
54.297
8.65
45
156
168
42
68.15
59.571
8.17
40
166
172
38
89.02
49.874
9.22
55
178
180
47
77.45
44.811
11.63
58
176
176
40
75.98
45.681
11.95
70
176
180
43
81.19
49.091
10.85
64
162
170
44
81.42
39.442
13.08
63
174
176
38
81.87
60.055
8.63
48
170
186
44
73.03
50.541
10.13
45
168
168
45
87.66
37.388
14.03
56
186
192
45
66.45
44.754
11.12
51
176
176
47
79.15
47.273
10.60
47
162
164
54
83.12
51.855
10.33
50
166
170
49
81.42
49.156
8.95
44
180
185
51
69.63
40.836
10.95
57
168
172
51
77.91
46.672
10.00
48
162
168
48
91.63
46.774
10.25
48
162
164
49
73.37
50.388
10.08
76
168
168
57
73.37
39.407
12.63
58
174
176
54
79.38
46.080
11.17
62
156
165
52
76.32
45.441
9.63
48
164
166
50
70.87
54.625
8.92
48
146
155
51
67.25
45.118
11.08
48
172
172
54
91.63
39.203
12.88
44
168
172
51
73.71
45.790
10.47
59
186
188
57
59.08
50.545
9.93
49
148
155
49
76.32
48.673
9.40
56
186
188
48
61.24
47.920
11.50
52
170
176
52
82.78
47.467
10.50
53
170
172
代码:
datafitness;
inputageweightoxygenruntimerstpulserunpulsemaxpulse;
datalines;
44
89.4744.609
11.3762178
182
40
75.0745.313
10.0762185
185
44
85.8454.297
8.6545156
168
42
68.1559.571
8.1740166
172
38
89.0249.874
9.2255178
180
47
77.4544.811
11.6358176
176
40
75.9845.681
11.9570176
180
43
81.1949.091
10.8564162
170
44
81.4239.442
13.0863174
176
38
81.8760.055
8.6348170
186
44
73.0350.541
10.1345168
168
45
87.6637.388
14.0356186
192
45
66.4544.754
11.1251176
176
47
79.1547.273
10.6047162
164
54
83.1251.855
10.3350166
170
49
81.4249.156
8.9544180
185
51
69.6340.836
10.9557168
172
51
77.9146.672
10.0048162
168
48
91.6346.774
10.2548162
164
49
73.3750.388
10.0876168
168
57
73.3739.407
12.6358174
176
54
79.3846.080
11.1762156
165
52
76.3245.441
9.6348164
166
50
70.8754.625
8.9248146
155
51
—67.2545.118
—11.0848172
—172
54
91.6339.203
12.8844168
172
51
73.7145.790
10.4759186
188
57
59.0850.545
9.9349148
155
49
76.3248.673
9.4056186
188
48
61.2447.920
11.5052170
176
52
82.7847.467
10.5053170
172
;
run;
proccorrdata=fitnessPLOT=MATRIX(HISTOGRAM
nvar=all);
varoxygenageweightruntimerstpulse
runpulse
maxpulse;
label
oxygen=
'Oxygenconsumption'
age='Ageinyears
weight='weightinkg
runtime=
'Min.torun1.5miles'
rstpulse=
'Heartratewhileresting'
runpulse=
'Heartratewhilerunning'
maxpulse=
'Maximumheartrate';
run;
procregdata
=fitnessPLOTS(ONLY)=(DIAGNOSTICS
FITPLOT);
modeloxygen=agemaxpulserstpulserunpulseruntime
weight/ss1ss2;/*ss1为第I类型平■方和,ss2为第皿类型平■方和*/
run;
deleterstpulse;
print;
run;
procregdata=fitness;
model
oxygen=agemaxpulserunpulseruntimeweight;
pulse:
testmaxpulse+runpulse=
0;
run;
procregdata
=fitness;
modeloxygen=
:
agemaxpulserunpulseruntimeweight/ss2;
/*带restrict约束条件的回归,ss1不可用*/
restrictmaxpulse+runpulse=0;
run;
datafitness2;
setfitness;
maxrun=maxpulse-runpulse;
run;
procregdata=fitness2;
modeloxygen=agemaxrunruntimeweight/ss1ss2;
run;
运行结果及说明:
(1)相关性分析
散点图矩阵中第一行的6个散点图分别表示oxygen变量作为y轴,其他六个变量作为x轴的散点图,第一列的6个散点图分别表示oxygen变量作为x轴,其他六个变量作为y轴的散点图;对角线是该变量数值变化的直方图。
绘制散点图矩阵图是为了观察变量间的相关性。
从图中可以看出
变量runpulse与maxpulse之间存在有较强的共线性,如果在回归模型中增加方差膨胀系数(vif),共线性水平的容许值(tol),条件数
(collin)选项对回归进行共线性诊断,也会得到相同的结论。
另外,我们从图中还发现耗氧量oxygen与变量runtime有较强的负相关,从下面的相关系数也能得到相同的结论。
7变量:
oxygen尊邸£rurilimctKlpiilwrrunpuInc
筒单统计星
查量
N
均值
疝准差
总和
最小值
最大值
标签
oxygen
31
47,37581
5.32723
1469
37.38800
60.05WJ0
Oxygencorisiiiipl.ion
31
47.67742
5?
1M4
38.(XXXW
57.OCWO
同那inyears
woight
31
77.44叔
8.32857
2401
59.03000
9163000
weightinkg
runIime
31
1&58S13
1,38/41
3理17000
&U颇
14.03MirhMrun1,5miles
rslpu1
31
53.7-1194
»2944S
1688
40.00CCM1
70.OtXXlO
Hem'ratewliilerestin/;
rtinpu1sc
31
1卸.64616
IQ.25199
5259
IM.QgQO
185,O0OQ0
H?
artr^tewhilerunninEj
rw^xpu1se
31
1/3."419
9.16410
湖/
155.(30000
192.01W0
iNiiJtihea*1rate
FPr
Parsonob>|r
相关系要
under
LN二31NO:
Rho-0
oxyKen
Mieiclit
runtime
rstpu1sc
runpu1se
irwixpu1se
oxygun
1.00000
□.30159
0.IC275
-0.85219
0,34641
-。
39797
Q33IP4
Qx¥gencdi溷uftpLion
0.05157
o,sen
COOOl
0.0503
0.0206
0.097
-o.30459
LOOM
-a.?
3354
0.1R875
-0.14157
-0.33787
-0.4323?
Ar。
in冲ra
0.0957
0.2061
0.3092
0,4475
0.0630
0.0150
weight
-a1C27b
f23354
1.UUOOO
0.H3bl
U.022/U
a18152
U.24938
wifhitink|
0.3917
0.2W1
0,+4(2
0,9海
Q,32S4
0.1701
runLimo
0.瞒219
0.IS075
0.14351
1.00000
0,40Q54
031365
O.2?
GIO
Min』torunIk5ail&s
<0001
0.3092
0.-HI2
0.02b5
0.08b8
0.2213
rsluu1sc
0.*1昭1
0.1-4157
0.02270
0.40054
1.00000
0.31797
0.25750
HtsiiiFtrulevtiilerealing
0颇3
0.4475
0,9035
00256
0.0613
0,1020
runpu1se
-Qi397S7
-0.33787
0.18152
O.313fi5
0.31797
1.00000
0.S?
975
ttecirtratewtiiIcrunnine
0.0200
0.0630
0.3234
o.oesa
0,0813
<0001
maxpu1g
-0.1KJ6J4
-很43292
Ol24938
0.22610
U.SbJbO
0.929/5
I.OOOOU
Maxi・u・Iheart『日t已
01997
O.O1GO
O1761
O.2213
0.1620
<.OOOI
(2)回归分析
谟取的观洌敖
31
使用的观测数
3I
方差分析
源
自由度
平方
和
均方
h俏
Pr>F
模型
6
72E97421
皿3
<.0001
误差
24
129.40/33
5.39197
校正合计
30
851.38154
均方根误差
2.32200
R方
0.818C
因变量均值
47.37581
调整R方
Q8IS
变异系数
4.90137
参数估计值
变冕
自由度
参教
估计值
痂准
庆左
t值
Pr>111
1型SS
11Sss
Interc»pt
1
102.23834
12.463U5
8.21
<.0001
695J8
363.43266
1
-0.21992
0.皿W
2.21
0.03Z0
78.98823
26.29149
maxpu1se
1
0,30473
0.13/22
2.22
0.0861
142.S5b43
26.59064
rstpu1se
1
-00b803
-0,01
0,9886
82.44拇(J
0.00112
runpu1
1
F37316
012068
-3.09
0.0000
98.36407
51,55541
runtime
1
-2.AB062
037488
-1.15
<0001
310.36869
27567144
ighl
1
-007236
005467
-1.32
01980
944994
944994
得到回归方程:
oxygen=102.238339-0.219916age+0.304735maxpulse-0.000844rstpuls
-0.373164runpulse-2.680516runtime-0.072380weight
多元线性回归模型的一个重要问题是,如何正确地缩减白变量到达最优的简化模型。
判断回归模型是否还能缩减白变量,可以通过这第I类平方和(I型SS)和第n类平方和(II型SS),构造f检验(等同于这个白变量的参数t检验,因为F=t2)来比较确定。
runtime白变量的两类平方和都是最大的且占的比例很大,说明
是回归模型中第一重要的白变量。
而rstpulse白变量在第一类平方和
中有比较大的数值却在第I类平方和中是最小的,这是rstpulse白变量(休息时每分钟心跳次数)应该被考虑第一个删除的主要原因。
(3)剔除不显著的回归变量,继续回归分析
白变量rstpulse和weight的回归系数的t检验的P值分别为0.9886
和0.1980,都大于a=0.05,故不拒绝“系数=0”的原假设。
这里要小心地看待这些检验,因为它们都是在其他白变量都加入回归的前提下进行显著性检验的,完全可能因为白变量间存在较强的相关而掩盖他们对回归的贡献。
所以,在剔除不显著的回归变量时必须逐个进行。
另外,从白变
量rstpulse的回归系数更接近于0,也提示我们应先考虑删除白变量rstpulse.
deleterstpulse;
print;
run;
方差分析
源
自由度
方和
平
均方
F值
Pr>F
模型
b
721.97309
144.394U2
2/.如
<.0001
技差
25
129.4D845
517634
校止合计
30
851,38154
均方根误差
R方
0.848。
因变量均值
47.37581
词整R方
0.8176
变旨系数
48O23A