最近在做线性模式实验报告,在网上找到的画岭迹图的方法普遍是:
fit <- lm.ridge(因变量~自变量,data=XXX(中心标准化),lambda=seq(0,0.2,0.01))
plot(fit)
但是这样跑出来的结果没有图例,看起来很令人迷惑。
fit <- lm.ridge(GNP.deflator~.,data=data.frame(longleydata),lambda=seq(0,0.2,0.01))
plot(fit)
在琢磨了很久怎么用legend函数匹配上plot的图里颜色后,我找到了一个帖:r - How to perform lm.ridge summary? - Stack Overflow里面有两种画有图例的岭迹图的方法,秘诀就是不要用plot&legend函数,直接ggplot画图。我只用了其中一种,用到了broom包里面的tidy()函数,该函数返回岭参数的值+Generalized Cross-Validation值+某个自变量+对应的岭回归系数+scale组成的数据框。
然后ggplot美学层中取 x=岭参数,y=岭回归系数,color分类=自变量
有图例啦啦啦!!!
fit_ridge <- lm.ridge(GNP.deflator~., data=data.frame(longleydata), lambda=seq(0,0.2,0.005))
fit_td <- tidy(fit_ridge)
ggplot(fit_td, aes(x=lambda,y=estimate,color=term))+geom_line()