练习R:用lm.ridge()做岭回归分析,可惜无法输出R平方
某医师希望通过B超下胎儿的身长、头围、体重来预测胎儿周龄,这些观测值均是连续性数值变量,所以很容易想到建立一个多重线性回归方程来解决问题。
数据:取自张文彤老师SPSS统计教程高级版
常规的线性回归显示有严重共线性问题,且所得回归系数与现实生活逻辑不符,得想办法解决共线性问题。
以R的lm.ridge()做岭回归分析
读取数据:
touwei <- read.csv("ridgereg.csv")
岭回归:
fit <- lm.ridge(y~long+touwei+weight,data=touwei,lambda = seq(0,2,0.001))
看岭迹图:
plot(fit)
观察此图,lambda在1左右,三条曲线区域平稳运行,本例根据岭迹图主观定lambda=1.1,重新拟合岭回归的以结果:
fit <- lm.ridge(y~long+touwei+weight,data=touwei,lambda = 1.1)
即所得岭回归方程表达式为:
y=8.697+0.225*long+0.111*touwei+0.005*weight
可惜lm.ridge函数并没有直接提供回归拟合的R平方,以及各偏回归系数显著性检验p值结果。没有办法通过R方或p值来对结果进行评判。
本文完
文/图=数据小兵
赞 (0)