我正在使用R-INLA运行以下模型(Treatment,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)中:“协变量”必须与“值”匹配,并且两者都必须为“数字”或“因子” /“字符”。
我是使用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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句