" trait"的含义在MCMCglmm中

时间:2016-09-28 13:49:45

标签: r glm categorical-data multi-level mcmc

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)。

1 个答案:

答案 0 :(得分:1)

units是响应变量值,trait是响应变量名称,对应于类别。通过指定rcov = ~us(trait):units,您允许残差方差在&#34; traits&#34;之间是异构的。 (响应类别),以便估计残差方差 - 协方差矩阵的所有元素。

在Hadfield的MCMCglmm课程笔记(vignette("CourseNotes", "MCMCglmm"))的5.1节中,您可以阅读保留变量traitunits的说明。