R中的MCMCglmm多项式模型

问题描述 投票:7回答:1

我正在尝试使用R中的MCMCglmm包创建模型。

数据的结构如下,其中dyad,focus,其他都是随机效应,predest1-2是预测变量,而1-5是结果变量,捕获了#个不同亚型的观察到的行为。

 dyad focal other r    present  village  resp1 resp2 resp3 resp4 resp5 
 1    10101 14302 0.5  3        1        0     0     4     0     5
 2    10405 11301 0.0  5        0        0     0     1     0     1
 …

因此,只有一个结果(教学)的模型如下:

 prior_overdisp_i <- list(R=list(V=diag(2),nu=0.08,fix=2), 
 G=list(G1=list(V=1,nu=0.08), G2=list(V=1,nu=0.08), G3=list(V=1,nu=0.08), G4=list(V=1,nu=0.08)))

 m1 <- MCMCglmm(teaching ~ trait-1 + at.level(trait,1):r + at.level(trait,1):present, 
 random= ~idh(at.level(trait,1)):focal + idh(at.level(trait,1)):other + 
 idh(at.level(trait,1)):X + idh(at.level(trait,1)):village, 
 rcov=~idh(trait):units, family = "zipoisson", prior=prior_overdisp_i, 
 data = data, nitt = nitt.1, thin = 50, burnin = 15000, pr = TRUE, pl = TRUE, verbose = TRUE, DIC  = TRUE)

Hadfield的课程注释(第5章)给出了一个多项式模型的示例,该模型仅使用具有3个级别(3种类型的羊角)的单个结果变量。可以在这里找到类似的处理方法:http://hlplab.wordpress.com/2009/05/07/multinomial-random-effects-models-in-r/这对我正在做的事情不太正确,但是包含有用的背景信息。

另一个参考文献(Hadfield,2010年,给出了一个多响应MCMCglmm的示例,该示例遵循相同的格式,但是使用cbind()来预测响应的向量,而不是单个结果)。具有多个响应的相同模型如下所示:

 m1 <- MCMCglmm(cbind(resp1, resp2, resp3, resp4, resp5) ~ trait-1 + 
 at.level(trait,1):r + at.level(trait,1):present, 
 random= ~idh(at.level(trait,1)):focal + idh(at.level(trait,1)):other + 
 idh(at.level(trait,1)):X + idh(at.level(trait,1)):village, 
 rcov=~idh(trait):units, 
 family = cbind("zipoisson","zipoisson","zipoisson","zipoisson","zipoisson"), 
 prior=prior_overdisp_i, 
 data = data, nitt = nitt.1, thin = 50, burnin = 15000, pr = TRUE, pl = TRUE, verbose = TRUE, DIC  = TRUE)

我在这里有两个编程问题:

  1. 我如何为此模型指定先验条件?我看了这篇文章中提到的材料,但无法弄清楚。

  2. 我运行的相似版本只有两个响应变量,但我只得到一个斜率-我以为每个resp变量都应得到不同的斜率。我在哪里出错,或者我误解了模型?

r bayesian glm mcmc
1个回答
7
投票

根据HLP帖子以及大学/统计顾问的一些帮助,回答我的第一个问题:


0
投票

A.Kline,

© www.soinside.com 2019 - 2024. All rights reserved.