Ich habe dies früher in der Woche gepostet und dann die Frage zurückgezogen, als ich eine gute Quelle gefunden habe, um nicht die Zeit der Leute zu verschwenden. Ich fürchte, ich habe nicht viel Fortschritte gemacht. Wenn ich versuche, hier ein guter Bürger zu sein, werde ich das Problem so klar wie möglich machen. Ich vermute, es wird nur wenige Abnehmer geben.
Ich habe einen Datenrahmen in RI, den ich in BUGS oder R analysieren möchte. Er ist im Langformat. Es besteht aus mehreren Beobachtungen an 120 Personen mit insgesamt 885 Zeilen. Ich untersuche das Auftreten eines kategorialen Ergebnisses - aber das ist hier nicht wirklich relevant. Die Frage betrifft etwas Tieferes.
Das Modell, das ich bisher hier verwendet habe, ist
mymodel<-gee(Category ~ Predictor 1 + Predictor 2..family=binomial(link="logit"),
data=mydata,
id=Person)
mit einem Randmodell, das im Wesentlichen die Häufung von Patienten berücksichtigt. Ich habe dann untersucht
mymodel<-gee(Category ~ Predictor 1 + Predictor 2.. , family=binomial(link="logit"),
corstr = "AR-M",
data=mydata, id=Person)
um die zeitliche Reihenfolge der Beobachtungen an den einzelnen Personen zu berücksichtigen.
Das hat sich nicht viel geändert.
Dann habe ich versucht, sie mit den folgenden MCMCPack-Befehlen zu modellieren:
mymodel<-MCMCglmm(category~ Predictor1 + Predictor2..,
data=mydata, family=binomial(link="logit"))
Eine Untersuchung des Outputs war spannend und zeigte statistische Signifikanz für viele Prädiktoren. Ich begrüßte mich als neu konvertierten Bayesianer, bis mir klar wurde, dass ich wiederholte Maßnahmen bei Patienten nicht berücksichtigt hatte.
Ich verstehe, dass ich das erklären muss. Ich verstehe, dass dies bedeuten kann, für jeden Einzelnen einen Hyperprior zu finden - stimmt das? Wie wird dies bei BUGS aussehen?
Hier ist ein grundlegendes Log-Reg-Modell: (ein großes Lob an 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 )
}
}
Allerdings kein Hyperprior hier für den Einzelnen. Hier ist mein bisher bester Versuch eines innerindividuellen Designs, bei dem wiederholte Maßnahmen innerhalb von Menschen berücksichtigt werden:
Hier ist Jackmans Modell für 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)
}}
Hier ist mein Bastard-Kind-Modell für 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)
}
Kann mich jemand wissen lassen, ob ich in die richtige Richtung gehe? Mein Verständnis dafür wächst, aber langsam. Bitte sei höflich. Ich bin ein Sanitäter, keine Statistik! Ich habe R ziemlich oft benutzt, aber ich bin neu bei BUGS und neu bei Bayes.
Vielen Dank,
R.
Antworten:
Sie sind (waren) fast da. Nur ein paar Kommentare - Sie müssen den Prior für die
beta[,1:2]
Parameter nicht zu einem gemeinsamen MV normal machen; Sie können die vor so machen , dassbeta[i,1]
undbeta[i,2]
sind unabhängig, die Dinge vereinfacht (zum Beispiel keine vorherige Kovarianz angegeben werden muss.) Hinweis , dass dies nicht bedeutet , sie im hinteren unabhängig sein wird.Sonstige Kommentare: Da Sie
alpha
in der Regression einen konstanten Term - - haben, sollten die Komponentenbeta[,1]
im Prior einen Mittelwert von Null haben. Außerdem haben Siealpha
im Code kein Prior für .Hier ist ein Modell mit hierarchischen Schnitt- und Steigungstermen. Ich habe versucht, mich an Ihre Prioritäten und Notationen zu halten, wenn dies möglich ist, angesichts der Änderungen:
Eine sehr nützliche Ressource für hierarchische Modelle, einschließlich einiger "Tricks" zur Beschleunigung der Konvergenz, sind Gelman und Hill .
(Etwas spät mit der Antwort, kann aber für zukünftige Fragesteller hilfreich sein.)
quelle