複数の比較のための階層モデル-複数の結果のコンテキスト


10

私は、(通常)多重比較を心配する必要がない(通常) Gelmanの(再)を読んだばかりです。特に、「複数の結果とその他の課題」のセクション では、同じ人物/ユニットからの複数の関連する測定が異なる時間/条件である場合の階層モデルの使用について言及しています。それは多くの望ましい特性を持っているようです。

これは必ずしもベイジアンのものではないことを理解しています。誰かが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ååth

@RasmusBååth同意します。うまくいけば、自分が望んでいることをより明確にするために編集しました。ありがとう。
Matt Albrecht

回答:


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")

ここでも、ベースベイジアンの反復測定スクリプト(クルシュケから


3

Thurston et al。によって、ドメインにネストされた複数の結果の問題のベイジアンモデルに対する文学的な解決策がついに見つかりました。2009.彼らは、変数のドメイン依存の性質を反映する単一または複数のドメインの階層モデルを提案します。個人およびドメイン全体の個人(複数のドメインがある場合)のランダム効果を組み込んでいます。また、繰り返し測定や縦方向の設計を含めるように簡単に拡張できます。
注:JAGSモデルをここに投稿して、すぐに回答を完成させます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.