这是估算MCMCglmm的适当先验规范吗?

时间:2019-05-30 11:26:49

标签: r glm mcmc

我正在研究我的博士学位论文,并尝试通过使用R中的“ MCMCglmm”包来拟合广义线性混合效果模型。我已经反复阅读Jarrod的有用的教程材料。但是,关于我没有弄清楚的先验规范,仍然存在一些问题。

在我的研究中,因变量是参与家庭节能计划的人数(计数结果)。对于360个社区中的每一个社区,在大约三年中每天都对其进行重复测量(因此,数据非常大,n = 371,520)。此外,这些社区位于不同的区域(总共90个区域)。就这样 纵向每日计数数据嵌套在区域内的社区中。我的研究旨在调查哪些因素会影响该计划的(每日)参与者人数。基本模型是(过度分散的)泊松模型:

    #give the priors
    prior.poi <- list(R = list(V = diag(1), nu = 0.002, n=0, fix=1),
    G = list(
    G1=list(V = diag(3)*0.02, nu =4),
    G2=list(V=diag(3)*0.02, nu=4)
    ))

    #fit the model
    model.poi <- MCMCglmm(y ~ 1 + t + x + x:t + t2 + t3 + t4 + c1 + c2 + c3 + d1 + d2 + d3,
    random = ~ us(1 + t + x):no_c + us(1 + t + x):no_d,
    rcov = ~idh(1):units,
    family = "poisson",
    data = dat.big,
    prior = prior.poi,
    burnin = 15000, nitt = 65000, thin = 50)

在固定效果部分,“ y”是计数结果; “ t”表示自计划启动以来经过的天数; “ x”是针对某些社区实施的另一种行为干预措施。 “ t2〜t4”是其他随时间变化的因素(例如,假人测量周末和公共假期,以及平均每日温度的对数项); “ c1〜c3”和“ d1〜d3”分别衡量社区和地区一级的特征,这些特征是随时间变化的变量(例如总人口,面积)。在随机效果部分,“ no_c”和“ no_d”是每个社区和地区的记录数。

由于我的数据中有许多多余的零,所以我进一步运行了一个(过度分散的)泊松模型,如下所示。

#give the priors
prior.hp <- list(R = list(V = diag(2), nu = 0.002, n=0, fix=1),  
G = list(
G1=list(V = diag(6)*0.02, nu =7),
G2=list(V=diag(6)*0.02, nu=7)
)
)

#fit the model
model.hp <- MCMCglmm(y ~ -1 + trait + trait:t + trait:x + trait:x:t + trait:t2 + trait:t3 + trait:t4 + trait:c1 + trait:c2 + trait:c3 + trait:d1 + trait:d2 + trait:d3, 
random = ~ us(trait + trait:t + trait:x):no_c + us(trait + trait:t + trait:x):no_d, 
rcov = ~idh(trait):units,
family = "hupoisson", 
data = dat.big, 
prior = prior.hp, 
burnin = 15000, nitt = 65000, thin = 50, 
pr = T, pl = T)

仅当在先前规范的R-结构中添加“ fix = 1”时,OD和跨栏泊松模型才能很好地工作。从先前版本中删除它时,两个模型都将返回错误消息:

  

“混合模型方程单数:先使用(更强)”

,然后停止运行。无论是否在G结构中使用了参数扩展,该错误都不会消失(对于OD Poisson模型,即alpha.mu = rep(0,3),alpha.V = diag(3)* 25 ^ 2,以及是否为alpha.mu = rep(0,6),是否为alpha.V = diag(6)* 25 ^ 2)(无论是否移除/调整了R结构中的其他元素。

在障碍泊松模型中,由于无法估计零变动过程的协方差矩阵,因此在R结构中应使用“ fix = 2”,而不是“ fix = 1”。但是,如上所述,除非零截断Poisson过程的剩余方差固定为1,否则该模型无法很好地运行。我的问题是,将零变化和泊松过程的剩余方差固定为R结构中的1是否合适?它对我的模型估算而言是否太“翔实”了?我还有其他先决条件可以使模型正常运行吗?关于这些问题的任何想法都将受到赞赏。

0 个答案:

没有答案