#本次diabete数据来源于R中lars包
#语言为R
观察diabetes数据
序号 | x.age | x.sex | … | x.glu | y | x2.age | x2.sex | … | x2.ltg:glu |
---|---|---|---|---|---|---|---|---|---|
1 | 0.03808 | 0.05068 | … | -0.0176 | 151 | 0.03808 | 0.05068 | … | -0.0278 |
… | … | … | … | … | … | … | … | … | … |
442 | -0.0455 | -0.0446 | … | 0.00306 | 57 | -0.0455 | -0.0446 | … | -0.0211 |
- 因变量y(糖尿病患者血液化验指标)
- 标准化的自变量矩阵x,大小为442*10矩阵,包含age、sex、bmi、map、tc、ldl、hdl、tch、ltg、glu这十个自变量
- x2矩阵,包含x和一些交互作用,大小为442*64矩阵,交互项例如age^2
step-1.描述统计
library(lars)
data(diabetes)
attach(diabetes)
kappa(x2)
#kappa()函数查看条件数为11427.09,共线性严重
step-2.最小二乘回归
step-2.1最小二乘回归方程
#用step()函数建立逐步回归模型,剔除不重要的变量,该函数使用AIC准则选择变量
model.step=step(lm(y~x2)) #建立逐步回归模型
summary(model.step)#得到回归方程的系数和p值
#结果部分截图显示,调整后R方位0.5233,回归方程的F统计量显著,x2sex,x2bmi等变量的系数显著
step-2.2模型检验
#是否符合高斯马尔可夫假设,画出估计的y值与残差的散点图,以检验异方差性,并用夏皮洛-威尔克检验看看残差是不是正态分布
plot(model.step$fit,model.step$res) #画散点图
abline(h=0,lty=2)
shapiro.test(model.step$res)
# 夏皮洛-威尔克检验结果显示说明残差服从正态分布#残差图显示逐步回归没有明显的异方差性
step-3.岭回归
β ^ r i d g e = a r g m i n ( ∑ i = 1 n ( y i − β 0 − ∑ j = 1 p x i j β j ) 2 + α ∑ j = 1 p β j 2 ) \hat{β}_{ridge}=arg min(\sum_{i=1} ^ {n}(y_i-β_0-\sum_{j=1}^{p}x_{ij}β_j)^2+\alpha \sum_{j=1}^{p}{β_j}^2) β^rid