咱们的SAS矩阵交互语言IML就要完结了,本文将会用IML编一个回归程序。无论你需要一元的还是多元的回归模型,该程序都能计算出模型的系数、t检验以及t检验的p值、F检验以及F检验的P值、R2。
本文会综合用到前面几节的内容(回复【SASIML】查看全部):
入门 | SAS里的平行世界
函数 | 函数玩一玩
编程 | IML的条件与循环
模块 | 5分钟懂模块
穿越 | 矩阵与数据集的穿越
作业 | 编一个SAS回归软件
如果前面都没有看过,没关系,根据下面的代码提示,翻阅相关内容,可以把五集的内容过一遍。
用SAS编一个回归软件 |
【SAS Says · 扩展篇】IML:作业
上次Ansta留给自己的作业是:
Sashelp逻辑库中有一个关于GNP的数据sashelp.gnp,要求用1961、1962、1963三年的数据建立回归模型:
GNP = consump + invest
用的变量有:
GNP-gross national product ($billions)
Consump-personal consumption expenditures
Invest-gross private domestic investment
要求:给出系数、R2、t检验的p值。
可以说,把这一道题弄明白了,基本前面几节的内容都掌握的差不对了。
Part 1
可爱的代码
先把我自己的代码贴出来。
我们再跑一边proc reg,对比两种方法的结果:
datagnp_1963;
setsashelp.gnp;
if_n_ 17;
keepgnp consump invest;
proc reg;
modelgnp= consump invest;
run;
IML跑出来的结果为:
ProcReg跑出来的结果为:
怎样?beta值、t值、F值、R2都是一样的吧!
由于ProcReg的P值只给到0.0001,没有具体的数字,我用R也跑了一遍:
T检验的P值,和我们用IML跑出来的也是一样的吧?
这个例子用到了我们前面说的很多内容,我们还可以把第二步到最后的部分打包成一个模块regress,然后下次有其他数据回归的时候,直接调用即可——Run regress;
Part 2
理论的回忆
有p元线性回归模型:
记
则p元线性回归模型简写为
同时,有
下面,我们就来对多元回归模型的拟合、检验过程进行推导:
一、系数的最小二乘拟合
用最小二乘法估计参数b。记
最小二乘法估计就是要选取使得
因为H(b)是b0、b1、…、bp的非负二次式,且关于b0、b1、…、bp均可微,由微积分原理,b是下列方程的解:
下面先求出。因为
对H(b) 求微商,得:
令:-2X'y + 2X'Xb= 0
得:X'Xb = X'y
当存在时,b的最小二乘估计为
预测向量就为:
二、回归模型的检验
(1) 可决系数
(2)F检验
(3)t检验
由于
以Cii表示(X’X)-1上主对角线的第i个元素,于是参数估计量的方差为:
因此,服从如下分布:
其中σ2为随机误差项的方差,在实际计算时用它的估计量代替:
因此对回归系数的t检验,就可以构造如下t统计量:
当然…首先…你要明白什么是t检验…
回归系数t检验的假设是beta=0,因此,在原假设成立的情况下,t统计量的值为:
到此还没结束,因为这里有一个很重要的地方大家会忽略,就是α和α/2的问题,导致计算P值的时候容易出错。
正常我们用查表法怎么判别?
给定显著性水平α,查表得临界值,对比计算出来的t和;
那么用P值法呢?
计算出来的t,通过分布概率函数得到t对应的那个p/2,那么再乘以2,就是要求的P值了。
投稿、发布招聘信息、合作,请加数说君个人微信AnselT,或Email:jiayounet@163.com,再或直接后台留言。
数说工作室
大数据 云计算 高逼格
微信ID:shushuojun
长按二维码关注数说工作室