J'ai posté cela plus tôt dans la semaine, puis j'ai retiré la question lorsque j'ai trouvé une bonne source, ne voulant pas perdre le temps des gens. Je n'ai pas fait beaucoup de progrès, je le crains. En essayant d'être un bon citoyen ici, je rendrai le problème aussi clair que possible. Je soupçonne qu'il y aura peu de preneurs.
J'ai une trame de données en RI que je souhaite analyser en BUGS ou R. Elle est en format long. Il consiste en de multiples observations sur 120 individus, avec un total de 885 lignes. J'examine l'occurrence d'un résultat catégorique - mais ce n'est pas vraiment pertinent ici. La question concerne quelque chose de plus profond.
Le modèle que j'utilisais jusqu'ici est
mymodel<-gee(Category ~ Predictor 1 + Predictor 2..family=binomial(link="logit"),
data=mydata,
id=Person)
avec un modèle marginal représentant essentiellement le regroupement des patients. J'ai ensuite examiné
mymodel<-gee(Category ~ Predictor 1 + Predictor 2.. , family=binomial(link="logit"),
corstr = "AR-M",
data=mydata, id=Person)
afin de tenir compte de l'ordre chronologique des observations sur les personnes individuelles.
Cela n'a pas beaucoup changé.
J'ai ensuite essayé de les modéliser à l'aide de l'ensemble de commandes MCMCPack suivant:
mymodel<-MCMCglmm(category~ Predictor1 + Predictor2..,
data=mydata, family=binomial(link="logit"))
Un examen des résultats a été passionnant, montrant une signification statistique pour de nombreux prédicteurs. Je me suis salué comme un bayésien nouvellement converti, jusqu'à ce que je réalise que je n'avais pas pris en compte les mesures répétées chez les patients.
Je comprends que je dois en tenir compte. Je comprends que cela peut signifier adapter un hyperprior pour chaque individu - est-ce vrai? Quelle forme cela prendra-t-il dans BUGS?
Voici un modèle de base de reg log: (bravo à Kruschke, J., Indiana)
model {
for( i in 1 : nData ) {
y[i] ~ dbern( mu[i] )
mu[i] <- 1/(1+exp(-( b0 + inprod( b[] , x[i,] ))))
}
b0 ~ dnorm( 0 , 1.0E-12 )
for ( j in 1 : nPredictors ) {
b[j] ~ dnorm( 0 , 1.0E-12 )
}
}
Cependant, aucun hyperprior ici pour l'individu. Voici ma meilleure tentative jusqu'à présent pour une conception intra-individuelle, tenant compte des mesures répétées chez les personnes:
Voici le modèle de Jackman pour JAGS
1 model{
2 ## loop over data for likelihood
3 for(i in 1:n){
4 y[i] ~ dbern( mu[i] )
mu[i] <- 1/(1+exp(-( b0 + inprod( b[] , x[i,] ))))
6 }
7 sigma ˜ dunif(0,20) ## prior on standard deviation
8 tau <- pow(sigma,-2) ## convert to precision
9
10 ## hierarchical model for each state’s intercept & slope
11 for(p in 1:50){
12 beta[p,1:2] ˜ dmnorm(mu[1:2],Tau[,]) ## bivariate normal
13 }
14
15 ## means, hyper-parameters
16 for(q in 1:2){
17 mu[q] ˜ dnorm(0,.0016)
}
Voici mon modèle bâtard-enfant pour BUGS
1 model{
2 ## loop over data for likelihood
3 for(i in 1:n){
4 mu.y[i] <- alpha + beta[s[i],1] + beta[s[i],2]*(j[i]-jbar)
5 demVote[i] ˜ dnorm(mu.y[i],tau)
6 }
7 sigma ˜ dunif(0,20) ## prior on standard deviation
8 tau <- pow(sigma,-2) ## convert to precision
9
10 ## hierarchical model for each state’s intercept & slope
11 for(p in 1:120){
12 beta[p,1:2] ˜ dmnorm(mu[1:2],Tau[,]) ## bivariate normal
13 }
14
15 ## means, hyper-parameters
16 for(q in 1:2){
17 mu[q] ˜ dnorm(0,.0016)
}
Quelqu'un peut-il me dire si je vais dans la bonne direction? Ma compréhension de cela grandit, mais lentement. Soyez gentil s'il vous plait. Je suis médecin, pas statistique! J'ai utilisé R un peu, mais je suis nouveau sur BUGS et nouveau sur Bayes.
Merci,
R
Réponses:
Vous êtes (étiez) presque là. Juste quelques commentaires - vous n'avez pas à faire de l'a priori pour les
beta[,1:2]
paramètres un MV commun normal; vous pouvez rendre l'a priori tel quebeta[i,1]
etbeta[i,2]
sont indépendants, ce qui simplifie les choses (par exemple, aucune covariance préalable n'a besoin d'être spécifiée.) Notez que cela ne signifie pas qu'ils seront indépendants dans la partie postérieure.Autres commentaires: Puisque vous avez un terme constant -
alpha
- dans la régression, les composantesbeta[,1]
doivent avoir une moyenne nulle dans l'a priori. De plus, vous n'avez pas de prioritéalpha
dans le code.Voici un modèle avec des termes d'interception et de pente hiérarchiques; J'ai essayé de garder vos priorités et votre notation dans la mesure du possible, compte tenu des changements:
Gelman et Hill sont une ressource très utile pour les modèles hiérarchiques, y compris quelques "astuces" pour accélérer la convergence .
(Un peu tard avec la réponse, mais peut être utile à un futur intervenant.)
la source