Like in this post I'm struggling with the notation of MCMCglmm
, especially what is meant by trait
. My code ist the following
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")
Which gives me the error message For error structures involving catgeorical data with more than 2 categories pleasue use trait:units or variance.function(trait):units.
(!sic). If I would generate dichotomous data by letters[1:2]
, everything would work fine. So what is meant by this error message in general and "trait" in particular?
Edit 2016-09-29:
From the linked question I copied rcov = ~ us(trait):units
into my call of MCMCglmm
. And from https://stat.ethz.ch/pipermail/r-sig-mixed-models/2010q3/004006.html I took (and slightly modified it) the prior
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)))
. Now my model actually gives results:
MCMCglmm(fixed = y ~ 1 + x, random = ~us(1 + x):id,
rcov = ~ us(trait):units, prior = prior, data = dat,
family = "categorical")
But still I've got a lack of understanding what is meant by trait
(and what by units
and the notation of the prior, and what is us()
compared to idh()
and ...).
Edit 2016-11-17:
I think trait
is synoym to "target variable" or "response" in general or y
in this case. In the formula for random
there is nothing on the left side of ~
"because the response is known from the fixed effect specification." So the rational behind specifiying that rcov
needs trait:units
could be that it is alread defined by the fixed
formula, what trait
is (y
in this case).