运行 混合效应模型使用 R-INLA 时的错误消息

Error message when running mixed effect models using R-INLA

我正在使用 R-INLA 运行 以下模型(治疗、Animal.1 和 Animal.2 是因子并且 Encounter.Length 是连续的):

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) 中:'covariate' 必须匹配 'values',并且两者必须是 'numeric' 或 'factor'/'character'.

我刚开始使用 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))