资源描述
实验五 回归分析SAS过程(2)
实验目的:
1.会对实际问题建立有效的多元回归模型,能对回归模型进行残差分析;
2.掌握SAS输出结果用于判别回归方程优良性的不同统计量,能对回归模型进行运用,对实际问题进行预测或控制.
实验要求:编写程序,结果分析.
实验内容:
1.误差的正态性检验有几种方法,何时认为误差项服从正态分布?
答:1.学生化残差 2.残差正态性的频率检验 3.残差的正态QQ图检验
判断
若散点大致在一条直线上
相关系数:
认为来自正态分布,接受误差正态性检验.
2.回归方程的选取的穷举法中,评价回归方程优良性的准则有哪些?根据准则何
时方程最优?
答:1)修正的复相关系数准则或均方残差准则(或准则)
2)准则
3)预测平方和准则(准则)
拟合所有可能的个回归方程,画出图:,在图中选取最接近参考直线的点所对应的回归方程为最优方程.
3.简述逐步回归方法的思想和步骤.
基本思想:逐个引入自变量建立回归方程,每次引入对Y影响最显著的自变量, 并对方程中旧变量逐个进行检验,把变为不显著的变量逐个从方程中剔除掉,最终得到的方程中,既不漏掉对Y显著影响的变量,又不包含对Y影响不显著的变量. 添加或删除某个自变量的准则是用残差平方和的相对减少或增加来衡量.
步骤:(1)修正的复相关系数准则、准则选择模型
(2)预测平方和准则选择PRESSp最优回归方程
(3)最优模型的拟合检验
4.做2.6 2.8(选作) 2.9
注意:可以选课外综合题目。
2.6
程序:
data examp2_6;
input x1 x2 y;
cards;
8.3 70 10.3
8.6 65 10.3
8.8 63 10.2
10.5 72 16.4
10.7 81 18.8
10.8 83 19.7
11.0 66 15.6
11.0 75 18.2
11.1 80 22.6
11.2 75 19.9
11.3 79 24.2
11.4 76 21.0
11.4 76 21.4
11.7 69 21.3
12.0 75 19.1
12.9 74 22.2
12.9 85 33.8
13.3 86 27.4
13.7 71 25.7
13.8 64 24.9
14.0 78 34.5
14.2 80 31.7
14.5 74 36.3
16.0 72 38.3
16.3 77 42.6
17.3 81 55.4
17.5 82 55.7
17.9 80 58.3
18.0 80 51.5
18.0 80 51.0
20.6 87 77.0
;
run;
proc reg data= examp2_6;
model y=x1-x2;
output out=a p=predict r=resid h=h student=r;
run;
data b;
set a;
drop x1-x2;
run;
proc print data=b;
run;
proc capability graphics noprint data=a; /* 对数据集a调用capability
过程,高分辨图,不打印输出 */
qqplot r/normal; /* 作student数据的正态QQ图*/
run;
goptions reset=all; /*将图形的设置恢复为默认状态*/
proc gplot data=a; /* 对数据集a作出画高分辨的散点图或曲线图 */
plot resid*predict; /* 画纵坐标为残差、横坐标为yi散点图 */
symbol v=dot i=none; /* 散点表示符号圆点• ,不画连线 */
run;
/*此处至Quit是计算学生化残差对应的标准正态分布的分位数*/
proc sort data=a;
by r; /* 按r排序*/
proc iml; /* 调用iml矩阵分析模块,计算数据 */
use a; /* 打开数据集a */
read all var{r} into rr; /* 读入集a中变量r(学生化残差)各观测值到矩阵rr中*/
do i=1 to 31; /* 此循环计算 */
qi=probit((i-0.375)/54.25);
q=q//qi; /* 矩阵qi上下连接而成,即得54*1阶矩q=(q(1),q(2),¼,q(30))T */
end;
rq=rr||q; /* 表示矩阵rq=(rr q)*/
create correl var{r q}; /* 创建数据集correl, 变量为r、q */
append from rq; /* 从矩阵rq读取数据 ( ) */
quit; /* iml过程结束 */
proc corr data=correl; /* 计算学生化残差与对应的标准正态分布的分位数的相关系数*/
run;
(a)学生化残差的正态QQ图
(b)拟合值的残差图
结果分析:1) 由学生化残差的正态QQ图可知,其点明显不在一条直线上;
2) 求得有序学生化残差与相应正态分布的分位数的相关系数=0.94091与1相差较大.因此,若拟合线性回归模型,则误差分布与正态分布有较大的偏离;
3) Y拟合值的残差图也表明与不满足线性关系,且两个拟合值还为负数.由此知, 直接假定体积与直径和树干高度之间的线性回归关系是不恰当的.
(2)对因变量作Box-Cox变换
第一步:确定变换参数
鉴于(1)中的残差分析结果,我们对作Box-Cox变换
.对不同的值,由式,并利用SAS系统proc iml 过程计算的值.由图2.5给出了随的变化曲线.
求变换参数l的程序:
proc iml;
n=31;
t=1;
use examp2_6;
read all var{x1 x2 y} into m;
do i=1 to n;
t=t#m[i,3];
end;
prod=t##(1/n);
j=j(n,1,1);
xx=j||m[,1:2];
h=xx*inv(xx`*xx)*xx`;
do lamb=-0.5 to 0.5 by 0.01;
if lamb=0 then zlamb=prod#log(m[ ,5]);
else zlamb=(m[,3]##lamb-j)/(lamb#(prod##(lamb-1)));
sse=zlamb`*(i(n)-h)*zlamb;
lsse=lsse//(lamb||sse);
end;
tt=prod#log(m[ ,3]);
sse0=tt`*(i(n)-h)*tt;
lsse[30,1]=0;
lsse[30,2]=sse0;
index=lsse[>:<,];
minlsse=index[1,2];
lambda0=lsse[minlsse,1];
print lambda0;
create plotdata var{lambda sse};
append from lsse;
z=(m[,3]##lambda0-j(n,1,1))/lambda0;
outm=m[,1:2]||z;
create trans var{x1 x2 z};
append from outm;
quit;
proc print data=trans;
run;
画图
goptions reset=all;
proc gplot data=plotdata;
plot sse*lambda;
symbol v=point i=spline;
run;
由结果给出了随的变化曲线.
由图可知,在时达到最小,因此,在Box-Cox变换式中取.记变换后的因变量为,即
第二步:对关于拟合线性回归模型,利用残差分析考察模型的合理性并作出拟合结果
建立回归模型,作残差分析程序如下:
proc reg data=trans;
model z=x1-x2;
output out=c p=predict1 r=resid1 student=r1;
run;
goptions reset=all;
proc capability graphics noprint data=c;
qqplot r1/normal;
run;
goptions reset=all;
proc gplot data=c;
plot resid1*predict1;
symbol v=dot i=none;
run;
回归模型及残差分析结果输出:
对关于拟合线性回归模型,求出残差及学生化残差.做出学生化残差的正态QQ图以及的拟合值的残差图如图所示.
(a)学生化残差的正态QQ图(q, r)
(b) 的拟合值的残差图
由图知,线性回归关系高度显著且复相关系数的平方和为,即线性部分描述了的绝大部分变化量.由此得拟合的回归方程为
回归模型残差的相关系数检验
有序学生化残差与相应正态分布的分位数的相关系数=0.96990与1比较接近.因此变换效果比以前好了。
2.9
(1)
程序如下:
data examp2_9;
input x1 x2 x3 y;
cards;
50 51 2.3 48
36 46 2.3 57
40 48 2.2 66
41 44 1.8 70
28 43 1.8 89
49 54 2.9 36
42 50 2.2 46
45 48 2.4 54
52 62 2.9 26
29 50 2.1 77
29 48 2.4 89
43 53 2.4 67
38 55 2.2 47
34 51 2.3 51
53 54 2.2 57
36 49 2.0 66
33 56 2.5 79
29 46 1.9 88
33 49 2.1 60
55 51 2.4 49
29 52 2.3 77
44 58 2.9 52
43 50 2.3 60
;
run;
proc reg data= examp2_9;
model y=x1-x3;
output out=a p=predict r=resid h=h student=r;
run;
data b;
set a;
drop x1-x3;
run;
proc print data=b;
run;
proc capability graphics noprint data=a; /* 对数据集a调用capability
过程,高分辨图,不打印输出 */
qqplot r/normal; /* 作student数据的正态QQ图*/
run;
goptions reset=all; /*将图形的设置恢复为默认状态*/
proc gplot data=a; /* 对数据集a作出画高分辨的散点图或曲线图 */
plot resid*predict; /* 画纵坐标为残差、横坐标为yi散点图 */
symbol v=dot i=none; /* 散点表示符号圆点• ,不画连线 */
run;
/*此处至Quit是计算学生化残差对应的标准正态分布的分位数*/
proc sort data=a;
by r; /* 按r排序*/
proc iml; /* 调用iml矩阵分析模块,计算数据 */
use a; /* 打开数据集a */
read all var{r} into rr; /* 读入集a中变量r(学生化残差)各观测值到矩阵rr中*/
do i=1 to 23; /* 此循环计算 */
qi=probit((i-0.375)/54.25);
q=q//qi; /* 矩阵qi上下连接而成,即得54*1阶矩q=(q(1),q(2),¼,q(30))T */
end;
rq=rr||q; /* 表示矩阵rq=(rr q)*/
create correl var{r q}; /* 创建数据集correl, 变量为r、q */
append from rq; /* 从矩阵rq读取数据 ( ) */
quit; /* iml过程结束 */
proc corr data=correl; /* 计算学生化残差与对应的标准正态分布的分位数的相关系数*/
run;
(a)学生化残差的正态QQ图
(b)拟合值的残差图
结果分析:1) 由学生化残差的正态QQ图可知,其点基本在一条直线上;
2) 求得有序学生化残差与相应正态分布的分位数的相关系数=0.96428与1相差较小.因此,若拟合线性回归模型,则误差分布与正态分布有较小的偏离;
3) Y拟合值的残差图也表明与满足线性关系,由此知, 直接假定病人的满意程度与病人的年龄和病情程度、忧虑程度之间的线性回归关系是恰当的.
(2)
【1】
1)修正的复相关系数准则、准则选择模型
data examp2_9;
input x1-x3 y;
cards;
50 51 2.3 48
36 46 2.3 57
40 48 2.2 66
41 44 1.8 70
28 43 1.8 89
49 54 2.9 36
42 50 2.2 46
45 48 2.4 54
52 62 2.9 26
29 50 2.1 77
29 48 2.4 89
43 53 2.4 67
38 55 2.2 47
34 51 2.3 51
53 54 2.2 57
36 49 2.0 66
33 56 2.5 79
29 46 1.9 88
33 49 2.1 60
55 51 2.4 49
29 52 2.3 77
44 58 2.9 52
43 50 2.3 60
;
data a;
set examp2_9;
z=(y**0.07-1)/0.07; /* 作Box-Cox变换Z=(Y0.07-1)/0.07 */
run;
proc reg data=a; /* 对集合a调用回归分析的reg过程 */
model z=x1-x3/selection=adjrsq; /* 建立回归模型Z=b0+b1X2+b3X3+ ,用修正的 准则选择模型 */
run;
proc reg data=a; /* 对集a调用回归分析的reg过程 */
model z=x1-x3/selection=cp;
/* 建立回归模型Z=b0+b1X2+b3X3 + ,利用 准则选择模型 */
run;
2)修正的准则选择模型结果
=0.6237最大 x1 x2 为最优
由准则选择最优模型Z=b0+b1X1+b2X2+.
3)利用准则选择模型结果
C3=2.7967»3 x1 x2 最优集
由准则选择最优模型Z=b0+b1X1+b2X2+.
【2】预测平方和准则选择PRESSp最优回归方程
对集a调用回归分析的reg过程,用预测平方和准则()选择回归方程)
1)程序
proc reg data=a; /* 对集a调用回归分析的reg过程 */
model z=x1/noprint; /* 建立回归模型 不打印输出 */
output out=aa1 press=press; /* 输出数据集aa1,以press为变量,值 */
run;
proc means uss data=aa1; /* 对集aa1调用描述性means过程,列出平方和uss */
var press; /* 计算变量press平方和即 */
run;
/* 以下对集a调用reg过程,模型Z=b0+b2X2+ ,输出 及预测平方和uss*/
proc reg data=a;
model z=x2/noprint;
output out=aa2 press=press;
run;
proc means uss data=aa2;
var press;
run;
/* 以下对集a调用reg过程,模型Z=b0+b3X3+ ,输出预测 及预测平方和PRESSp */
proc reg data=a;
model z=x3/noprint;
output out=aa3 press=press;
run;
proc means uss data=aa3;
var press;
run;
/* 以下调用reg过程,模型Z=b0+b1X1+b2X2+ ,输出预测 及预测平方和PRESS */
proc reg data=a;
model z=x1 x2/noprint;
output out=aa4 press=press;
run;
proc means uss data=aa4;
var press;
run;
/* 以下调用reg过程,模型Z=b0+b1X1+b3X3+ ,输出预测 及预测平方和PRESSp */
proc reg data=a;
model z=x1 x3/noprint;
output out=aa5 press=press;
run;
proc means uss data=aa5;
var press;
run;
/* 以下调用reg过程,模型Z=b0+b2X2+b3X3+ ,输出预测 及PRESSp */
proc reg data=a;
model z=x2 x3/noprint;
output out=aa6 press=press;
run;
proc means uss data=aa6;
var press;
run;
/* 调用reg过程,模型Z=b0+b1X1+b2X2+b3X3+ ,输出预测 及预测平方和PRESSp */
proc reg data=a;
model z=x1 x2 x3/noprint;
output out=aa7 press=press;
run;
proc means uss data=aa7;
var press;
run;
/* 以上模型PRESSp准则选择结束,选出最优自变量集,下面建立最优回归模型Z=b0+b1X1+b2X2+b3X3+ ,给出方差分析表和参数估计表 */
proc reg data=a; /* 调用回归模reg过程,模型Z=b0+b1X1+b2X2+ */
model z=x1-x2;
run;
2)PRESSp输出结果
Z=b0+b1X1+b2X2+的预测平方和 PRESSp=1.5990749最小,为最优选择模型
全模型 Z=b0+b1X1+b2X2+b3X3+的预测平方和 PRESSp= 1.8059710
由上述预测平方和结果看出,的预测平方和PRESSp=1.5990749最小,此模型为最终选择的模型.
3)最优模型的拟合检验
复相关系数平方和为与表2.8的结果相比较,可见均方残差、回归系数估计及拟合优度的度量值均变化很小,即当 在模型中时, 对的影响是很小的.最优回归方程为
由上述三种模型的选择结果可以看出各准则下的选择结果不一致。
(3)
1) 程序如下:
data exam2_9;
input x1-x3 y;
cards;
50 51 2.3 48
36 46 2.3 57
40 48 2.2 66
41 44 1.8 70
28 43 1.8 89
49 54 2.9 36
42 50 2.2 46
45 48 2.4 54
52 62 2.9 26
29 50 2.1 77
29 48 2.4 89
43 53 2.4 67
38 55 2.2 47
34 51 2.3 51
53 54 2.2 57
36 49 2.0 66
33 56 2.5 79
29 46 1.9 88
33 49 2.1 60
55 51 2.4 49
29 52 2.3 77
44 58 2.9 52
43 50 2.3 60
;
data a;
set exam2_9;
z=(y**0.07-1)/0.07; /* 作Box-Cox变换z=(y0.07-1)/0.07 */
run;
proc reg data=a;
model z=x1-x3/selection=stepwise slentry=0.10 slstay=0.10 details;
run;
2) 结果输出
第一步 1进:样本容量 n=23,统计量集,,添加自变量,拟合模型 ,计算,及,结果如下:
依次添加后,的3个模型的输出结果:
第一步中,给出了偏统计量的自由度“DF=1,n-2=23-2=21”,的值和相应的值.由此知,变量所对应值最大,且其值为,故首先进入模型.
接下来拟合以为自变量的回归模型,给出了常数项和的系数估计值和标准差估计,偏统计量的值26.59和检验值,故不能被剔除,当前模型为.
模型 的方差分析表
添加X4到模型后的参数估计表
第二步 第一步选择模型为
2进:将其余3-1=2个自变量逐个添加到此模型中,拟合模型假设, 并计算各自的偏统计量值和相应值,.其中对应值5.80最大,
值,故进入到含回归模型中,得含为自变量的回归模型,,并给出参数估计值和标准差估计.结果如下
进入
2出:进一步考查上述模型有无自变量被剔除.拟合模型并计算的偏统计量15.46和5.80的值和值,.由于偏统计量较小,,故均显著,不能被剔除,当前模型为含的回归模型.程序结果如下:
的方差分析
参数估计
不被移除.
第三步,第二步选择模型,
3进:对不在模型中的自变量,逐个添加到此模型中,拟合相应模型假设,计算各自偏统计量
相应的.
由结果, 0.80较小,且,故不能进入到模型中.
程序结果如下:
根据筛选和剔除结果最后的最优模型为:
由此可见用逐步回归方法得到的结果与(2)中得到的 不一致。
(4)
(a)学生化残差的正态QQ图
(b)拟合值的残差图
但对于变量X2计算偏统计量值和相应值其中值较(1)中的0.4274小,效果更好。同时求得有序学生化残差与相应正态分布的分位数的相关系数与1也还是比较接近,也可以说明模型的假设合理。
展开阅读全文