问题描述
我发现了一个类似的 question ,并且给出了很好的答案。
然而,我和接受的答案做了同样的事情,但令人惊讶的是我得到了不同的系数结果。
我做错了什么?
p.tmp <- 10
n.tmp <- 100
set.seed(123)
X=scale(matrix(rnorm(n.tmP*p.tmp),ncol = p.tmp))
Y=scale(rnorm(n.tmp))
set.seed(123)
ridge.fit.cv <- cv.glmnet(X,Y,alpha = 0,intercept = FALSE)
ridge.fit.lambda <- ridge.fit.cv$lambda.1se
ridge_mod <- (coef(ridge.fit.cv,s = ridge.fit.lambda))[-1]
###############################
ridge.coef.DEF = solve(t(X) %*% X + n.tmp * ridge.fit.lambda * diag(p.tmp)) %*% t(X) %*% Y
cbind(ridge_mod,ridge.coef.DEF)
系数结果不同如下
> cbind(glmnet=c(ridge_mod),textbook=c(ridge.coef.DEF))
glmnet textbook
[1,] 7.654927e-38 0.0003823413
[2,] -2.396856e-38 -0.0001195132
[3,] -1.621789e-37 -0.0008111162
[4,] 1.977203e-37 0.0009878751
[5,] 3.457742e-38 0.0001741503
[6,] -4.169392e-38 -0.0002081700
[7,] 8.576066e-38 0.0004296001
[8,] 1.473575e-37 0.0007362285
[9,] -8.753641e-38 -0.0004371627
[10,] 1.740288e-37 0.0008698664
我希望结果大致相似。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)