我在数据框中有一个57个特征(列)~4600行数据集。为了计算好的岭回归参数,我想对它进行10次交叉验证。有人可以告诉我如何在R中这样做吗?
答案 0 :(得分:6)
parcor
包中的 ridge.cv()
仅用于此目的。
以下是手册中的一个例子:
> n<-100 # number of observations
> p<-60 # number of variables
> X<-matrix(rnorm(n*p),ncol=p)
> y<-rnorm(n)
> ridge.object<-ridge.cv(X,y)
> ridge.object
$intercept
0.01146743
$coefficients
X1 X2 X3 X4 X5 X6 X7
1.709387e-02 4.833916e-03 3.954463e-03 -9.671448e-03 4.507962e-03 -6.370366e-03 -4.655737e-02
...
X57 X58 X59 X60
-2.119606e-03 -1.229390e-04 -1.912877e-03 -1.833788e-02
$lambda.opt
[1] 540
此处,$lambda.opt
是使用十倍交叉验证获得的正则化参数的最佳值。