运行Ridge回归的问题

时间:2016-03-08 10:37:02

标签: r regression

我过去经常使用名为“' ridge'来自埃里卡库莱(Erica Cule)进行岭回归,但似乎已经从CRAN网站上撤下了。通过各种帮助,似乎至少有2个其他包可以运行它(genridge和MASS)。然而,当我运行分析时,我得到的结果我知道是错误的(我将结果与SPSS Ridge例程进行比较,这是很久以来建立的,我使用的数据与我用来比较与SPSS具有相同结果的脊包相同)。

我使用的是最新版本的R(3.2.3)。数据是标准回归类型数据,因此所有数据都是7点语义量表,没有丢失数据(缺失数据被均值替换),变量之间存在很强的相关性(通常为0.5及以上),所以你希望看到脊回归中的大刑罚效应。

当我在两种方法中运行分析时,系数基本上不会随着λ增加而改变(仅改变到小数点后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

1 个答案:

答案 0 :(得分:0)

您可以尝试使用glmnet R包。

此外,如果您的数据量不是很大,您可以考虑使用岭回归 作为增广的普通最小二乘问题

以下链接可以很好地解释这个想法 http://statweb.stanford.edu/~tibs/sta305files/Rudyregularization.pdf