Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 弹性净回归(前列腺数据)_R_Glmnet_Mse - Fatal编程技术网

R 弹性净回归(前列腺数据)

R 弹性净回归(前列腺数据),r,glmnet,mse,R,Glmnet,Mse,在最初的弹性网论文中,邹和黑斯蒂(2005)检查了前列腺癌数据以进行比较。我想使用R中的glmnet包重新生成结果。如本文所述,响应为lpsa。训练集和测试集由数据中的变量train给出。我假设alpha=0.26(如本文所述),并使用交叉验证来估计lambda。但我无法得到与论文中给出的均方误差(0.381)类似的均方误差。我的错在哪里 下面给出了我使用的代码 library(ElemStatLearn) library(glmnet) x = model.matrix(lpsa ~ .-t

在最初的弹性网论文中,邹和黑斯蒂(2005)检查了前列腺癌数据以进行比较。我想使用
R
中的
glmnet
包重新生成结果。如本文所述,响应为
lpsa
。训练集和测试集由数据中的变量
train
给出。我假设
alpha=0.26
(如本文所述),并使用交叉验证来估计
lambda
。但我无法得到与论文中给出的均方误差(0.381)类似的均方误差。我的错在哪里

下面给出了我使用的代码

library(ElemStatLearn)
library(glmnet)
x  = model.matrix(lpsa ~ .-train, data = prostate)[, -1]
y = prostate$lpsa
#
trainlab = which(prostate$train=="TRUE")
testlab = which(prostate$train=="FALSE")
y.test = y[testlab]

alph=0.26
en.mod = glmnet(x[trainlab, ], y[trainlab], alpha = alph)

set.seed(1)
cv.out = cv.glmnet(x[trainlab, ], y[trainlab], alpha = alph)
bestlambda=cv.out$lambda.min
en.pred = predict(en.mod, s=bestlambda, newx = x[testlab, ])
MSE.en = mean((en.pred-y.test)^2)
MSE.en
[1] 0.5043356
根据,他们使用了一种称为LARS-EN的算法,因此您可能有兴趣检查名为
elasticnet
的包,因为它实现了该算法