繁体   English   中英

如何在R中的cv.glmnet或glmnet函数中找到拟合值?

[英]How to find the fitted value in cv.glmnet or glmnet function in R?

假设我生成了以下数据集,并使用R cv.glmnet函数拟合了模型。

library(glmnet)
means <- c(-1, 1.3, 0.6, 2, 1.5, -0.7, 2.5)
size <- c(50, 50, 100, 200, 350, 50, 200)


t = list()
  for (i in 1:length(means)) {
   t[[i]] <- c(rnorm(size[i],mean = means[i],sd = 0.5))
  }
y <- c(unlist(t))
plot(y,type = 'l')

lower_tri <- function(i){ 
  a <- matrix(1,i,i)
  a[upper.tri(a)] <- 0
  return(a)
}
x <- lower_tri(sum(size))[,2:sum(size)]

cv_fit <- cv.glmnet(x,y)

如何使用cv_fit1查找拟合值? 我对lm模型使用了fitted()函数。

非常感谢你。

从pkg glmnet询问cv.glmnetfitted值是错误的。 交叉验证是在具有不同结构的相对广泛的各种模型上进行的,因此,它实际上并没有执行与具有单个模型和单个结果的glm等效的任何操作。 cv.glmnet的目标是为您提供结果,让您根据数据的性质选择glmnet过程的最佳复杂度。 这是选择glmnet模型(即选择lambda)的一步。 您可以使用它来获得预测:

 predict( glmnet(x,y), s=cv_fit$lambda.min )  

我认为所提供的示例对于支持进一步的讨论不是特别有用,因为它看起来“退化”且具有最低程度的复杂性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM