回归分析实验程序-SAS版共9页word资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

proc import out= xt49 /*使用import过程导入数据并输出
到数据集xt4.9*/
datafile="E:\xt49.xls"
dbms=excel2000 replace;
getnames=yes; /*首行为变量名*/
run;
proc plot data=xt49;/*对xt49绘图*/
plot y*x='*';/*以x为横坐标,y为纵坐标,以*为各点,画散点图*/
run;
proc corr pearson data=xt49;/*对xt49运行相关分析过程*/
var y x;/*计算y和x的Pearson相关系数*/
run;
proc reg data=xt49;/*对xt4.9运行回归分析过程*/
model y=x;/*建立以y为因变量,以x为自变量的线性回归方程*/
model y=x/p r dw;/*建立以y为因变量,以x为自变量的线性回归方程,p 是要求输出拟合值,r是要求输出残差值, dw是要求输出DW检验统计量的值*/
model y=x1-x4/vif;/*建立以y为因变量,以x1-x4为自变量的线性回归方程,vif是要求输出各自变量的VIF值*/
output out=res p=yhat r=residual;/*输出拟合值和残差值至数据集res,以便绘制残差图*/
run;
-------------------------以下是绘制残差图的程序,
data res_new;/*创建新数据集res_new*/
set res;/*先把res 数据集复制过来*/
lag1residual=lag1(residual);/*lagn (n 自定)函数可把一变量的各观测值移后n 位;residual 即t e ,lag1residual 即1t e -*/
t=_n_;/*_n_是data 步内读取观测值的计数器变量,从1开始,每读取一观测值自加1,因此变量t 的观测值即为期数1,2,...,n*/
run;
proc plot data=res_new;/*绘制残差图*/
plot residual*lag1residual='*';/*以residual 即残差值为纵坐标,以residual2即拟合值为横坐标*/
plot residual*t='*';/*以residual 即残差值为纵坐标,以t 即拟合值为横坐标*/
run;
- ------------------以下是进行一阶差分后建立回归模型以及其自相关检验的程序
data et49_new;/*创建新数据集ch4_new*/
set xt49;/*先把ch4数据集复制过来*/
difx=x-lag1(x);/*lagn (n 自定)函数可把一变量的各观测值移后n 位;对x 各观测值作一阶差分*/
dify=y-lag1(y);/*lagn (n 自定)函数可把一变量的各观测值移后n 位;对y 各观测值作一阶差分*/
run;
proc reg;/*对ex4.9_new运行回归分析过程*/
model dify=difx/p r dw;/*建立以y为因变量,以difx为自变量的线性回归方程,p是要求输出拟合值,r是要求输出残差值,dw是要求输出DW检验统计量的值*/
output out=res p=yhat r=residual;/*输出拟合值和残差值至数据集res,以便绘制残差图*/
run;
data res_new;/*创建新数据集res_new*/
set res;/*先把res数据集复制过来*/
lag1residual=lag1(residual);/*lagn(n自定)函数可把一变量的各观测值移后n位;residual即 ,lag1residual即 */
t=_n_;/*_n_是data步内读取观测值的计数器变量,从1开始,每读取一观测值自加1,因此变量t的观测值即为期数1,2,...,n*/
run;
proc plot data=res_new;/*绘制残差图*/
plot residual*lag1residual='*';/*以residual即残差值为纵坐标,以residual2即拟合值为横坐标*/
plot residual*t='*';/*以residual即残差值为纵坐标,以t即拟合值为横坐标*/
run;
_ _ _ _ _ _ _ _ _ 异常值的的识别
假定有一数据集ch,因变量为y,自变量为x1-x2(或x)。

1. 求各观测体的学生化残差值的程序:
proc reg;/*对ch运行回归分析过程*/
model y=x1-x2;/*建立以y为因变量,以x1-x2为自变量的线性回归方程*/ output out=abnormal student=sre;/*输出各观测体的学生化残差值至数据集abnormal*/
run;
proc print data=abnormal;/*打印出abnormal数据集中的数据,查看各观测体的学生化残差值*/
run;
运行程序后查看数据集abnormal,Studentized Residual列即为各观测体的学生化残差值。

2. 求各观测体的库克距离统计量值的程序:
proc reg;/*对ch运行回归分析过程*/
model y=x1-x2;/*建立以y为因变量,以x1-x2为自变量的线性回归方程*/ output out=abnormal cookd=cookd;/*输出各观测体的库克距离统计量值至数据集abnormal*/
run;
proc print data=abnormal;/*打印出abnormal数据集中的数据,查看各观测体的库克距离统计量值*/
run;
自变量的选择
_ _ _ _ _ _ _ _ _最优子集
假定有一数据集ch ,因变量为y ,自变量为x1-xp(p 自定)。

求各选模型的2a R 、p C 和AIC 的程序:
proc reg data=ch;/*对ch 运行回归分析程序*/
model y=x1-xp/selection=adjrsq cp aic;/*建立以y 为因变量,以x1-xp 为自变量的线性回归方程*/
/*selection=adjrsq 是要求输出所有选模型的 值,selection =cp 是要求输出所有选模型的 值,aic 是要求输出所有选模型的AIC 值,这三个可以同时用*/
run;
输出结果中Adjusted R-Square Selection Method 表格的每一行都是其中一个选模型的数据,Variables in Model 列各值即该选模型所含的
自变量,Adjusted R-Square 列各值即该选模型的2a R ,C(p)列各值即该选
模型的p C ,AIC 列各值即该选模型的AIC 值。

_ _ _ _ _ _ _ _ 逐步回归
假定有一数据集ch ,因变量为y ,自变量为x1-xp(p 自定)。

1. 使用逐步回归的“前进法”建模的程序:
proc reg data=ch;/*对ch 运行回归分析程序*/
model y=x1-xp/selection=forward;/*建立以y 为因变量,以x1-xp 为自变量的线性回归方程,selection=forward 是要求使用逐步回归的"前进法"*/
run;
输出结果中Forward Selection:Step x(x=1,2,3,…,p)表格即前进法第x步的工作成果,每一步中的Variable xi Entered(i=1,2,…,p)即自变量xi被引入模型。

也可以看最后总结的Summary of Forward Selection,其Step列即各步骤序号,Variable Entered列即各步骤中被引入的自变量。

建立的线性回归方程各回归参数的估计值正是最后一步的表格中Parameter Estimate列的各值。

2. 使用逐步回归的“后退法”建模的程序:
proc reg data=ch;/*对ch运行回归分析程序*/
model y=x1-xp/selection=backward;/*建立以y为因变量,以x1-xp为自变量的线性回归方程,selection=backward是要求使用逐步回归的"后退法"*/
run;
输出结果中Backward Elimination:Step 0表格即后退法第0步的工作成果,该步骤中的All Variables Entered表示首先把所有自变量引入模型;Backward Elimination:Step x(x=1,2,3,…,p-1)表格即后退法第x步的工作成果,每一步中的Variable xi Removed(i=1,2,…,p)即把自变量xi从模型中删除。

也可以看最后总结的Summary of Backward Elimination,其Step列即各步骤序号,Variable Removed列即各步骤中被删除的自变量。

建立的线性回归方程各回归参数的估计值正是最后一步的表格中Parameter Estimate列的各值。

3. 使用逐步回归的“逐步回归法”建模的程序:
proc reg data=ch;/*对ch运行回归分析程序*/
model y=x1-xp/selection=stepwise;/*建立以y为因变量,以x1-xp为自变量的线性回归方程,selection=stepwise是要求使用逐步回归的"逐步回归法"*/
run;
输出结果中Stepwise Selection:Step x(x=1,2,3,…,p)表格即逐步回归法第x步的工作成果,每一步中的Variable xi Entered
(i=1,2,…,p)即自变量xi被引入模型。

也可以看最后总结的Summary of Stepwise Selection,其Step列即各步骤序号,Variable Entered列即各步骤中被引入的自变量。

建立的线性回归方程各回归参数的估计值正是最后一步的表格中Parameter Estimate列的各值。

主成份回归
假定有一数据集ch,因变量为y,自变量为x1-xp(p自定)。

对样本数据进行主成分分析的程序:
proc princomp data=ch;/*对ch运行主成分分析过程*/
var x1-xp;/*分析x1-xp的主成分*/
run;
输出结果中Eigenvalues of the Correlation Matrix表格即对标准化数据的相关矩阵的说明,Eigenvalue列各值即各特征值,Cumulative
列各值即累计贡献率,由此可决定要删除贡献率最小的主成分的个数m。

proc reg data=ch outest=pcr;/*对ch运行回归过程,把主成分回归的建模结果输出到数据集pcr*/
model y=x1-xp/pcomit=m;/*建立回归方程,pcomit=m是要求使用主成分
回归法并删除贡献率最小的m个主成分,剩下p-m个主成分累计贡献率应该在95%以上,m可为列表即多个值,如:pcomit=1,2*/
run;
proc print data=pcr;/*打印出主成分回归建模的结果*/
run;
输出结果中_MODEL_列表示各模型名称,_PCOMIT_列各值表示该模型删除的贡献率最小的主成分的个数,与其同一行的对应Intercept和x1-xp 的值表示该模型中的回归常数和各自变量的系数估计值,可据此写出主成分回归方程。

岭回归
proc reg data=ch10 outest=rid;/*outest选项要求把岭回归分析的结果输出至数据集rid*/
model y=x1-x6/ridge=0.1 to 1 by 0.1;/*noint要求删除截距,ridge=0.1 to 1 by 0.1要求分别取岭回归的k为0.1,0.2,…,0.9,1建立岭回归方程*/
plot/ridgeplot;/*绘制岭迹图以选择k值*/
run;
proc print data=rid;/*打印岭回归分析结果*/
run;
上面程序中的“0.1 to 1 by 0.1”可随时变更起始点或步长,如“0.05 to 1 by 0.2”即要求分别取岭回归的k为0.05,0.25,0.45,…,0.85建立岭回归方程。

³时各自变量的岭迹趋于稳定,则观察输出结果的岭迹图,若当k x
可取k=x,从打印出的岭回归结果表中找到_RIDGE_列值为x的那一行,便可知道对应各自变量的岭回归系数。

希望以上资料对你有所帮助,附励志名言3条::
1、世事忙忙如水流,休将名利挂心头。

粗茶淡饭随缘过,富贵荣华莫强求。

2、“我欲”是贫穷的标志。

事能常足,心常惬,人到无求品自高。

3、人生至恶是善谈人过;人生至愚恶闻己过。

相关文档
最新文档