如何修复cv.zipath中的“可变长度不同”错误?

时间:2019-06-28 13:31:36

标签: r cross-validation

尝试使用cv.zipath包中的mpath对零膨胀泊松模型进行交叉验证。

安装LASSO
fit.lasso = zipath(estimation_sample_nomiss ~ .| ., 
             data = missings, 
             nlambda = 100, 
             family = "poisson", 
             link = "logit")
交叉验证
n <- dim(docvisits)[1]
K <- 10
set.seed(197)
foldid <- split(sample(1:n), rep(1:K, length = n))
fitcv <- cv.zipath(F_time_unemployed~ . | ., 
    data = estimation_sample_nomiss, family = "poisson",
                      nlambda = 100, lambda.count = fit.lasso$lambda.count[1:30],
                      lambda.zero = fit.lasso$lambda.zero[1:30], maxit.em = 300,
                      maxit.theta = 1, theta.fixed = FALSE, penalty = "enet",
                      rescale = FALSE, foldid = foldid)

我遇到以下错误:

  

model.frame.default中的错误(公式= F_time_unemployed〜。+。,data = list(:可变长度不同(为'(weights)'找到)

我已经清理了所有NA的样本,但是仍然遇到错误消息。

1 个答案:

答案 0 :(得分:0)

结果证明,cv.zipath()命令不接受小数据格式-至少在这种情况下。 (不保证如何概括此声明)。使用dplyr命令后,需要将其转换回数据帧。因此,解决方案就像as.dataframe()一样简单。