在this post中,我正在努力使用MCMCglmm
的符号,特别是trait
的含义。我的代码如下
library("MCMCglmm")
set.seed(123)
y <- sample(letters[1:3], size = 100, replace = TRUE)
x <- rnorm(100)
id <- rep(1:10, each = 10)
dat <- data.frame(y, x, id)
mod <- MCMCglmm(fixed = y ~ x, random = ~us(x):id,
data = dat,
family = "categorical")
这给了我错误消息For error structures involving catgeorical data with more than 2 categories pleasue use trait:units or variance.function(trait):units.
(!sic)。如果我按letters[1:2]
生成二分数据,一切都会正常。那么这个错误信息的含义一般是什么,&#34; trait&#34;特别是?
编辑2016-09-29:
从the linked question开始,我将rcov = ~ us(trait):units
复制到MCMCglmm
的电话中。从https://stat.ethz.ch/pipermail/r-sig-mixed-models/2010q3/004006.html开始,我采用了(稍微修改了一下)之前的内容
list(R = list(V = diag(2), fix = 1), G = list(G1 = list(V = diag(2), nu = 1, alpha.mu = c(0, 0), alpha.V = diag(2) * 100)))
。现在我的模型实际上给出了结果:
MCMCglmm(fixed = y ~ 1 + x, random = ~us(1 + x):id,
rcov = ~ us(trait):units, prior = prior, data = dat,
family = "categorical")
但我仍然缺乏理解trait
的含义(以及units
的含义和先前的符号,以及us()
与之相比的含义idh()
和......)。
编辑2016-11-17:
我认为trait
是&#34;目标变量&#34;或者&#34;回复&#34;一般情况下或y
在这种情况下。在random
的公式中,~
"because the response is known from the fixed effect specification."的左侧没有任何内容因此rcov
需要trait:units
的理性背后的理性可能是它已被删除由fixed
公式定义,trait
是什么(在这种情况下为y
)。
答案 0 :(得分:1)
units
是响应变量值,trait
是响应变量名称,对应于类别。通过指定rcov = ~us(trait):units
,您允许残差方差在&#34; traits&#34;之间是异构的。 (响应类别),以便估计残差方差 - 协方差矩阵的所有元素。
在Hadfield的MCMCglmm课程笔记(vignette("CourseNotes", "MCMCglmm")
)的5.1节中,您可以阅读保留变量trait
和units
的说明。