练习R:用lm.ridge()做岭回归分析,可惜无法输出R平方

原创 数据小兵  2021-04-16 10:48  阅读 2,714 次
数据小兵成长记

某医师希望通过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值来对结果进行评判。

本文完

文/图=数据小兵

本文地址:http://www.datasoldier.net/archives/2941
版权声明:本文为原创文章,版权归 数据小兵 所有,欢迎分享本文,转载请保留出处!
视频课程《SPSS统计分析:从入门到实践提高》
欢迎订阅SPSS训练营微信公众号

评论已关闭!