错误:chol():调用 gratia::fitted_samples() 时分解失败

问题描述

非常感谢您对解决以下错误的任何帮助。

我在 mgcv 中安装了 GAM

# This code runs fine
l9 <- gam(length_t ~ 
             tagged + 
             sex_t0 +
             s(age.x,by = tagged,k = 6) +
             s(age.x,by = sex_t0,k = 6) +
             s(scale_id,bs = "re") + 
             s(age.x,scale_id,bs = "re"),data = long,method = "REML")

我现在想从我的拟合模型中获取指定数据的后验图。 我创建新数据

# This code runs fine
pred.dat <- data.frame(tagged = c(rep(0,752),rep(1,752)),sex_t0 = c(rep("f",376),rep("m",rep("f",376)),age.x = c(rep(seq(9,384,1),4)),scale_id = rep(1,1504))

pred.dat$tagged <- factor(pred.dat$tagged)
pred.dat$sex_t0 <- factor(pred.dat$sex_t0)
pred.dat$scale_id <- factor(pred.dat$scale_id)

然后尝试从我的拟合模型中获取指定数据的后验图。请注意,下面的 fitted_samples() 函数来自美妙的 gratia 包。

# This code get error
pd1 <- fitted_samples(l9,n = 100,newdata = pred.dat,seed = 10)

error: chol(): decomposition Failed
Error in rmvn(n = n,mu = coef(model),sigma = V,ncores = ncores) : 
  chol(): decomposition Failed

在线报告了许多类似的错误(例如hereherehere)。但是,我没有发现任何与 gratia 包或 fitted_samples() 函数相关的类似错误。我怀疑 fitted_samples() 在某处内部调用 chol() 函数,并且传递给 chol() 的矩阵中的值可能并非都是正定的。我注意到 chol()help page 表明“如果 x 不是正定的,则​​会发出错误信号” - 到目前为止,这一切意味着什么以及如何解决这个问题超出了我的范围。

问:对于解决错误的任何帮助或建议将不胜感激?

当使用不同但相似的结构、模型时,同样的代码对我来说运行良好。

# Model
wt9 <- gam(weight_t ~ 
             tagged + 
             sex_t0 +
             s(age.x,k = 5) +
             s(age.x,k = 5) + 
             s(scale_id,method = "REML")

# Create data
pred.dat <- data.frame(tagged = c(rep(0,1504))

pred.dat$tagged <- factor(pred.dat$tagged)
pred.dat$sex_t0 <- factor(pred.dat$sex_t0)
pred.dat$scale_id <- factor(pred.dat$scale_id)

# Get posterior draws from my fitted model for the specified data
pd1 <- fitted_samples(wt9,seed = 10)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...