gpt4 book ai didi

r - R 中的 MCMCglmm 多项式模型

转载 作者:行者123 更新时间:2023-12-02 15:02:26 26 4
gpt4 key购买 nike

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

数据的结构如下,其中二元、焦点、其他都是随机效应,预测 1-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 的类(class)笔记(第 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. 如何指定该模型的先验?我已经查看了这篇文章中提到的 Material ,但无法弄清楚。

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

最佳答案

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

# values for prior
k <- 5 # originally: length(levels(dative$SemanticClass)), so k = # of outcomes for SemanticClass aka categorical outcomes
I <- diag(k-1) #should make matrix of 0's with diagonal of 1's, dimensions k-1 rows and k-1 columns
J <- matrix(rep(1, (k-1)^2), c(k-1, k-1)) # should make k-1 x k-1 matrix of 1's

对于我的模型,使用 multinomial5 系列和 5 个结果变量,先验是:

prior = list(
R = list(fix=1, V=0.5 * (I + J), n = 4),
G = list(
G1 = list(V = diag(4), n = 4))

对于我的第二个问题,我需要向该模型中的固定效应添加一个交互项:

 m <- MCMCglmm(cbind(Resp1, Resp2...) ~ -1 + trait*predictorvariable,
...

结果给出了响应变量的主效应和响应/预测变量相互作用的后验估计(预测变量对每个响应变量的影响)。

关于r - R 中的 MCMCglmm 多项式模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com