Misalkan saya memiliki peserta, yang masing-masing memberikan respons 20 kali, 10 dalam satu kondisi dan 10 di lain. Saya cocok dengan model efek campuran linear yang membandingkan di setiap kondisi. Berikut adalah contoh yang dapat direplikasi mensimulasikan situasi ini menggunakan paket di :lme4
R
library(lme4)
fml <- "~ condition + (condition | participant_id)"
d <- expand.grid(participant_id=1:40, trial_num=1:10)
d <- rbind(cbind(d, condition="control"), cbind(d, condition="experimental"))
set.seed(23432)
d <- cbind(d, simulate(formula(fml),
newparams=list(beta=c(0, .5),
theta=c(.5, 0, 0),
sigma=1),
family=gaussian,
newdata=d))
m <- lmer(paste("sim_1 ", fml), data=d)
summary(m)
Model ini m
menghasilkan dua efek tetap (intersep dan lereng untuk kondisi), dan tiga efek acak (intersep acak partisipan, lereng acak partisipan untuk kondisi, dan korelasi intersep-slope).
Saya ingin membandingkan secara statistik ukuran varians mencegat acak oleh-peserta di seluruh kelompok yang ditentukan oleh condition
(yaitu, menghitung komponen varians yang disorot dengan warna merah secara terpisah dalam kondisi kontrol dan eksperimental, kemudian menguji apakah perbedaan dalam ukuran komponen tidak nol). Bagaimana saya melakukan ini (lebih disukai dalam R)?
BONUS
Katakanlah modelnya sedikit lebih rumit: Para peserta masing-masing mengalami 10 rangsangan masing-masing 20 kali, 10 dalam satu kondisi dan 10 di lain. Dengan demikian, ada dua set efek acak silang: efek acak untuk peserta dan efek acak untuk stimulus. Berikut ini contoh yang dapat direproduksi:
library(lme4)
fml <- "~ condition + (condition | participant_id) + (condition | stimulus_id)"
d <- expand.grid(participant_id=1:40, stimulus_id=1:10, trial_num=1:10)
d <- rbind(cbind(d, condition="control"), cbind(d, condition="experimental"))
set.seed(23432)
d <- cbind(d, simulate(formula(fml),
newparams=list(beta=c(0, .5),
theta=c(.5, 0, 0, .5, 0, 0),
sigma=1),
family=gaussian,
newdata=d))
m <- lmer(paste("sim_1 ", fml), data=d)
summary(m)
Saya ingin membandingkan secara statistik besarnya varian intersep oleh peserta secara acak di seluruh kelompok yang ditentukan oleh condition
. Bagaimana saya melakukan itu, dan apakah prosesnya berbeda dari yang ada dalam situasi yang dijelaskan di atas?
EDIT
Untuk sedikit lebih spesifik tentang apa yang saya cari, saya ingin tahu:
- Apakah pertanyaannya, "apakah respons rata-rata bersyarat dalam setiap kondisi (yaitu, nilai intersepsi acak di setiap kondisi) secara substansial berbeda satu sama lain, di luar yang kami harapkan karena kesalahan pengambilan sampel" adalah pertanyaan yang terdefinisi dengan baik (yaitu, apakah pertanyaan ini bahkan secara teoritis jawab)? Jika tidak, mengapa tidak?
- Jika jawaban atas pertanyaan (1) adalah ya, bagaimana saya akan menjawabnya? Saya lebih suka
R
implementasi, tetapi saya tidak terikat denganlme4
paket - misalnya, sepertinyaOpenMx
paket tersebut memiliki kemampuan untuk mengakomodasi analisis multi-grup dan multi-level ( https: //openmx.ssri.psu. edu / openmx-features ), dan ini sepertinya jenis pertanyaan yang harus dijawab dalam kerangka SEM.
sumber
Jawaban:
Ada lebih dari satu cara untuk menguji hipotesis ini. Misalnya, prosedur yang diuraikan oleh @amoeba harus berfungsi. Tapi menurut saya cara paling sederhana dan paling bijaksana untuk mengujinya adalah menggunakan uji rasio kemungkinan lama yang baik membandingkan dua model bersarang. Satu-satunya bagian yang berpotensi sulit dari pendekatan ini adalah mengetahui cara mengatur pasangan model sehingga menjatuhkan satu parameter akan dengan bersih menguji hipotesis yang diinginkan dari varian yang tidak sama. Di bawah ini saya jelaskan bagaimana melakukannya.
Jawaban singkat
Beralih ke pengkodean kontras (jumlah ke nol) untuk variabel independen Anda dan kemudian lakukan uji rasio kemungkinan membandingkan model lengkap Anda dengan model yang memaksa korelasi antara lereng acak dan penyadapan acak menjadi 0:
Penjelasan / intuisi visual
Agar jawaban ini masuk akal, Anda perlu memiliki pemahaman intuitif tentang apa perbedaan nilai parameter korelasi untuk data yang diamati. Pertimbangkan garis regresi subjek-spesifik (berbeda-beda). Pada dasarnya, parameter korelasi mengontrol apakah garis regresi peserta "menyebar ke kanan" (korelasi positif) atau "menyebar ke kiri" (korelasi negatif) relatif terhadap titik , di mana X adalah kode kontras Anda yang independen variabel. Salah satu dari ini menyiratkan varians yang tidak sama dalam tanggapan rata-rata bersyarat peserta. Ini diilustrasikan di bawah ini:X=0
Dalam plot ini, kami mengabaikan beberapa pengamatan yang kami miliki untuk setiap subjek dalam setiap kondisi dan alih-alih hanya plot dua rata-rata subjek masing-masing, dengan garis yang menghubungkan mereka, mewakili kemiringan acak subjek itu. (Ini terdiri dari data dari 10 subjek hipotetis, bukan data yang diposting di OP.)
Di kolom di sebelah kiri, di mana ada korelasi kemiringan-intersepsi negatif yang kuat, garis regresi menyebar ke kiri relatif ke titik . Seperti yang dapat Anda lihat dengan jelas pada gambar, ini mengarah ke variasi yang lebih besar dalam rata-rata acak subjek dalam kondisi daripada dalam kondisi .X=0 X=−1 X=1
Kolom di sebelah kanan menunjukkan gambar cermin terbalik dari pola ini. Dalam hal ini ada perbedaan yang lebih besar dalam mean acak subjek dalam kondisi daripada dalam kondisi .X=1 X=−1
Kolom di tengah menunjukkan apa yang terjadi ketika lereng acak dan intersep acak tidak berkorelasi. Ini berarti bahwa garis regresi melebar ke kiri persis sebanyak yang melebar ke kanan, relatif ke titik . Ini menyiratkan bahwa varians rata-rata subjek dalam kedua kondisi adalah sama.X=0
Sangat penting di sini bahwa kami telah menggunakan skema pengkodean kontras jumlah-ke-nol, bukan kode dummy (yaitu, tidak menetapkan grup padaX=0 vs X=1 ). Hal ini hanya di bawah kontras skema pengkodean bahwa kita memiliki hubungan ini dimana varians adalah sama jika dan hanya jika lereng-intercept korelasi adalah 0. Gambar di bawah mencoba untuk membangun intuisi:
Apa yang ditunjukkan gambar ini adalah dataset yang sama persis di kedua kolom, tetapi dengan variabel independen yang dikodekan dua cara berbeda. Di kolom di sebelah kiri kami menggunakan kode kontras - ini persis situasi dari gambar pertama. Di kolom di sebelah kanan kami menggunakan kode dummy. Ini mengubah arti intersep - sekarang intersep mewakili respons prediksi subjek dalam kelompok kontrol. Panel bawah menunjukkan konsekuensi dari perubahan ini, yaitu, bahwa korelasi slope-intercept tidak lagi mendekati 0, meskipun datanya sama dalam arti yang dalam dan varians kondisional sama dalam kedua kasus. Jika ini masih tidak masuk akal, mempelajari jawaban saya sebelumnya di mana saya berbicara lebih banyak tentang fenomena ini dapat membantu.
Bukti
Biarkanyijk menjadi respons j dari subjek ke- i dalam kondisi k . (Kami hanya memiliki dua kondisi di sini, jadi k hanya 1 atau 2.) Kemudian model campuran dapat ditulis
yijk=αi+βixk+eijk,
mana αi adalah subjeknya ' penyadapan acak dan memiliki varian σ2α , βi adalah kemiringan acak subjek dan memiliki varian σ2β , eijk adalah istilah kesalahan tingkat observasi, dan cov(αi,βi)=σαβ .
Kami ingin menunjukkan bahwavar(αi+βix1)=var(αi+βix2)⇔σαβ=0.
Dimulai dengan sisi kiri dari implikasi ini, kita memilikivar(αi+βix1)σ2α+x21σ2β+2x1σαβσ2β(x21−x22)+2σαβ(x1−x2)=var(αi+βix2)=σ2α+x22σ2β+2x2σαβ=0.
Kode kontras jumlah-ke-nol menyiratkan bahwax1+x2=0 dan x21=x22=x2 . Kemudian kita dapat mengurangi baris terakhir di atas menjadi
σ2β(x2−x2)+2σαβ(x1+x1)σαβ=0=0,
yang ingin kami buktikan. (Untuk menetapkan arah lain dari implikasi, kita bisa mengikuti langkah-langkah yang sama ini secara terbalik.)
Untuk mengulangi, ini menunjukkan bahwa jika variabel independen adalah kode kontras (jumlah ke nol) , maka varian rata-rata acak subjek dalam setiap kondisi adalah sama jika dan hanya jika korelasi antara lereng acak dan penyadapan acak adalah 0. Kuncinya titik ambil dari semua ini adalah bahwa menguji hipotesis nol bahwaσαβ=0 akan menguji hipotesis nol dari varian yang sama yang dijelaskan oleh OP.
Ini TIDAK berfungsi jika variabel independen, katakanlah, kode dummy. Secara khusus, jika kita memasukkan nilaix1=0 dan x2=1 ke dalam persamaan di atas, kita menemukan bahwa
var(αi)=var(αi+βi)⇔σαβ=−σ2β2.
sumber
(1 | subject)
dummy
Anda dapat menguji signifikansi, parameter model, dengan bantuan perkiraan interval kepercayaan untuk fungsi paket lme4
confint.merMod
.bootstrap (lihat Interval Keyakinan misalnya dari bootstrap )
profil kemungkinan (lihat misalnya Apa hubungan antara kemungkinan profil dan interval kepercayaan? )
Ada juga metode
'Wald'
tetapi ini diterapkan untuk efek tetap saja.Ada juga beberapa jenis jenis anova (rasio kemungkinan) dalam paket
lmerTest
yang dinamairanova
. Tapi sepertinya aku tidak masuk akal dari ini. Distribusi perbedaan dalam logLikelihood, ketika hipotesis nol (nol varians untuk efek acak) benar tidak didistribusikan secara chi-square (mungkin ketika jumlah peserta dan uji coba tinggi, uji rasio kemungkinan kemungkinan masuk akal).Varians dalam kelompok tertentu
Untuk mendapatkan hasil varians dalam grup tertentu, Anda dapat melakukan reparameterisasi
Di mana kami menambahkan dua kolom ke kerangka data (ini hanya diperlukan jika Anda ingin mengevaluasi 'kontrol' yang tidak berkorelasi dan 'eksperimental', fungsinya
(0 + condition || participant_id)
tidak akan mengarah pada evaluasi berbagai faktor dalam kondisi sebagai tidak berkorelasi)Sekarang
lmer
akan memberikan perbedaan untuk kelompok yang berbedaDan Anda dapat menerapkan metode profil untuk ini. Misalnya sekarang confint memberikan interval kepercayaan untuk kontrol dan varian ekserimental.
Kesederhanaan
Anda dapat menggunakan fungsi kemungkinan untuk mendapatkan perbandingan yang lebih maju, tetapi ada banyak cara untuk membuat perkiraan di sepanjang jalan (mis. Anda bisa melakukan tes anova / lrt konservatif, tetapi apakah itu yang Anda inginkan?).
Pada titik ini membuat saya bertanya-tanya apa sebenarnya poin dari perbandingan (tidak begitu umum) antar varian. Saya bertanya-tanya apakah itu mulai menjadi terlalu canggih. Mengapa perbedaan antara varian bukan rasio antara varian (yang terkait dengan distribusi-F klasik)? Mengapa tidak melaporkan interval kepercayaan saja? Kita perlu mengambil langkah mundur, dan mengklarifikasi data dan cerita yang seharusnya diceritakan, sebelum masuk ke jalur lanjutan yang mungkin berlebihan dan tidak berhubungan dengan masalah statistik dan pertimbangan statistik yang sebenarnya menjadi topik utama.
Saya bertanya-tanya apakah seseorang harus melakukan lebih dari sekadar menyatakan interval kepercayaan (yang sebenarnya bisa mengatakan lebih dari tes hipotesis. Tes hipotesis memberikan jawaban ya tidak tetapi tidak ada informasi tentang sebaran populasi yang sebenarnya. Berikan data yang cukup yang Anda bisa membuat sedikit perbedaan untuk dilaporkan sebagai perbedaan signifikan). Untuk masuk lebih dalam ke masalah ini (untuk tujuan apa pun), saya percaya, membutuhkan pertanyaan penelitian yang lebih spesifik (didefinisikan secara sempit) untuk memandu mesin matematika untuk membuat penyederhanaan yang tepat (bahkan ketika perhitungan yang tepat mungkin dilakukan atau ketika itu bisa diperkirakan dengan simulasi / bootstrap, itupun dalam beberapa pengaturan masih memerlukan beberapa interpretasi yang sesuai). Bandingkan dengan tes eksak Fisher untuk menyelesaikan pertanyaan (khusus) (tentang tabel kontingensi),
Contoh sederhana
Untuk memberikan contoh kesederhanaan yang mungkin saya tunjukkan di bawah ini perbandingan (dengan simulasi) dengan penilaian sederhana dari perbedaan antara dua varian kelompok berdasarkan pada uji-F yang dilakukan dengan membandingkan perbedaan dalam tanggapan rata-rata individu dan dilakukan dengan membandingkan varians yang diturunkan dari model campuran.
Anda dapat melihat ini dalam simulasi grafik di bawah ini selain untuk skor-F berdasarkan sampel berarti skor-F dihitung berdasarkan variasi yang diprediksi (atau jumlah kesalahan kuadrat) dari model.
Anda dapat melihat bahwa ada beberapa perbedaan. Perbedaan ini mungkin karena fakta bahwa model linear efek campuran mendapatkan jumlah kesalahan kuadrat (untuk efek acak) dengan cara yang berbeda. Dan istilah kesalahan kuadrat ini tidak (lagi) dinyatakan dengan baik sebagai distribusi Chi-kuadrat sederhana, tetapi masih terkait erat dan mereka dapat diperkirakan.
Jadi model berdasarkan pada sarana sangat tepat. Tapi itu kurang kuat. Ini menunjukkan bahwa strategi yang tepat tergantung pada apa yang Anda inginkan / butuhkan.
Dalam contoh di atas ketika Anda menetapkan batas ekor kanan pada 2.1 dan 3.1, Anda mendapatkan sekitar 1% dari populasi dalam kasus varians yang sama (resp 103 dan 104 dari 10.000 kasus) tetapi dalam kasus varians yang tidak setara, batas-batas ini berbeda. banyak (memberikan 5334 dan 6716 kasus)
kode:
sumber
sim_1 ~ condition + (0 + condition | participant_id)"
di mana Anda mendapatkan parameterisasi menjadi dua parameter (satu untuk setiap kelompok) daripada dua parameter satu untuk mencegat dan satu untuk efek (yang perlu digabungkan untuk grup).car::linearHypothesisTest
( math.furman.edu/~dcs/courses/math47/R/library/car/html/… ), yang memungkinkan pengguna untuk menguji hipotesis sewenang-wenang dengan model yang sesuai. Namun, saya harus menggunakan metode @ amoeba untuk mendapatkan kedua intersep acak dalam model model yang sama sehingga mereka dapat dibandingkan dengan fungsi ini. Saya juga sedikit tidak yakin dengan validitas metode ini.Salah satu cara yang relatif mudah adalah dengan menggunakan tes rasio kemungkinan melalui
anova
seperti yang dijelaskan dalamlme4
FAQ .Kita mulai dengan model penuh di mana varians tidak dibatasi (yaitu, dua varians yang berbeda diperbolehkan) dan kemudian cocok dengan satu model dibatasi di mana kedua varians diasumsikan sama. Kami hanya membandingkannya dengan
anova()
(perhatikan bahwa saya mengaturREML = FALSE
meskipunREML = TRUE
dengananova(..., refit = FALSE)
sepenuhnya layak ).Namun, tes ini cenderung konservatif . Misalnya, FAQ mengatakan:
Ada beberapa alternatif:
Simulasikan distribusi yang benar menggunakan
RLRsim
(seperti juga dijelaskan dalam FAQ).Saya akan menunjukkan opsi kedua sebagai berikut:
Seperti yang bisa kita lihat, hasilnya menunjukkan bahwa dengan
REML = TRUE
kita akan mendapatkan hasil yang tepat. Tapi ini dibiarkan sebagai latihan untuk pembaca.Mengenai bonus, saya tidak yakin apakah
RLRsim
memungkinkan pengujian simultan beberapa komponen, tetapi jika demikian, ini dapat dilakukan dengan cara yang sama.Tanggapan terhadap komentar:
Saya tidak yakin pertanyaan ini dapat menerima jawaban yang masuk akal.
Jadi apakah random-slope memengaruhi intercept acak? Dalam beberapa hal ini mungkin masuk akal, karena mereka memungkinkan setiap tingkat faktor pengelompokan efek yang sama sekali istimewa untuk setiap kondisi. Pada akhirnya, kami memperkirakan dua parameter istimewa untuk dua kondisi. Namun, saya pikir perbedaan antara tingkat keseluruhan yang ditangkap oleh intersep dan efek khusus kondisi yang ditangkap oleh lereng acak adalah penting dan kemudian lereng acak tidak dapat benar-benar memengaruhi intersep acak. Namun, masih memungkinkan setiap tingkat faktor pengelompokan menjadi istimewa secara terpisah untuk setiap tingkat kondisi.
Namun demikian, pengujian saya masih melakukan apa yang diinginkan pertanyaan aslinya. Ini menguji apakah perbedaan varian antara kedua kondisi adalah nol. Jika nol, maka varians di kedua kondisi sama. Dengan kata lain, hanya jika tidak perlu untuk kemiringan acak adalah varians dalam kedua kondisi identik. Saya harap itu masuk akal.
sumber
contr.treatment
) yang mana kondisi kontrol adalah referensi (yaitu, yang dihitung intersep acak). Parametrization yang saya usulkan, saya menggunakan jumlah kontras (yaitu,contr.sum
) dan intersep adalah mean besar. Saya merasa lebih masuk akal untuk menguji apakah perbedaannya nol ketika intersepnya adalah rata-rata utama alih-alih kondisi kontrol (tetapi penulisan yang dilakukan menunjukkan bahwa itu mungkin relatif tidak penting). Anda mungkin ingin membaca halaman 24 hingga 26 dari: singmann.org/download/publications/…condition
: ini memungkinkan intersepsi acak bervariasi di berbagai tingkatcondition
. Apakah ini benar?m_full
vsm_full2b
. Yaitu: varian tanggapan rata-rata kondisional peserta dalam A vs B tidak sama jika jika korelasi intersep-slope acak adalah nol --- yang penting, di bawah parameterisasi pengkodean kontras jumlah ke nol . Pengujian varians kemiringan acak tidak diperlukan. Mencoba memikirkan bagaimana menjelaskan ini dengan ringkas ...Model Anda
sudah memungkinkan varians lintas subjek dalam kondisi kontrol berbeda dari varians lintas subjek dalam kondisi eksperimental. Ini dapat dibuat lebih eksplisit dengan parametriisasi ulang yang setara:
Matriks kovarian acak sekarang memiliki interpretasi yang lebih sederhana:
Di sini kedua varians tersebut adalah tepat dua varians yang Anda minati: varians [lintas subjek] dari respons rata-rata bersyarat dalam kondisi kontrol dan sama dalam kondisi eksperimental. Dalam dataset disimulasikan Anda, mereka adalah 0,25 dan 0,21. Perbedaannya diberikan oleh
dan sama dengan 0,039. Anda ingin menguji apakah secara signifikan berbeda dari nol.
EDIT: Saya menyadari bahwa tes permutasi yang saya jelaskan di bawah ini salah; itu tidak akan berfungsi sebagaimana dimaksud jika sarana dalam kondisi kontrol / eksperimen tidak sama (karena pengamatan tidak dapat ditukar dengan nol). Mungkin ide yang lebih baik untuk mem-bootstrap subyek (atau subjek / item dalam kasing Bonus) dan mendapatkan interval kepercayaan untuk
delta
.Saya akan mencoba memperbaiki kode di bawah ini untuk melakukannya.
Saran berbasis permutasi asli (salah)
Saya sering menemukan bahwa seseorang dapat menyelamatkan diri dari banyak masalah dengan melakukan tes permutasi. Memang, dalam hal ini sangat mudah diatur. Mari ubah kontrol / kondisi eksperimental untuk setiap subjek secara terpisah; maka perbedaan dalam varian harus dihilangkan. Mengulangi ini berkali-kali akan menghasilkan distribusi nol untuk perbedaan.
(Saya tidak memprogram dalam R; semua orang jangan ragu untuk menulis ulang yang berikut dengan gaya R. yang lebih baik.)
Menjalankan ini menghasilkan nilai-pp = 0,7 . Seseorang dapat meningkat
nrep
menjadi 1000 atau lebih.Logika yang persis sama dapat diterapkan dalam kasus Bonus Anda.
sumber
sim_1 ~ 0 + condition + (0 + dummy(condition, "control") + dummy(condition, "experimental") | participant_id)
formulasi dan mendapatkan hasil yang sama seperti pada jawaban saya.Melihat masalah ini dari perspektif yang sedikit berbeda dan mulai dari bentuk "umum" dari model campuran linier, kita milikiyi j k= μ + αj+dij+eijk,di∼N(0,Σ),eijk∼N(0,σ2)
where αj is the fixed effect of the j 'th condition and di=(di1,…,diJ)⊤ is a random vector (some call it vector-valued random effect, I think) for the i 'th participant in the j 'th condition.yi1k and yi2k which I'll denote as A and B in what follows. So the covariance matrix of the two-dimensional random vector di is of the general form
In your example we have two conditions
with non-negativeσ2A and σ2B .
Let's first see how the re-parameterized version ofΣ looks when we use sum contrasts.
The variance of the intercept, which corresponds to the grand mean, is
The variance of the contrast is
And the covariance between the intercept and the contrast is
Thus, the re-parameterizedΣ is
Setting the covariance parameterσ12 to zero we get
which, as @Jake Westfall derived slightly differently, tests the hypothesis of equal variances when we compare a model without this covariance parameter to a model where the covariance parameter is still included/not set to zero.
Notably, introducing another crossed random grouping factor (such as stimuli) does not change the model comparison that has to be done, i.e.,
anova(mod1, mod2)
(optionally with the argumentrefit = FALSE
when you use REML estimation) wheremod1
andmod2
are defined as @Jake Westfall did.Taking outσ12 and the variance component for the contrast σ22 (what @Henrik suggests) results in
which tests the hypothesis that the variances in the two conditions are equal and that they are equal to the (positive) covariance between the two conditions.
When we have two conditions, a model that fits a covariance matrix with two parameters in a (positive) compound symmetric structure can also be written as
or (using the categorical variable/factor
condition
)with
whereσ21 and σ22 are the variance parameters for the participant and the participant-condition-combination intercepts, respectively. Note that this Σ has a non-negative covariance parameter.
Below we see that
mod1
,mod3
, andmod4
yield equivalent fits:With treatment contrasts (the default in R) the re-parameterizedΣ is
whereσ21 is the variance parameter for the intercept (condition A ), σ22 the variance parameter for the contrast (A−B ), and σ12 the corresponding covariance parameter.
We can see that neither settingσ12 to zero nor setting σ22 to zero tests (only) the hypothesis of equal variances.
However, as shown above, we can still useΣ for this model.
mod4
to test the hypothesis as changing the contrasts has no impact on the parameterization ofsumber