实验 8
多元线性回归分析与非线性回归分析
多元线性回归分析研究多个变量的数量伴随关系,内容主要包括模型的假定与检验、参数的估计与检验、回归诊断与预测。很多非线性回归问题都可以转化为线性回归问题处理,如多项式回归、指数回归、对数回归、幂函数回归等。
8.1 实验目的
掌握使用 SAS多元线性回归分析与非线性回归分析的方法。
8.2 实验内容
一、用“分析家”作多元线性回归分析 二、用 INSIGHT模块作多项式回归 三、使用 REG过程作回归分析 四、一元非线性回归分析
8.3 实验指导
一、用“分析家”作多元线性回归分析
【实验 8-1】某研究人员需要分析我国固定资产投资状况的影响因素,选取 5个可能的影响因素:国内生产总值、商品房屋销售额、财政支出、社会消费品零售总额、进出口总额,统计 1987~2001共 15年的各项指标如表 8-1所示( sy8_1.xls)所示。试在 0.05的显著性水平下进行多元回归分析,判断哪些因素对固定资产投资有着显著影响,给出回归方程。
表 8-1 15年的统计数据
年度 1987 1988 1989 1990 1991
固定投资总国内生产总商品房屋销售
额 值 额 3791.7 4753.8 4410.4 4517 5594.5
11962.5 14928.3 16909.2 18547.9 21617.8
1100967 1472164 1637542 2018263 2378597
财政支
出 2262.18 2491.21 2823.78 3083.59 3386.62
社会消费品零售
总额
5820 7440 8101.4 8300.1 9415.6
进出口总额 3084.2 3821.8 4155.9 5560.1 7225.8
1. 生成数据集
在“分析家”中直接打开上面的 Excel数据表(sy8_1.xls),选择编辑状态,修改每个变量的属性,将变量名分别改为:年度: n、固定投资总额: y、国内生产总值: x1、商品房屋销售额:x2、财政支出:x3、社会消费品零售总额: x4、进出口总额:x5。
以数据集 Mylib.sy8_1存盘。
2. 全回归分析
1)选择主菜单“ Statistics(统计)”→ “Regression(回归)”→“Linear(线性) ”,打开 “Linear Regression(线性回归)”对话框。
2)选择变量列表中的变量 y,单击“Dependent”按钮,选定响应变量,选择变量列表中的变量 x1、 x2、x3、x4、x5,单击“ Explanatory”按钮,选定解释变量,如图 8-1所示。
图8-1 Linear Regression对话框
3)单击“ OK”按钮,得到分析结果如图 8-2所示。
图8-2 多元回归分析结果
分析结果包括方差分析表、拟合的汇总信息以及回归系数估计值与显著性检验。方差分析表中显示模型的作用是显著的( F统计量的值为 1567.35,p值
1)重复上面 2中 1),在“Linear Regression(线性回归)”对话框(图 8-1)中,单击“ Model”按钮,打开“Linear Regression:Model”对话框。在 “Method”选项卡中选择“ Stepwise selection(逐步选择法)”,如图 8-3所示。
两次单击“OK”按钮,得到分析结果。
2)在显示结果中,第 1步记录了只有 x1进入回归方程的回归分析结果,其中回归方程和系数的检验
2
均为显著,此时 R=0.9911,C(p)=58.5161;接着第 2步是自变量x1和x2进入回归方程后的回归分析结果,回归方程及 x1和x2的系数检验均为显著,但常数项检验不显著。接着第 3步是自变量 x1、x2和x3进入回归方程后的回归分析结果。其中回归方程及所有系数检验均为显著,常数项检验也显著。且 2
R=0.9984提高了, C(p)=5.5226减少了。
图8-3 选择逐步回归法
图8-4 逐步回归第 1、2步、3步及最后结果
在图 8-4右下中指出在 0.05的检验水平下,不能再有其它变量进入模型。比较 R和C(p)的值(图 8-4右),应取包含变量 x1、x2和x3的第三个模型作为较优的模型,对应的回归方程是:
2
y = 3023.27814 + 0.36911x1 + 0.00078157x2 − 2.09048x3
4. 回归诊断
进行回归诊断的步骤如下:
1) 重复上面2中的1),在打开的“ Linear Regression(线性回归) ”对话框中,单击“Plots”
按钮。在打开的“ Linear Regression:Plots”对话框中,选择“ Residual”选项卡,按图 8-5所示选择有关复选框。
2)两次单击“OK”按钮,得到回归诊断结果,在“分析家”窗口的项目管理器中依次双击“Residual Plots”下的“ Plot of STUDET vs PRED”和“ Plot of RESIDUAL vs NQQ”得到标准化后的残差图(图 8-6左)和残差的 QQ图(图 8-6右)。
从标准化后的残差图(图 8-6左)看出,数据点随机地散布在零线附近,表明模型中误差等方差、独立性的假设没有问题。残差的 QQ图(图 8-6右)近似一条直线,可以初步判定残差来自正态分布总体,所建回归模型是有效的。
3)对残差作进一步检验:
在上述操作打开的“Linear Regression(线性回归)”对话框中,单击 “Save Data”按钮。在打开的“ Linear Regression:Save Data”对话框中,选中“Crate and save diagnostics data”复选框,并将列表中的
第二项“ RESIDUAL Residuals”添加到左边方框内,如图 8-7所示。
两次单击“OK”后得到分析结果。
4)在“分析家”窗口的项目管理器中双击“Diagnostics”下的“Diagnostics Table”可以看到在数据集中生成了残差数据,如图 8-8所示。
图8-8 生成残差数据
将“Diagnostics Table”存盘(sy8_1_r)后在“分析家”中打开。
5)选择主菜单“ Statistics(统计)”→“Descriptive(描述性统计) ”→“Distributions…(分布)”,打开“ Distributions”对话框,选择变量列表中的 _RESID,单击“ Analysis”按钮,选定分析变量,如图 8-9左所示。
图8-9 设置选项
6)单击“ Fit(拟合)”按钮,在打开的对话框中选择拟合的分布类型: Normal,使用样本估计量 (Sample estimates),如图 8-9右所示。
7)两次单击“OK”按钮,并在分析家窗口的项目管理器中双击“ Fitted Distributions of sy8_1_r”项,得到对残差 _RESID的正态分布检验结果,如图 8-10所示。
图8-10 残差分布检验结果
三种检验均有p值>0.05,因此不能拒绝残差来自正态总体的假定。 5. 预测
通过回归诊断得知模型:
y =3023.27814 + 0.36911x1 + 0.00078157x2 − 2.09048x3
是合适的,可以用于预测。
1) 假定 02,03年国内生产总值( x1)、商品房屋销售额( x2)、财政支出(x3)的数据已存入
数据集 Mylib.sy8_1_new中,如图所示。
图8-11 数据集 Mylib.sy8_1_new
2) 重复上面逐步回归步骤,并在图 8-1所示的“ Linear Regression(线性回归)”对话框中,单击
“predictions”按钮,打开“ Linear Regression:predictions”对话框。按图 8-12所示进行预测的 Input(输入)、Output(输出)设置。
图8-12 “Linear Regression:predictions”对话框
3) 两次单击“ OK”,得到结果。在分析家的项目管理器中点击“ predictions”可以看到预测结果,如
图 8-13所示。
图8-13 预测结果
二、用 INSIGHT模块作多项式回归
【实验 8-2】某研究人员统计了房地产行业 2003年主营业务收入和净利润的关系,从中随即抽取 20家上市公司,统计后的主营业务收入和净利润如表 8-2(sy8_2.xls)所示。试采用多项式回归方程给出净利润y与主营业务收入x的关系。
1. 生成数据集
将表 8-2在 Excel中修改后导入成 SAS数据集 Mylib.sy8_2,在 INSIGHT中打开后如图 8-14所示。其中变量 n、x、y分别表示股票代码、主营业收入和净利润。
2. 回归分析
为了大致地了解y与x的关系,首先利用INSIGHT作y与x的带有曲线拟合的散点图,具体方法是: 1) 选择菜单“ Analyze(分析)”→“Fit(Y X) (拟合)”打开“ Fit(Y X)”对话框,选择变量如图 8-15
所示。
单击“OK”,得到拟合线性模型:
y =β0+β1 x +ε
主要部分如图 8-16所示。
从图8-16可以发现,虽然模型检验显著,但R2只有0.6494,且常数项未通过检验。为改进模型,移动图 8-16右上第一张表中“ Degree(Polynomial)”栏下的滚动条,可以做高次多项式拟合试验,其中 R-Square、F Stat可以说明拟合的效果。
作二次和三次多项式拟合试验的结果如图 8-17所示。
拟合三次多项式的 R已接近 94%,不需要再高的阶次了。重新回到“Fit(Y X)”对话框,按图 8-18左设置分析变量,可以拟合下面的三次多项式模型:
2
图8-18 设置拟合变量
单击“ Output”按钮,按图 8-18右选择输出结果,两次单击“ OK”后,得到拟合结果,如图 8-19所示。
虽然模型检验通过,但常数项未通过检验,进一步改进模型,再次回到“ Fit(Y X)”对话框,按图 8-18进行有关设置后,取消常数项复选框,如图 8-20所示。
单击“OK”按钮,得到拟合模型
主要部分如图 8-21、8-22所示。
其中模型和系数检验均通过,且 R高达 84.98%,所以该模型为比较理想的模型,最后的回归方程具体形式为:
2
3. 回归诊断
从图 8-22可以看出残差数据随机独立并大致服从均值为零的正态分布。
三、使用 REG过程作回归分析
【实验 8-3】某种水泥在凝固时放出的热量 y(cal/g)与水泥中四种化学成分x1,x2,x3,x4有关,现测得 13组数据,如表 8-3(sy8_3.xls)所示。试从中选出主要的变量,建立 y关于它们的线性回归方程。
1. 建立数据集
输入以下代码建立数据集 sy8_3并显示:
data mylib.sy8_3; input x1 x2 x3 x4 y; cards;
7 26 11 56 11 31 7 52 11 55
6 8 8 6 9 60 78.5 20 104.3 47 87.6 33 95.9 22 109.2 6 102.7
1 29 15 52 74.3
3 71 17
1 31 22 44 72.5 2 54 18 22 93.1 21 47
4 26 115.9
1 40 23 34 83.8 11 66
9 12 113.3
10 68 ;
8
12 109.4
Title '数据集 sy8_3'; Proc print ; run;
运行结果如图8-23所示。
2. 向后逐步剔出法进行回归
执行以下代码:
proc reg data = Mylib.sy8_3; var y x1 - x4;
model y = x1 - x4/selection=backward; plot residual. * predicted.; run;
输出结果如下:
向后逐步剔除法的分析结果给出回归模型:
残差对预测值的散点图显示如下:
3. 结果分析
采用向后逐步剔除法回归的第 0步是做全回归,结果如图 8-24所示,所有系数均未通过检验(P值均大于 0.05),向后逐步剔除法第 1步将变量x3剔除,结果如图 8-25所示,其中 x2和x4的系数仍不能通过检验,接下来第 2步将变量 x4剔除,结果如图 8-26所示,此时的回归方程及x1和x2的系数均能通过检验,残差对预测值的散点图(图 8-28)基本正常符合模型假定,所以方程 Y = 52.57735 + 1.46831x1 + 0.66225x2为有效回归方程。
四、一元非线性回归分析
【实验 8-4】已知数据如表 8-4(sy8_4.xls)所示。试分别采用指数回归、对数回归、幂函数回归和倒幂函数回归 4种非线性回归方法进行回归分析,并选择一个较好的回归方程。
表 8-4 实验数据
1. 生成数据集
运行下面程序生成并显示数据集 sy8_4,如图
8-29所示。
data sy8_4; input x y; cards;
1.1 109.95 1.2 40.45 1.3 20.09 1.4 24.53 1.5 11.02 1.6 7.39 1.7 4.95 1.8 2.72 1.9 1.82 2 1.49 2.1 0.82 2.2 0.3 2.3 0.2 2.4 0.22; run;
title '数据集sy8_4'; proc print; run;
由图可见 x和y有一定的非线性关系,根据散点分布的形状考虑用下面几种非线性回归方法建立非线性回归方程,并从中选出较为合适的回归方程。 2. 对x和y作相关分析 执行如下代码:
/*画 x和 y的散点图 */
goptions ftext='宋体
'; proc gplot data = sy8_4; plot y*x; title 'x和 y的散点图';
symbol v=dot i=none cv=orange ; run;
/*求 x和 y的相关系数 */ proc corr data = sy8_4; var x y; run;
运行上面程序,得到散点图(图 8-30左)以及 x与 y的相关系数(图 8-30右):
由图可见,x和y有一定的非线性关系,根据散点分布的形状考虑用下面几种非线性回归
方法建立非线性回归方程,并从中选出较为合适的回归方程。
首先考虑倒幂函数拟合,执行如下代码:
goptions ftext='宋体'; data new1; set sy8_4; u = 1/x; v = y;
run; /*画 u和 v的散点图 */ title 'u和 v的散点图'; proc gplot data = new1;
plot v*u; 图8-31 u和v的散点图 symbol v=dot i=none cv=red ; run;
运行结果得到散点图 8-31,由图可见,u
和 v有着较弱的线性关系。做线性回归:
proc reg data = new1; var v u; model v = u; print cli; title '残差图'; plot residual. * predicted.; run;
运行结果如图 8-32和图 8-33所示。
倒幂函数回归结果(图 8-32):方差分析表中显示模型的作用是显著的( F统计量的值为
24.95,p值
残差对预测值的散点图 (图 8-33)表明,残差有一定趋势,不符合模型的假定,以上回归方程无效。
4. 幂函数y =ax回归
考虑幂函数拟合,执行如下代码:
data new2; set sy8_4; u = log(x);
v = log(y); run; /*画 u和 v的散点图 */
b
title 'u和 v的散点图';
run; title '残差图';
proc gplot data = new2; plot v*u; symbol v=dot i=none cv=red ;
proc reg data = new2; var v u; model v = u; print cli; plot residual. * predicted.; run;
得到散点图如图 8-34所示:
幂函数回归的结果见图 8-35左:
残差对预测值的散点图 (如图8-35右)表明,残差有微弱趋势,不符合模型的假定,上
面回归方程不佳。
5. 指数函数y =aebx 回归
考虑指数函数拟合,执行如下代码:
data new3; set sy8_4; u = x;
v=log(y);
title 'u和 v的散点图';
run; /*画
u和 v的散点图 */
proc gplot data = new3; plot v*u; symbol v=dot i=none cv=red ; run; title '残差图'; proc reg data = new3; var v u; model v = u; print cli; plot residual. * predicted.;
run;
得到散点图如图 8-36所示:指数函数回归结果见图 8-37左:
图8-36 u与v的散点图
图8-37 指数函数回归结果与残差对预测值的散点图
得回归方程:v = 9.58399 – 4.73895u 即: y =14530.28e−4.73895x
从残差对预测值的散点图 (如图8-37右)可以看出,残差基本符合模型的假定,上面回归方程有效。
6. 对数
y =a +b ln x 回归
考虑对数函数拟合,执行如下代码:
data new4; set sy8_4; u = log(x); v = y;
title 'u和 v的散点图';
run; title '残差图';
proc reg data = new4; var v u; model v = u; print cli; plot residual. * predicted.; run;
run; /*画 u和 v的散点图 */
proc gplot data = new4; plot v*u; symbol v=dot i=none cv=red ;
得到散点图如图 8-38所示。对数函数回归结果见图 8-39左。
图8-38 u与v的散点图
图8-39 对数函数回归结果
得回归方程: v = 64.58847 – 91.11730u即:y = 64.58847 – 91.11730lnx
从残差对预测值的散点图 (如图8-39右)可以看出,残差有二次趋势,不符合模型的假定,上面回归方程无效。
7. 结论
比较上述 4个回归方程,第三种指数函数回归的 Root MSE(均方残差平方根)最小(0.25991)、R-Square(判定系数R2)最大(0.9844),效果最好。
执行下述代码,得到模型y =14530.28e−4.73895x 的拟合图形如图8-40所示。
data new5; set new1;
y1 = 14530.28*exp(-4.73895*x);
run; title '回归图'; run;
proc gplot data = new5; plot y*x=1 y1*x=2/overlay ; symbol v=dot i=none cv=red ; symbol2 i=sm color=blue;
图8-40 指数函数拟合图形
8.4 上机演练
【练习 8-1】某学校20名一年级女大学生体重(公斤)、胸围(厘米)、肩宽(厘米)及肺活量(升)实测值如表8-5(lx8_1.xls)所示。试对影响女大学生肺活量的有关因素作多元回归分析。
表 8-5 20名一年级女大学生肺活量及有关变量测量结果
编号 1 2 3 4 5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
体重X1/公斤
51.3 48.9 42.8 55.0 45.3 45.3 51.4 53.8 49.0 53.9 48.8 52.6 42.7 52.5 55.1 45.2 51.4 48.7 51.3 45.2
胸围X2/厘米
73.6 83.9 78.3 77.1 81.7 74.8 73.7 79.4 72.6 79.5 83.8 88.4 78.2 88.3 77.2 81.6 78.3 72.5 78.2 74.7
肩宽X3/厘米
36.4 34.0 31.0 31.0 30.0 32.0 36.5 37.0 30.1 37.1 33.9 38.0 30.9 38.1 31.1 30.2 36.5 30.0 36.4 32.1
肺活量Y/升
2.9 3.11 1.91 2.63 2.86 1.91 2.98 3.28 2.52 3.27 3.10 3.28 1.92 3.27 2.64 2.85 3.16 2.51 3.15 1.92
【练习 8-2】在光刻工艺过程中,要求找出国产光致抗蚀剂显影的腐蚀速率与显影时间的关系,实验中观测的数据经整理如表 8-6(lx8_2.xls)所示。
表 8-6 腐蚀速率与显影时间的关系
试分别采用指数回归、对数回归、幂函数回归和倒幂函数回归四种非线性回归方法分别给出回归
方程,并选择一个较为合适的回归方程。
8.5 实验报告
请按练习内容写出包括如下内容的实验报告: 一、实验目的;
二、实验内容及程序与结果分析;
三、实验体会(问题、评价、感想与建议等 )。
实验 8
多元线性回归分析与非线性回归分析
多元线性回归分析研究多个变量的数量伴随关系,内容主要包括模型的假定与检验、参数的估计与检验、回归诊断与预测。很多非线性回归问题都可以转化为线性回归问题处理,如多项式回归、指数回归、对数回归、幂函数回归等。
8.1 实验目的
掌握使用 SAS多元线性回归分析与非线性回归分析的方法。
8.2 实验内容
一、用“分析家”作多元线性回归分析 二、用 INSIGHT模块作多项式回归 三、使用 REG过程作回归分析 四、一元非线性回归分析
8.3 实验指导
一、用“分析家”作多元线性回归分析
【实验 8-1】某研究人员需要分析我国固定资产投资状况的影响因素,选取 5个可能的影响因素:国内生产总值、商品房屋销售额、财政支出、社会消费品零售总额、进出口总额,统计 1987~2001共 15年的各项指标如表 8-1所示( sy8_1.xls)所示。试在 0.05的显著性水平下进行多元回归分析,判断哪些因素对固定资产投资有着显著影响,给出回归方程。
表 8-1 15年的统计数据
年度 1987 1988 1989 1990 1991
固定投资总国内生产总商品房屋销售
额 值 额 3791.7 4753.8 4410.4 4517 5594.5
11962.5 14928.3 16909.2 18547.9 21617.8
1100967 1472164 1637542 2018263 2378597
财政支
出 2262.18 2491.21 2823.78 3083.59 3386.62
社会消费品零售
总额
5820 7440 8101.4 8300.1 9415.6
进出口总额 3084.2 3821.8 4155.9 5560.1 7225.8
1. 生成数据集
在“分析家”中直接打开上面的 Excel数据表(sy8_1.xls),选择编辑状态,修改每个变量的属性,将变量名分别改为:年度: n、固定投资总额: y、国内生产总值: x1、商品房屋销售额:x2、财政支出:x3、社会消费品零售总额: x4、进出口总额:x5。
以数据集 Mylib.sy8_1存盘。
2. 全回归分析
1)选择主菜单“ Statistics(统计)”→ “Regression(回归)”→“Linear(线性) ”,打开 “Linear Regression(线性回归)”对话框。
2)选择变量列表中的变量 y,单击“Dependent”按钮,选定响应变量,选择变量列表中的变量 x1、 x2、x3、x4、x5,单击“ Explanatory”按钮,选定解释变量,如图 8-1所示。
图8-1 Linear Regression对话框
3)单击“ OK”按钮,得到分析结果如图 8-2所示。
图8-2 多元回归分析结果
分析结果包括方差分析表、拟合的汇总信息以及回归系数估计值与显著性检验。方差分析表中显示模型的作用是显著的( F统计量的值为 1567.35,p值
1)重复上面 2中 1),在“Linear Regression(线性回归)”对话框(图 8-1)中,单击“ Model”按钮,打开“Linear Regression:Model”对话框。在 “Method”选项卡中选择“ Stepwise selection(逐步选择法)”,如图 8-3所示。
两次单击“OK”按钮,得到分析结果。
2)在显示结果中,第 1步记录了只有 x1进入回归方程的回归分析结果,其中回归方程和系数的检验
2
均为显著,此时 R=0.9911,C(p)=58.5161;接着第 2步是自变量x1和x2进入回归方程后的回归分析结果,回归方程及 x1和x2的系数检验均为显著,但常数项检验不显著。接着第 3步是自变量 x1、x2和x3进入回归方程后的回归分析结果。其中回归方程及所有系数检验均为显著,常数项检验也显著。且 2
R=0.9984提高了, C(p)=5.5226减少了。
图8-3 选择逐步回归法
图8-4 逐步回归第 1、2步、3步及最后结果
在图 8-4右下中指出在 0.05的检验水平下,不能再有其它变量进入模型。比较 R和C(p)的值(图 8-4右),应取包含变量 x1、x2和x3的第三个模型作为较优的模型,对应的回归方程是:
2
y = 3023.27814 + 0.36911x1 + 0.00078157x2 − 2.09048x3
4. 回归诊断
进行回归诊断的步骤如下:
1) 重复上面2中的1),在打开的“ Linear Regression(线性回归) ”对话框中,单击“Plots”
按钮。在打开的“ Linear Regression:Plots”对话框中,选择“ Residual”选项卡,按图 8-5所示选择有关复选框。
2)两次单击“OK”按钮,得到回归诊断结果,在“分析家”窗口的项目管理器中依次双击“Residual Plots”下的“ Plot of STUDET vs PRED”和“ Plot of RESIDUAL vs NQQ”得到标准化后的残差图(图 8-6左)和残差的 QQ图(图 8-6右)。
从标准化后的残差图(图 8-6左)看出,数据点随机地散布在零线附近,表明模型中误差等方差、独立性的假设没有问题。残差的 QQ图(图 8-6右)近似一条直线,可以初步判定残差来自正态分布总体,所建回归模型是有效的。
3)对残差作进一步检验:
在上述操作打开的“Linear Regression(线性回归)”对话框中,单击 “Save Data”按钮。在打开的“ Linear Regression:Save Data”对话框中,选中“Crate and save diagnostics data”复选框,并将列表中的
第二项“ RESIDUAL Residuals”添加到左边方框内,如图 8-7所示。
两次单击“OK”后得到分析结果。
4)在“分析家”窗口的项目管理器中双击“Diagnostics”下的“Diagnostics Table”可以看到在数据集中生成了残差数据,如图 8-8所示。
图8-8 生成残差数据
将“Diagnostics Table”存盘(sy8_1_r)后在“分析家”中打开。
5)选择主菜单“ Statistics(统计)”→“Descriptive(描述性统计) ”→“Distributions…(分布)”,打开“ Distributions”对话框,选择变量列表中的 _RESID,单击“ Analysis”按钮,选定分析变量,如图 8-9左所示。
图8-9 设置选项
6)单击“ Fit(拟合)”按钮,在打开的对话框中选择拟合的分布类型: Normal,使用样本估计量 (Sample estimates),如图 8-9右所示。
7)两次单击“OK”按钮,并在分析家窗口的项目管理器中双击“ Fitted Distributions of sy8_1_r”项,得到对残差 _RESID的正态分布检验结果,如图 8-10所示。
图8-10 残差分布检验结果
三种检验均有p值>0.05,因此不能拒绝残差来自正态总体的假定。 5. 预测
通过回归诊断得知模型:
y =3023.27814 + 0.36911x1 + 0.00078157x2 − 2.09048x3
是合适的,可以用于预测。
1) 假定 02,03年国内生产总值( x1)、商品房屋销售额( x2)、财政支出(x3)的数据已存入
数据集 Mylib.sy8_1_new中,如图所示。
图8-11 数据集 Mylib.sy8_1_new
2) 重复上面逐步回归步骤,并在图 8-1所示的“ Linear Regression(线性回归)”对话框中,单击
“predictions”按钮,打开“ Linear Regression:predictions”对话框。按图 8-12所示进行预测的 Input(输入)、Output(输出)设置。
图8-12 “Linear Regression:predictions”对话框
3) 两次单击“ OK”,得到结果。在分析家的项目管理器中点击“ predictions”可以看到预测结果,如
图 8-13所示。
图8-13 预测结果
二、用 INSIGHT模块作多项式回归
【实验 8-2】某研究人员统计了房地产行业 2003年主营业务收入和净利润的关系,从中随即抽取 20家上市公司,统计后的主营业务收入和净利润如表 8-2(sy8_2.xls)所示。试采用多项式回归方程给出净利润y与主营业务收入x的关系。
1. 生成数据集
将表 8-2在 Excel中修改后导入成 SAS数据集 Mylib.sy8_2,在 INSIGHT中打开后如图 8-14所示。其中变量 n、x、y分别表示股票代码、主营业收入和净利润。
2. 回归分析
为了大致地了解y与x的关系,首先利用INSIGHT作y与x的带有曲线拟合的散点图,具体方法是: 1) 选择菜单“ Analyze(分析)”→“Fit(Y X) (拟合)”打开“ Fit(Y X)”对话框,选择变量如图 8-15
所示。
单击“OK”,得到拟合线性模型:
y =β0+β1 x +ε
主要部分如图 8-16所示。
从图8-16可以发现,虽然模型检验显著,但R2只有0.6494,且常数项未通过检验。为改进模型,移动图 8-16右上第一张表中“ Degree(Polynomial)”栏下的滚动条,可以做高次多项式拟合试验,其中 R-Square、F Stat可以说明拟合的效果。
作二次和三次多项式拟合试验的结果如图 8-17所示。
拟合三次多项式的 R已接近 94%,不需要再高的阶次了。重新回到“Fit(Y X)”对话框,按图 8-18左设置分析变量,可以拟合下面的三次多项式模型:
2
图8-18 设置拟合变量
单击“ Output”按钮,按图 8-18右选择输出结果,两次单击“ OK”后,得到拟合结果,如图 8-19所示。
虽然模型检验通过,但常数项未通过检验,进一步改进模型,再次回到“ Fit(Y X)”对话框,按图 8-18进行有关设置后,取消常数项复选框,如图 8-20所示。
单击“OK”按钮,得到拟合模型
主要部分如图 8-21、8-22所示。
其中模型和系数检验均通过,且 R高达 84.98%,所以该模型为比较理想的模型,最后的回归方程具体形式为:
2
3. 回归诊断
从图 8-22可以看出残差数据随机独立并大致服从均值为零的正态分布。
三、使用 REG过程作回归分析
【实验 8-3】某种水泥在凝固时放出的热量 y(cal/g)与水泥中四种化学成分x1,x2,x3,x4有关,现测得 13组数据,如表 8-3(sy8_3.xls)所示。试从中选出主要的变量,建立 y关于它们的线性回归方程。
1. 建立数据集
输入以下代码建立数据集 sy8_3并显示:
data mylib.sy8_3; input x1 x2 x3 x4 y; cards;
7 26 11 56 11 31 7 52 11 55
6 8 8 6 9 60 78.5 20 104.3 47 87.6 33 95.9 22 109.2 6 102.7
1 29 15 52 74.3
3 71 17
1 31 22 44 72.5 2 54 18 22 93.1 21 47
4 26 115.9
1 40 23 34 83.8 11 66
9 12 113.3
10 68 ;
8
12 109.4
Title '数据集 sy8_3'; Proc print ; run;
运行结果如图8-23所示。
2. 向后逐步剔出法进行回归
执行以下代码:
proc reg data = Mylib.sy8_3; var y x1 - x4;
model y = x1 - x4/selection=backward; plot residual. * predicted.; run;
输出结果如下:
向后逐步剔除法的分析结果给出回归模型:
残差对预测值的散点图显示如下:
3. 结果分析
采用向后逐步剔除法回归的第 0步是做全回归,结果如图 8-24所示,所有系数均未通过检验(P值均大于 0.05),向后逐步剔除法第 1步将变量x3剔除,结果如图 8-25所示,其中 x2和x4的系数仍不能通过检验,接下来第 2步将变量 x4剔除,结果如图 8-26所示,此时的回归方程及x1和x2的系数均能通过检验,残差对预测值的散点图(图 8-28)基本正常符合模型假定,所以方程 Y = 52.57735 + 1.46831x1 + 0.66225x2为有效回归方程。
四、一元非线性回归分析
【实验 8-4】已知数据如表 8-4(sy8_4.xls)所示。试分别采用指数回归、对数回归、幂函数回归和倒幂函数回归 4种非线性回归方法进行回归分析,并选择一个较好的回归方程。
表 8-4 实验数据
1. 生成数据集
运行下面程序生成并显示数据集 sy8_4,如图
8-29所示。
data sy8_4; input x y; cards;
1.1 109.95 1.2 40.45 1.3 20.09 1.4 24.53 1.5 11.02 1.6 7.39 1.7 4.95 1.8 2.72 1.9 1.82 2 1.49 2.1 0.82 2.2 0.3 2.3 0.2 2.4 0.22; run;
title '数据集sy8_4'; proc print; run;
由图可见 x和y有一定的非线性关系,根据散点分布的形状考虑用下面几种非线性回归方法建立非线性回归方程,并从中选出较为合适的回归方程。 2. 对x和y作相关分析 执行如下代码:
/*画 x和 y的散点图 */
goptions ftext='宋体
'; proc gplot data = sy8_4; plot y*x; title 'x和 y的散点图';
symbol v=dot i=none cv=orange ; run;
/*求 x和 y的相关系数 */ proc corr data = sy8_4; var x y; run;
运行上面程序,得到散点图(图 8-30左)以及 x与 y的相关系数(图 8-30右):
由图可见,x和y有一定的非线性关系,根据散点分布的形状考虑用下面几种非线性回归
方法建立非线性回归方程,并从中选出较为合适的回归方程。
首先考虑倒幂函数拟合,执行如下代码:
goptions ftext='宋体'; data new1; set sy8_4; u = 1/x; v = y;
run; /*画 u和 v的散点图 */ title 'u和 v的散点图'; proc gplot data = new1;
plot v*u; 图8-31 u和v的散点图 symbol v=dot i=none cv=red ; run;
运行结果得到散点图 8-31,由图可见,u
和 v有着较弱的线性关系。做线性回归:
proc reg data = new1; var v u; model v = u; print cli; title '残差图'; plot residual. * predicted.; run;
运行结果如图 8-32和图 8-33所示。
倒幂函数回归结果(图 8-32):方差分析表中显示模型的作用是显著的( F统计量的值为
24.95,p值
残差对预测值的散点图 (图 8-33)表明,残差有一定趋势,不符合模型的假定,以上回归方程无效。
4. 幂函数y =ax回归
考虑幂函数拟合,执行如下代码:
data new2; set sy8_4; u = log(x);
v = log(y); run; /*画 u和 v的散点图 */
b
title 'u和 v的散点图';
run; title '残差图';
proc gplot data = new2; plot v*u; symbol v=dot i=none cv=red ;
proc reg data = new2; var v u; model v = u; print cli; plot residual. * predicted.; run;
得到散点图如图 8-34所示:
幂函数回归的结果见图 8-35左:
残差对预测值的散点图 (如图8-35右)表明,残差有微弱趋势,不符合模型的假定,上
面回归方程不佳。
5. 指数函数y =aebx 回归
考虑指数函数拟合,执行如下代码:
data new3; set sy8_4; u = x;
v=log(y);
title 'u和 v的散点图';
run; /*画
u和 v的散点图 */
proc gplot data = new3; plot v*u; symbol v=dot i=none cv=red ; run; title '残差图'; proc reg data = new3; var v u; model v = u; print cli; plot residual. * predicted.;
run;
得到散点图如图 8-36所示:指数函数回归结果见图 8-37左:
图8-36 u与v的散点图
图8-37 指数函数回归结果与残差对预测值的散点图
得回归方程:v = 9.58399 – 4.73895u 即: y =14530.28e−4.73895x
从残差对预测值的散点图 (如图8-37右)可以看出,残差基本符合模型的假定,上面回归方程有效。
6. 对数
y =a +b ln x 回归
考虑对数函数拟合,执行如下代码:
data new4; set sy8_4; u = log(x); v = y;
title 'u和 v的散点图';
run; title '残差图';
proc reg data = new4; var v u; model v = u; print cli; plot residual. * predicted.; run;
run; /*画 u和 v的散点图 */
proc gplot data = new4; plot v*u; symbol v=dot i=none cv=red ;
得到散点图如图 8-38所示。对数函数回归结果见图 8-39左。
图8-38 u与v的散点图
图8-39 对数函数回归结果
得回归方程: v = 64.58847 – 91.11730u即:y = 64.58847 – 91.11730lnx
从残差对预测值的散点图 (如图8-39右)可以看出,残差有二次趋势,不符合模型的假定,上面回归方程无效。
7. 结论
比较上述 4个回归方程,第三种指数函数回归的 Root MSE(均方残差平方根)最小(0.25991)、R-Square(判定系数R2)最大(0.9844),效果最好。
执行下述代码,得到模型y =14530.28e−4.73895x 的拟合图形如图8-40所示。
data new5; set new1;
y1 = 14530.28*exp(-4.73895*x);
run; title '回归图'; run;
proc gplot data = new5; plot y*x=1 y1*x=2/overlay ; symbol v=dot i=none cv=red ; symbol2 i=sm color=blue;
图8-40 指数函数拟合图形
8.4 上机演练
【练习 8-1】某学校20名一年级女大学生体重(公斤)、胸围(厘米)、肩宽(厘米)及肺活量(升)实测值如表8-5(lx8_1.xls)所示。试对影响女大学生肺活量的有关因素作多元回归分析。
表 8-5 20名一年级女大学生肺活量及有关变量测量结果
编号 1 2 3 4 5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
体重X1/公斤
51.3 48.9 42.8 55.0 45.3 45.3 51.4 53.8 49.0 53.9 48.8 52.6 42.7 52.5 55.1 45.2 51.4 48.7 51.3 45.2
胸围X2/厘米
73.6 83.9 78.3 77.1 81.7 74.8 73.7 79.4 72.6 79.5 83.8 88.4 78.2 88.3 77.2 81.6 78.3 72.5 78.2 74.7
肩宽X3/厘米
36.4 34.0 31.0 31.0 30.0 32.0 36.5 37.0 30.1 37.1 33.9 38.0 30.9 38.1 31.1 30.2 36.5 30.0 36.4 32.1
肺活量Y/升
2.9 3.11 1.91 2.63 2.86 1.91 2.98 3.28 2.52 3.27 3.10 3.28 1.92 3.27 2.64 2.85 3.16 2.51 3.15 1.92
【练习 8-2】在光刻工艺过程中,要求找出国产光致抗蚀剂显影的腐蚀速率与显影时间的关系,实验中观测的数据经整理如表 8-6(lx8_2.xls)所示。
表 8-6 腐蚀速率与显影时间的关系
试分别采用指数回归、对数回归、幂函数回归和倒幂函数回归四种非线性回归方法分别给出回归
方程,并选择一个较为合适的回归方程。
8.5 实验报告
请按练习内容写出包括如下内容的实验报告: 一、实验目的;
二、实验内容及程序与结果分析;
三、实验体会(问题、评价、感想与建议等 )。