使用R-INLA运行混合效果模型时出现错误消息



我正在使用R-INLA运行以下模型(治疗、动物.1和动物.2是因素,接触长度是连续的(:

formula <- Encounter.Length ~ Treatment +f(Animal.1, model = "iid", n = n.animal) + 
f(Animal.2, copy = "Animal.1")
m.1 <- inla(formula, data = inla.dat)

然而,在运行此代码后,我收到以下错误消息:

inla错误(公式,数据=inla.dat(:在f(Animal.1(中:"协变"必须与"值"匹配,并且两者都必须是"数值"或"因子"/"字符"。

我是使用INLA的新手,想知道这个错误消息意味着什么以及如何修复它。

答案(来自r-inla.help(:B的级别不是a的子集(用于定义B复制的模型(。因此,您必须在级别上定义并集上的模型。

例如:

n <- 3 
A <- as.factor(letters[1:n]) 
B <- as.factor(letters[1+1:n]) 
y <- 1:n 

这不起作用

inla(y ~ -1 + f(A) + f(B, copy = "A"), data = data.frame(A, B)) 

但确实如此

values <- as.factor(unique(c(levels(A), levels(B)))) 
inla(y ~ -1 + f(A, values = values) + f(B, copy = "A"), 
data = list(A = A, B = B, values = values))

相关内容

最新更新