多重比较的层次模型-多重结果上下文


10

我刚刚(重新)阅读了格尔曼的《为什么我们(通常)不必担心多重比较》。特别是 “多重结果和其他挑战”部分提到在不同时间/条件下同一个人/单位有多个相关度量的情况下使用分层模型。它似乎具有许多理想的特性。

我了解这不一定是贝叶斯方法。有人可以告诉我如何使用rjags和/或lmer(常规JAGS和BUGS以及其他混合模型库,例如MCMCglmm)也可以正确地构建多变量多级模型,以便我可以进行比较和比较。对比结果?我想要模型的情况类型反映在下面的玩具数据中(多变量,重复测量):

set.seed(69)
id     <- factor(rep(1:20, 2))                # subject identifier
dv1    <- c(rnorm(20), rnorm(20,  0.8, 0.3))  # dependent variable 1 data for 2 conditions
dv2    <- c(rnorm(20), rnorm(20,  0.3, 0.6))
dv3    <- c(rnorm(20), rnorm(20, -0.3, 0.8))
dv4    <- c(rnorm(20), rnorm(20,  0.2, 1  ))
dv5    <- c(rnorm(20), rnorm(20,  0.5, 4  ))
rmFac  <- factor(rep(c(1, 2), each=20))       # repeated measures factor
dvFac  <- factor(rep(1:5, each=40))           # dependent variable indicator

dfwide <- data.frame(id, dv1, dv2, dv3, dv4, dv5, rmFac)
dflong <- data.frame(id, dv = c(dv1, dv2, dv3, dv4, dv5), rmFac, dvFac) # just in case it's easier?

对我来说,您的问题是什么还不清楚...我想念那个问号:)
RasmusBååth2012年

@RasmusBååth我同意,我已经对其进行了编辑,以期使其更清楚我想要的内容。谢谢。
马特·阿尔布雷希特

Answers:


3

我认为我对分层贝叶斯模型有一个合理的部分解决方案。rjags下面的代码...

dflong$dv <- scale(dflong$dv)[,1]
dataList = list(  
    y = dflong$dv, 
    rmFac  = dflong$rmFac ,
    dvFac  = dflong$dvFac ,
    id     = dflong$id ,
    Ntotal = length(dflong$dv) ,
    NrmLvl = length(unique(dflong$rmFac)),
    Ndep   = length(unique(dflong$dvFac)),
    NsLvl  = length(unique(dflong$id))
)

modelstring = "
model {
for( i in 1:Ntotal ) {
    y[i] ~ dnorm( mu[i] , tau[rmFac[i], dvFac[i]])
    mu[i] <- a0[ dvFac[i] ] + aS[id[i], dvFac[i]] + a1[rmFac[i] , dvFac[i]]
}
for (k in 1:Ndep){
    for ( j in 1:NrmLvl ) { 
        tau[j, k] <- 1 / pow( sigma[j, k] , 2 )
        sigma[j, k] ~  dgamma(1.01005,0.1005)
    }
}
for (k in 1:Ndep) {
    a0[k] ~ dnorm(0, 0.001)
    for (s in 1:NsLvl){
        aS[s, k] ~ dnorm(0.0, sTau[k])
    }
    for (j in 1:NrmLvl) {
        a1[j, k] ~ dnorm(0, a1Tau[k])
    }
    a1Tau[k] <- 1/ pow( a1SD[k] , 2)
    a1SD[k]  ~ dgamma(1.01005,0.1005)

    sTau[k] <- 1/ pow( sSD[k] , 2)
    sSD[k]  ~ dgamma(1.01005,0.1005)
}
}
" # close quote for modelstring
writeLines(modelstring,con="model.txt")

同样,基础贝叶斯重复度量脚本来自Kruschke


3

最终,我找到了Thurston等人将我的问题贝叶斯模型嵌套在多个域中的文献解决方案。2009年。他们提出了一个用于单个或多个域的层次模型,该模型反映了变量的域相关性。它合并了对个体和跨域个体(如果存在多个域)的随机效应。它也可以很容易地扩展到包括重复测量或纵向设计。
注意:我将在此处发布JAGS模型以尽快完成答案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.