Modèles hiérarchiques pour les comparaisons multiples - contexte à résultats multiples

10

Je viens de (re) lire pourquoi nous n'avons généralement pas à nous soucier des comparaisons multiples . En particulier, la section «Résultats multiples et autres défis» mentionne l'utilisation d'un modèle hiérarchique pour les situations où il existe plusieurs mesures connexes de la même personne / unité à différents moments / conditions. Il semble avoir un certain nombre de propriétés souhaitables.

Je comprends que ce n'est pas nécessairement une chose bayésienne. Quelqu'un pourrait-il me montrer comment construire correctement un modèle multiniveau multivarié en utilisant rjags et / ou lmer (les JAGS et BUGS ordinaires devraient également convenir, ainsi que d'autres bibliothèques de modèles mixtes, par exemple, MCMCglmm) afin que je puisse jouer avec pour comparer et résultats de contraste? Le type de situation pour laquelle je souhaiterais un modèle se reflète dans les données sur les jouets ci-dessous (multivariées, mesures répétées):

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?
Matt Albrecht
la source
Pour moi, ce n'est pas clair quelle est votre question ... Je manque ce point d'interrogation :)
Rasmus Bååth
@ RasmusBååth Je suis d'accord, je l'ai édité pour, espérons-le, clarifier ce que j'aimerais. Merci.
Matt Albrecht

Réponses:

3

Je pense avoir une solution partielle raisonnable pour le modèle bayésien hiérarchique. rjagsCode ci-dessous ....

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

Encore une fois, le script de mesures répétées bayésiennes de Kruschke

Matt Albrecht
la source
3

J'ai finalement trouvé une solution bibliographique à mes problèmes de modèles bayésiens pour de multiples résultats imbriqués dans des domaines par Thurston et al. 2009. Ils proposent un modèle hiérarchique pour des domaines uniques ou multiples qui reflète la nature dépendante du domaine des variables. Il incorpore des effets aléatoires pour les individus et les individus à travers les domaines (s'il y a plusieurs domaines). Il peut également être facilement étendu pour inclure des mesures répétées ou des conceptions longitudinales.
Remarque: je posterai un modèle JAGS ici pour compléter la réponse bientôt

Matt Albrecht
la source