2016-06-23 30 views
4

JAGS

Ich habe eine intercept-only logistisches Modell in JAGS, wie folgt definiert:glmer VS JAGS: unterschiedliche Ergebnisse in Intercept-only hierarchisches Modell

model{ 
for(i in 1:Ny){ 
    y[i] ~ dbern(mu[s[i]]) 
} 
for(j in 1:Ns){ 
    mu[j] <- ilogit(b0[j]) 
    b0[j] ~ dnorm(0, sigma) 
} 

sigma ~ dunif(0, 100) 
} 

Als ich plotten die a posteriori Verteilung von b0 Zusammenfallen über alle Fächer (dh alle b0[j]), meine 95% HDI enthält 0: -0.55 to 2.13. Die effektive Stichprobengröße liegt weit über 10.000 pro b0 (etwa 18.000 im Durchschnitt). Die Diagnose sieht gut aus.

glmer()

Nun, dies ist das Äquivalent glmer() Modell:

glmer(response ~ 1 + (1|subject), data = myData, family = "binomial") 

Das Ergebnis dieses Modells ist jedoch wie folgt:

Random effects: 
Groups Name  Variance Std.Dev. 
speaker (Intercept) 0.3317 0.576 
Number of obs: 1544, groups: subject, 27 

Fixed effects: 
      Estimate Std. Error z value Pr(>|z|)  
(Intercept) 0.7401  0.1247 5.935 2.94e-09 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Also hier sagt es meine Schätzung ist signifikant über0.

Was die Daten aussehen

Hier sind die Anteile von 0s und 1s nach Thema. Sie können sehen, dass für die überwiegende Mehrheit der Probanden der Anteil von 1 über 50% ist.

Irgendwelche Ideen, warum JAGS und glmer() sind hier so anders?

 0 1 
1 0.47 0.53 
2 0.36 0.64 
3 0.29 0.71 
4 0.42 0.58 
5 0.12 0.88 
6 0.22 0.78 
7 0.54 0.46 
8 0.39 0.61 
9 0.30 0.70 
10 0.32 0.68 
11 0.36 0.64 
12 0.66 0.34 
13 0.38 0.62 
14 0.49 0.51 
15 0.35 0.65 
16 0.32 0.68 
17 0.12 0.88 
18 0.45 0.55 
19 0.36 0.64 
20 0.36 0.64 
21 0.28 0.72 
22 0.40 0.60 
23 0.41 0.59 
24 0.19 0.81 
25 0.27 0.73 
26 0.08 0.92 
27 0.12 0.88 

Antwort

5

Sie haben vergessen, um einen Mittelwert zu schließen, so dass Ihr Intercept-Parameter auf Null festgelegt ist. So etwas sollte funktionieren:

model{ 
for(i in 1:Ny){ 
    y[i] ~ dbern(mu[s[i]]) 
} 
for(j in 1:Ns){ 
    mu[j] <- ilogit(b0[j]) 
    b0[j] ~ dnorm(mu0, sigma) 
} 
mu0 ~ dnorm(0,0.001) 
sigma ~ dunif(0, 100) 
} 

Nun ist die hintere Dichte von mu0 sollte die Stichprobenverteilung der Intercept-Parameter von glmer recht gut übereinstimmen.

Alternativ können Sie, wenn Sie response ~ -1 + (1|subject) als Ihre Formel verwenden, Ergebnisse erhalten, die Ihrem aktuellen JAGS-Modell entsprechen.

+0

Danke! Aber der HDI des JAGS-Modells enthält immer noch 0. Also geben mir diese beiden Modelle unterschiedliche Entscheidungen bezüglich des möglichen Effekts (und ob dieser von 0 verschieden ist). Ist das zu erwarten, oder sind diese beiden Modelle nicht gleichwertig? –

+0

Schaust du dir die hintere Dichte von 'mu0' an? –

+0

Oh ich sehe was du meinst. Nein, war ich nicht. Ich bin jetzt, und es entspricht dem, was ich von dem Modell glm() erwarten würde. Vielen Dank - ich bin total neu in JAGS und der Übergang ist nicht so glatt. –