【问题标题】:Error in R: no applicable method for 'predict' applied to an object of class "NULL"R中的错误:没有适用于“预测”的方法应用于“NULL”类的对象
【发布时间】:2015-08-22 02:56:21
【问题描述】:

我正在尝试估计一些系数的准确性。这是我的代码:

    set.seed(12)
n <- 200
coefs <- rep(c(2, -1, 0), each=30)
epsilon <- rnorm(n, 0, 10)
x <- matrix(nrow=n, ncol=90)
for(i in 1:90){
  x[, i] <- rnorm(200, 0, 1)
}
y <- rep(NA, n)
for(i in 1:n){
  y[i] = sum(x[i,]*coefs) + epsilon[i]
}
data <- data.frame(x=x,y=y)

dim(data)
head(data)
numericvars <- c(1:90)
insample <- data[1:100,]
outsample <- data[101,200]
x <- as.matrix(insample[,numericvars])
y <- insample$y
insamplex <- insample[x>0]
outsamplex <- outsample[x,]
insampley <- insample[y>0,]
outsampley <- outsample[y,]
newdata <- data.frame(x=x,y=y)
newdata1 <- na.omit(newdata)

lambdalevels <- 10^seq(7,-2,length=100)

cvlassomod <- glmnet(x, y, alpha=1,lambda=lambdalevels)
yhat <- predict(cvlassomod$glmnet, s=cvlassomod$lambdamin, newx=outsamplex) 

这里我收到一个错误:UseMethod("predict") 中的错误:没有适用于 'predict' 的方法应用于“NULL”类的对象

sselas <- sum((outsampley-yhat)^2)
tss <- sum((outsampley -mean(insampley))^2)
las <- (tss-sselas)/tss
las

关于如何通过将 NULL 拉入预测函数来纠正此问题的任何建议?

谢谢!

【问题讨论】:

  • cvlassomod 没有元素 glmnetcvlassomod$glmnetNULLpredict 的第一个参数应该(很可能)是 cvlassomod。您将遇到predict 的另一个错误,因为outsamplex 也似乎是NULLcvlassomod$lambdamin

标签: r simulation


【解决方案1】:

错误也可能来自 vvlassomod$lambdamin 不存在的事实。你试过 vlassomod$lambda.min 吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2017-01-10
    • 2022-12-15
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多