最重要的一集 | 【SAS Says·扩展篇】IML:6.作业

2018-04-04 14:59:32 浏览数 (1)

咱们的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,对比两种方法的结果:

data gnp_1963;

set sashelp.gnp;

if _n_ <17;

keep gnp consump invest;

proc reg;

model gnp= 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值了。

sas

0 人点赞