Mengapa saya mendapatkan varians nol dari efek acak dalam model campuran saya, meskipun ada beberapa variasi dalam data?

22

Kami telah menjalankan regresi logistik efek campuran menggunakan sintaks berikut;

# fit model
fm0 <- glmer(GoalEncoding ~ 1 + Group + (1|Subject) + (1|Item), exp0,
             family = binomial(link="logit"))
# model output
summary(fm0)

Subjek dan Barang adalah efek acak. Kami mendapatkan hasil yang aneh yaitu koefisien dan standar deviasi untuk istilah subjek sama-sama nol;

Generalized linear mixed model fit by maximum likelihood (Laplace
Approximation) [glmerMod]
Family: binomial  ( logit )
Formula: GoalEncoding ~ 1 + Group + (1 | Subject) + (1 | Item)
Data: exp0

AIC      BIC      logLik deviance df.resid 
449.8    465.3   -220.9    441.8      356 

Scaled residuals: 
Min     1Q Median     3Q    Max 
-2.115 -0.785 -0.376  0.805  2.663 

Random effects:
Groups  Name        Variance Std.Dev.
Subject (Intercept) 0.000    0.000   
Item    (Intercept) 0.801    0.895   
Number of obs: 360, groups:  Subject, 30; Item, 12

Fixed effects:
                Estimate Std. Error z value Pr(>|z|)    
 (Intercept)     -0.0275     0.2843    -0.1     0.92    
 GroupGeMo.EnMo   1.2060     0.2411     5.0  5.7e-07 ***
 ---
 Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

 Correlation of Fixed Effects:
             (Intr)
 GroupGM.EnM -0.002

Ini seharusnya tidak terjadi karena jelas ada variasi di seluruh mata pelajaran. Ketika kami menjalankan analisis yang sama di stata

xtmelogit goal group_num || _all:R.subject || _all:R.item

Note: factor variables specified; option laplace assumed

Refining starting values: 

Iteration 0:   log likelihood = -260.60631  
Iteration 1:   log likelihood = -252.13724  
Iteration 2:   log likelihood = -249.87663  

Performing gradient-based optimization: 

Iteration 0:   log likelihood = -249.87663  
Iteration 1:   log likelihood = -246.38421  
Iteration 2:   log likelihood =  -245.2231  
Iteration 3:   log likelihood = -240.28537  
Iteration 4:   log likelihood = -238.67047  
Iteration 5:   log likelihood = -238.65943  
Iteration 6:   log likelihood = -238.65942  

Mixed-effects logistic regression               Number of obs      =       450
Group variable: _all                            Number of groups   =         1

                                                Obs per group: min =       450
                                                               avg =     450.0
                                                               max =       450

Integration points =   1                        Wald chi2(1)       =     22.62
Log likelihood = -238.65942                     Prob > chi2        =    0.0000

------------------------------------------------------------------------------
        goal |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
   group_num |   1.186594    .249484     4.76   0.000     .6976147    1.675574
       _cons |  -3.419815   .8008212    -4.27   0.000    -4.989396   -1.850234
------------------------------------------------------------------------------

------------------------------------------------------------------------------
  Random-effects Parameters  |   Estimate   Std. Err.     [95% Conf. Interval]
-----------------------------+------------------------------------------------
_all: Identity               |
               sd(R.subject) |   7.18e-07   .3783434             0           .
-----------------------------+------------------------------------------------
_all: Identity               |
                 sd(R.trial) |   2.462568   .6226966      1.500201    4.042286
------------------------------------------------------------------------------
LR test vs. logistic regression:     chi2(2) =   126.75   Prob > chi2 = 0.0000

Note: LR test is conservative and provided only for reference.
Note: log-likelihood calculations are based on the Laplacian approximation.

hasilnya seperti yang diharapkan dengan koefisien tidak nol / se untuk istilah Subjek.

Awalnya kami pikir ini mungkin ada hubungannya dengan pengkodean istilah Subjek, tetapi mengubah ini dari string ke integer tidak membuat perbedaan.

Jelas analisisnya tidak berfungsi dengan baik, tetapi kami tidak dapat menemukan sumber kesulitannya. (NB orang lain di forum ini telah mengalami masalah serupa, tetapi utas ini tetap tidak terjawab tautan ke pertanyaan )

Nick Riches
sumber
2
Anda mengatakan ini tidak boleh terjadi karena "jelas ada variasi di seluruh mata pelajaran" tetapi karena kita tidak tahu apa subjectatau apa pun tentang variabel-variabel ini, itu tidak begitu "jelas" bagi kita "! Juga" koefisien tidak nol untuk istilah subjek "dari analisis Stata Anda adalah 7.18e-07! Saya kira secara teknis," non-nol ", tetapi juga tidak terlalu jauh dari 0 ...!
smillig
Terima kasih banyak atas pengamatannya. Subjek adalah peserta dalam penelitian dan pasti ada variasi dalam kinerja. Skor rata-rata adalah 39% benar, dengan standar deviasi 11%. Saya berharap ini muncul lebih besar dari 0,000 dalam statistik yang dilaporkan, tetapi mungkin salah. Ya, tentu saja 7.18e-07 setara dengan 0.000, dan 0.000 belum tentu nol.
Nick Riches
1
Berapa kali setiap subjek diuji / disampel? Tanpa mengetahui aspek substantif penelitian Anda, jika Stata memberi tahu Anda bahwa variasi dalam subjek adalah 0,000000718 (dengan kesalahan standar 0,378) dan R memberi tahu Anda bahwa itu 0,000, bukankah cerita di sini bahwa sebenarnya tidak ada variasi? di tingkat subjek? Perhatikan juga bahwa Stata tidak memberikan Anda interval kepercayaan untuk variasi subjek.
smillig
Sekali lagi terima kasih atas komentarnya. Subjek diuji pada 11 kesempatan. Saya kira ini berarti bahwa setelah efek grup dan item diperhitungkan, ada sangat sedikit variasi di seluruh peserta. Kelihatannya agak "mencurigakan", tapi saya kira ada konsistensi di kedua analisis yang berbeda?
Nick Riches
Terkait: stats.stackexchange.com/questions/34969 .
Amoeba berkata Reinstate Monica

Jawaban:

28

Ini dibahas secara panjang lebar di https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html (cari "model tunggal"); itu umum, terutama ketika ada sejumlah kecil kelompok (walaupun 30 tidak terlalu kecil dalam konteks ini).

Satu perbedaan antara lme4dan banyak paket lainnya adalah bahwa banyak paket, termasuk lme4pendahulunya nlme, menangani fakta bahwa estimasi varians harus non-negatif dengan mencocokkan varians pada skala log: itu berarti bahwa estimasi varians tidak dapat tepat nol, hanya saja sangat sangat kecil. lme4, sebaliknya, menggunakan optimasi terbatas, sehingga dapat mengembalikan nilai yang benar-benar nol (lihat http://arxiv.org/abs/1406.5823 hal. 24 untuk diskusi lebih lanjut). http://rpubs.com/bbolker/6226 memberi contoh.

Secara khusus, melihat dengan cermat hasil varians antar-subjek Anda dari Stata, Anda memiliki perkiraan 7,18e-07 (relatif terhadap intersep -3,4) dengan standar deviasi Wald sebesar 0,3783434 (dasarnya tidak berguna dalam kasus ini!) Dan 95% CI terdaftar sebagai "0"; ini secara teknis "non-nol", tetapi mendekati nol karena program akan melaporkan ...

Sudah dikenal dan terbukti secara teoritis (misalnya Stram dan Lee Biometrics 1994) bahwa distribusi nol untuk komponen varians adalah campuran dari titik massa ('lonjakan') di nol dan distribusi chi-kuadrat jauh dari nol. Tidak mengherankan (tapi saya tidak tahu apakah itu terbukti / terkenal), distribusi sampling estimasi komponen varians sering memiliki lonjakan nol bahkan ketika nilai sebenarnya bukan nol - lihat misalnya http://rpubs.com/ bbolker / 4187 untuk contoh, atau contoh terakhir di ?bootMerhalaman:

library(lme4)
library(boot)
## Check stored values from a longer (1000-replicate) run:
load(system.file("testdata","boo01L.RData",package="lme4"))
plot(boo01L,index=3) 

masukkan deskripsi gambar di sini

Ben Bolker
sumber
2
+1. Jawaban lain yang bagus ada di thread sister: stats.stackexchange.com/a/34979 (saya meninggalkan tautan ini untuk pembaca di masa mendatang).
Amoeba berkata Reinstate Monica
14

Saya tidak berpikir ada masalah. Pelajaran dari output model adalah bahwa meskipun ada variasi "jelas" dalam kinerja subjek, sejauh mana variasi subjek ini dapat sepenuhnya atau hampir-sepenuhnya dijelaskan hanya dengan istilah varians residual saja. Tidak ada variasi level subjek tambahan yang cukup untuk menjamin penambahan efek acak level subjek tambahan untuk menjelaskan semua variasi yang diamati.

Pikirkan seperti ini. Bayangkan kita mensimulasikan data eksperimental di bawah paradigma yang sama ini. Kami mengatur parameter sehingga ada variasi residual berdasarkan percobaan-per-percobaan, tetapi 0 variasi tingkat subjek (yaitu, semua subjek memiliki "mean rata-rata" yang sama, ditambah kesalahan). Sekarang setiap kali kita mensimulasikan data dari set parameter ini, kita tentu saja akan menemukan bahwa subjek tidak memiliki kinerja yang sama persis. Beberapa berakhir dengan skor rendah, beberapa dengan skor tinggi. Tetapi ini semua hanya karena variasi level percobaan yang tersisa. Kami "tahu" (berdasarkan telah menentukan parameter simulasi) bahwa sebenarnya tidak ada variasi tingkat subjek.

Jake Westfall
sumber