【发布时间】:2016-06-22 06:17:14
【问题描述】:
我曾经使用 Erica Cule 的一个名为“ridge”的包来运行岭回归,但它似乎已从 CRAN 网站上删除。查看各种帮助似乎至少有 2 个其他软件包可以运行它(genridge 和 MASS)。但是,当我运行分析时,我得到了我知道是错误的结果(我将结果与 SPSS Ridge 例程进行了比较,该例程已经建立了很长时间,并且我使用了相同的数据来比较与 SPSS 具有相同结果的 ridge 包)。
我正在使用最新版本的 R (3.2.3)。数据是标准回归类型数据,因此所有数据都在 7 点语义尺度上,没有缺失数据(缺失数据被平均值替换),变量之间存在很强的相关性(通常为 0.5 及以上),因此您会期望看到岭回归中的大惩罚效应。
当我在这两种方法中运行分析时,系数基本上不会随着 lambda 的增加而改变(只改变到小数点后 4 位)。
你有什么想法吗?
###################################
#genridge
###################################
library(genridge)
regdata <- read.csv(file = "Finaldata.csv", na.strings = "#NULL!")
lridge <- ridge(Q13 ~ Q12_1 + Q12_2 + Q12_3 + Q12_4 + Q12_5 + Q12_6 + Q12_7 + Q12_8, data = regdata, lambda = seq(0,5,0.2))
coef(lridge)
###################################
#lm.ridge
###################################
library(MASS)
lridge <- lm.ridge(Q13 ~ Q12_1 + Q12_2 + Q12_3 + Q12_4 + Q12_5 + Q12_6 + Q12_7 + Q12_8, regdata, lambda = seq(0,5,0.2))
lridge$coef
数据看起来像这样
serial Q13 Q12_1 Q12_2 Q12_3 Q12_4 Q12_5 Q12_6 Q12_7 Q12_8
12 6 6 5 5 6 6 6 6 6
13 5 5 6 5 5 3 4 5 4
16 5 6 6 6 5 7 7 4 5
20 7 7 6 6 6 6 6 6 7
22 2 1 4 4 3 4 4 4 4
25 6 6 7 6 6 6 6 6 6
genridge 的输出
Q12_1 Q12_2 Q12_3 Q12_4 Q12_5 Q12_6 Q12_7 Q12_8
0.0 0.2915857 -0.06272736 0.1030976 0.2877907 -0.02847326 0.1817142 0.08490121 0.1303255
0.2 0.2914957 -0.06265994 0.1031015 0.2877065 -0.02837763 0.1816626 0.08487546 0.1303682
0.4 0.2914057 -0.06259260 0.1031054 0.2876224 -0.02828214 0.1816110 0.08484980 0.1304108
0.6 0.2913159 -0.06252533 0.1031093 0.2875384 -0.02818680 0.1815595 0.08482421 0.1304532
0.8 0.2912262 -0.06245813 0.1031132 0.2874544 -0.02809159 0.1815082 0.08479870 0.1304956
1.0 0.2911365 -0.06239101 0.1031171 0.2873705 -0.02799653 0.1814569 0.08477326 0.1305378
【问题讨论】:
-
有什么原因你没有尝试
glmnet?
标签: r regression