Pembaruan : Karena saya sekarang tahu bahwa masalah saya disebut pemisahan semu-lengkap, saya memperbarui pertanyaan untuk mencerminkan hal ini (terima kasih kepada Aaron).
Saya memiliki dataset dari percobaan di mana 29 peserta manusia (faktor code
) bekerja pada satu set uji coba dan response
itu adalah 1 atau 0. Selain itu, kami memanipulasi bahan sehingga kami memiliki tiga faktor silang, p.validity
(valid versus tidak valid), type
(afirmasi versus penolakan), dan counterexamples
(sedikit versus banyak):
d.binom <- read.table("http://pastebin.com/raw.php?i=0yDpEri8")
str(d.binom)
## 'data.frame': 464 obs. of 5 variables:
## $ code : Factor w/ 29 levels "A04C","A14G",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ response : int 1 1 1 1 0 1 1 1 1 1 ...
## $ counterexamples: Factor w/ 2 levels "few","many": 2 2 1 1 2 2 2 2 1 1 ...
## $ type : Factor w/ 2 levels "affirmation",..: 1 2 1 2 1 2 1 2 1 2 ...
## $ p.validity : Factor w/ 2 levels "invalid","valid": 1 1 2 2 1 1 2 2 1 1 ...
Secara keseluruhan hanya ada sejumlah kecil 0s:
mean(d.binom$response)
## [1] 0.9504
Satu hipotesis adalah bahwa ada pengaruh validity
, bagaimanapun, analisis pendahuluan menunjukkan bahwa mungkin ada efek counterexamples
. Karena saya memiliki data dependen (setiap peserta mengerjakan semua percobaan), saya ingin menggunakan GLMM pada data tersebut. Sayangnya, counterexamples
kuasi-sepenuhnya memisahkan data (setidaknya untuk satu level):
with(d.binom, table(response, counterexamples))
## counterexamples
## response few many
## 0 1 22
## 1 231 210
Ini juga tercermin dalam model:
require(lme4)
options(contrasts=c('contr.sum', 'contr.poly'))
m2 <- glmer(response ~ type * p.validity * counterexamples + (1|code),
data = d.binom, family = binomial)
summary(m2)
## [output truncated]
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 9.42 831.02 0.01 0.99
## type1 -1.97 831.02 0.00 1.00
## p.validity1 1.78 831.02 0.00 1.00
## counterexamples1 7.02 831.02 0.01 0.99
## type1:p.validity1 1.97 831.02 0.00 1.00
## type1:counterexamples1 -2.16 831.02 0.00 1.00
## p.validity1:counterexamples1 2.35 831.02 0.00 1.00
## type1:p.validity1:counterexamples1 2.16 831.02 0.00 1.00
Kesalahan standar untuk parameter hanya gila. Karena tujuan akhir saya adalah untuk menilai apakah efek tertentu signifikan atau tidak, kesalahan standar tidak sepenuhnya tidak penting.
- Bagaimana saya bisa menangani pemisahan kuasi lengkap? Apa yang saya inginkan adalah mendapatkan perkiraan yang dapat saya nilai dari pengaruh tertentu atau tidak (misalnya menggunakan
PRmodcomp
dari paketpkrtest
, tetapi ini adalah langkah lain yang tidak dijelaskan di sini).
Pendekatan menggunakan paket lain juga baik-baik saja.
sumber
Jawaban:
Saya khawatir ada kesalahan ketik pada judul Anda: Anda tidak harus berusaha menyesuaikan model campuran, apalagi model campuran nonlinier, dengan hanya 30 cluster. Tidak, kecuali Anda yakin Anda dapat menyesuaikan distribusi normal hingga 30 poin terhalang oleh kesalahan pengukuran, nonlinier, dan pemisahan hampir lengkap (alias prediksi sempurna).
Apa yang akan saya lakukan di sini adalah menjalankan ini sebagai regresi logistik reguler dengan koreksi Firth :
Koreksi Firth terdiri dari menambahkan penalti ke kemungkinan, dan merupakan bentuk penyusutan. Dalam istilah Bayesian, estimasi yang dihasilkan adalah mode posterior model dengan Jeffrey sebelumnya. Dalam istilah frequentist, hukuman adalah penentu dari matriks informasi yang sesuai dengan pengamatan tunggal, dan karenanya menghilang secara asimptotik.
sumber
*lmer
??? : - \Anda dapat menggunakan pendekatan posteriori Bayesian maksimum dengan yang lemah sebelumnya pada efek tetap untuk mendapatkan efek yang kira-kira sama. Secara khusus, paket blme untuk R (yang merupakan pembungkus tipis di sekitar
lme4
paket) melakukan hal ini, jika Anda menentukan prior untuk efek tetap seperti dalam contoh di sini (cari "pemisahan lengkap"):Contoh ini dari percobaan di manaβ vektor akan memiliki panjang 4. Matriks varians-kovarians yang ditentukan sebelumnya adalah Σ=9I , yaitu parameter efek tetap memiliki independen N(μ=0,σ2=9) (atau σ , yaitu standar devation, =3 ) prior. Ini berfungsi cukup baik, meskipun tidak identik dengan koreksi Firth (karena Firth sesuai dengan Jeffrey sebelumnya , yang tidak persis sama).
ttt
efek tetap kategorikal dengan 4 level, jadiContoh yang ditautkan menunjukkan bahwa Anda juga dapat melakukannya dengan
MCMCglmm
paket tersebut, jika Anda ingin ...sumber