MCMCglmm二项式模型之前

时间:2016-11-15 18:25:14

标签: r glm mixed-models mcmc

我想估算一个包含(.*)total-games(.*)|.* R的二项式模型。该模型应包含截距和斜率 - 包括固定和随机部分。如何指定已接受的MCMCglmm? (注意,here is a similar question,但是在一个更复杂的环境中。)

假设数据具有以下形式:

prior

实际上,数据是由

生成的
  y           x cluster
1 0 -0.56047565       1
2 1 -0.23017749       1
3 0  1.55870831       1
4 1  0.07050839       1
5 0  0.12928774       1
6 1  1.71506499       1

1 个答案:

答案 0 :(得分:3)

有关模型的问题中的信息,建议指定set.seed(123) nj <- 15 # number of individuals per cluster J <- 30 # number of clusters n <- nj * J x <- rnorm(n) y <- rbinom(n, 1, prob = 0.6) cluster <- factor(rep(1:nj, each = J)) dat <- data.frame(y = y, x = x, cluster = cluster) fixed = y ~ 1 + x。使用random = ~ us(1 + x):cluster,您可以将随机效果关联起来(参见第{3.4节和Hadfield's 2010 jstatsoft-article中的第2节)

首先,因为你只有一个因变量(us()),前面的 G 部分(参见公式4和Hadfield's 2010 jstatsoft-article中的第3.6节)对于随机效应方差,只需要有一个名为y的列表元素。此列表元素不是实际的先前分布 - 这由Hadfield指定为inverse-Wishart distribution。但是使用G1,您可以指定此反Whishart分布的参数,这些参数是维基百科表示法中的比例矩阵(G1表示法中的V)和自由度(维基百科表示法中的MCMCglmm表示法中的nu)。由于你有两个随机效应(截距和斜率)MCMCglmm必须是一个2 x 2矩阵。经常选择的是二维单位矩阵V。哈德菲尔德经常使用diag(2)作为自由度(参见his course notes

现在,您还必须在先前的残差方差中指定 R 部分。在这里,Hadfield再次指定了反Whishart分布,让用户指定其参数。由于我们只有一个残差方差,nu = 0.002必须是标量(假设为V)。 V = 0.5的可选元素是R。使用此元素指定,是否应将残差方差固定为某个值(而不是必须写入fixfix = TRUE)(然后fix = 1fix = FALSE )。请注意,您不会将fix = 0的剩余差异修改为0.5!因此,当您在Hadfield的课程笔记fix = 0.5中找到时,请将其读作fix = 1并查看fix = TRUE的哪个值已修复。

我们设置前面的内容如下:

V

有了这个先验,我们可以运行prior0 <- list(G = list(G1 = list(V = diag(2), nu = 0.002)), R = list(V = 0.5, nu = 0.002, fix = FALSE))

MCMCglmm

Gibbs-sampler对固定效果的抽取可以在library("MCMCglmm") # for MCMCglmm() set.seed(123) mod0 <- MCMCglmm(fixed = y ~ 1 + x, random = ~ us(1 + x):cluster, data = dat, family = "categorical", prior = prior0) 中找到,mod0$Sol中的方差参数的绘制。

通常二项式模型要求固定残差方差,因此我们将残差方差设定为mod0$VCV

0.5

通过比较set.seed(123) prior1 <- list(G = list(G1 = list(V = diag(2), nu = 0.002)), R = list(V = 0.5, nu = 0.002, fix = TRUE)) mod1 <- MCMCglmm(fixed = y ~ 1 + x, random = ~ us(1 + x):cluster, data = dat, family = "categorical", prior = prior1) mod0$VCV[, 5]可以看出差异。在后一种情况下,所有条目都是mod1$VCV[, 5]指定的。