Bagaimana saya bisa menguji apakah efek acak itu signifikan?

34

Saya mencoba memahami kapan harus menggunakan efek acak dan kapan itu tidak perlu. Ive diberitahu aturan praktis adalah jika Anda memiliki 4 grup atau lebih yang saya lakukan (15 moose individu). Beberapa dari mereka rusa percobaan pada 2 atau 3 kali untuk total 29 percobaan. Saya ingin tahu apakah mereka berperilaku berbeda saat berada dalam lanskap berisiko lebih tinggi daripada tidak. Jadi, saya pikir saya akan mengatur individu sebagai efek acak. Namun, saya sekarang diberitahu bahwa tidak perlu untuk memasukkan individu sebagai efek acak karena tidak ada banyak variasi dalam tanggapan mereka. Apa yang saya tidak tahu adalah bagaimana menguji apakah benar-benar ada sesuatu yang dipertanggungjawabkan ketika menetapkan individu sebagai efek acak. Mungkin pertanyaan awal adalah: Tes / diagnostik apa yang dapat saya lakukan untuk mencari tahu apakah Individu adalah variabel penjelas yang baik dan haruskah itu efek tetap - plot qq? histogram? plot pencar? Dan apa yang akan saya cari dalam pola-pola itu.

Saya menjalankan model dengan individu sebagai efek acak dan tanpa, tetapi kemudian saya membaca http://glmm.wikidot.com/faq di mana mereka menyatakan:

jangan membandingkan model lmer dengan lm yang sesuai, atau glmer / glm; kemungkinan log tidak sepadan (yaitu, mereka termasuk istilah aditif yang berbeda)

Dan di sini saya berasumsi ini berarti Anda tidak dapat membandingkan antara model dengan efek acak atau tanpa. Tetapi saya tidak akan benar-benar tahu apa yang harus saya bandingkan di antara mereka.

Dalam model saya dengan efek acak, saya juga mencoba melihat output untuk melihat bukti atau signifikansi apa yang dimiliki RE

lmer(Velocity ~ D.CPC.min + FD.CPC + (1|ID), REML = FALSE, family = gaussian, data = tv)

Linear mixed model fit by maximum likelihood 
Formula: Velocity ~ D.CPC.min + FD.CPC + (1 | ID) 
   Data: tv 
    AIC    BIC logLik deviance REMLdev
 -13.92 -7.087  11.96   -23.92   15.39
Random effects:
 Groups   Name        Variance Std.Dev.
 ID       (Intercept) 0.00000  0.00000 
 Residual             0.02566  0.16019 
Number of obs: 29, groups: ID, 15

Fixed effects:
              Estimate Std. Error t value
(Intercept)  3.287e-01  5.070e-02   6.483
D.CPC.min   -1.539e-03  3.546e-04  -4.341
FD.CPC       1.153e-04  1.789e-05   6.446

Correlation of Fixed Effects:
          (Intr) D.CPC.
D.CPC.min -0.010       
FD.CPC    -0.724 -0.437

Anda melihat bahwa varians dan SD saya dari ID individu sebagai efek acak = 0. Bagaimana mungkin? Apa 0 artinya? Apakah itu benar? Lalu teman saya yang mengatakan "karena tidak ada variasi menggunakan ID karena efek acak tidak perlu" benar? Jadi, apakah saya akan menggunakannya sebagai efek tetap? Tetapi bukankah fakta bahwa ada begitu sedikit variasi berarti tidak akan banyak memberi tahu kita?

Kerry
sumber
Mengenai mendapatkan varian 0 tepat dari efek acak, lihat stats.stackexchange.com/questions/115090 .
Amuba mengatakan Reinstate Monica

Jawaban:

21

Perkiraan, IDvarians = 0, menunjukkan bahwa tingkat variabilitas antar-kelompok tidak cukup untuk menjamin memasukkan efek acak dalam model; yaitu. model Anda merosot.

Ketika Anda mengidentifikasi diri Anda dengan benar: kemungkinan besar, ya; IDsebagai efek acak tidak perlu. Beberapa hal muncul di pikiran untuk menguji asumsi ini:

  1. Anda dapat membandingkan (menggunakan REML = Fselalu) AIC (atau IC favorit Anda secara umum) antara model dengan dan tanpa efek acak dan melihat bagaimana hasilnya.
  2. Anda akan melihat anova()output dari dua model.
  3. Anda dapat melakukan bootstrap parametrik menggunakan distribusi posterior yang ditentukan oleh model asli Anda.

Pikiran Anda pilihan 1 & 2 memiliki masalah: Anda memeriksa sesuatu yang ada di batas ruang parameter sehingga sebenarnya mereka tidak secara teknis suara. Karena itu, saya tidak berpikir Anda akan mendapatkan wawasan yang salah dari mereka dan banyak orang menggunakannya (mis. Douglas Bates, salah satu pengembang lme4, menggunakannya dalam bukunya tetapi dengan jelas menyatakan peringatan ini tentang nilai parameter yang diuji pada batas himpunan nilai yang mungkin). Pilihan 3 adalah yang paling membosankan dari 3 tetapi sebenarnya memberi Anda ide terbaik tentang apa yang sedang terjadi. Beberapa orang tergoda untuk menggunakan bootstrap non-parametrik juga, tetapi saya pikir mengingat fakta bahwa Anda membuat asumsi parametrik untuk memulai, Anda mungkin juga menggunakannya.

usεr11852 kata Reinstate Monic
sumber
6
Paket RLRsim adalah cara yang sangat nyaman untuk menguji efek acak menggunakan tes rasio kemungkinan berbasis simulasi.
atrichornis
@atrichornis: +1. Paket menarik; Saya tidak tahu tentang itu. Saya baru saja melihat kodenya, cukup mudah saya katakan. Saya berharap mereka memasukkannya (atau sesuatu seperti itu) ke lme4terutama sekarang yang mcmcsamp()rusak dan orang-orang dibiarkan hanya dengan implementasi bootstrap ad-hoc mereka sendiri untuk mendapatkan beberapa nilai-p yang layak, dll.
usεr11852 mengatakan Reinstate Monic
Benar, model campuran tidak langsung dalam R. Banyak pendekatan dan solusi ... Meskipun saya mengumpulkan SAS dll hanya menutupi beberapa ketidakpastian yang sama? Ben Bolker adalah rekan penulis pada kedua paket, ia mungkin memiliki alasan untuk tidak memasukkannya. Mungkin waktu!
atrichornis
4
Bootstrap pada batas ruang parameter memiliki serangkaian masalah dan masalah yang mengarah pada ketidakkonsistenan . Bootstrap bukan obat mujarab, dan tidak boleh dilemparkan ke dalam tas dengan anggapan bahwa itu akan menyelesaikan segalanya.
Tugas
2
Lihatlah, argumennya sangat halus. Sejauh yang saya ingat, itu bermuara pada kenyataan bahwa Anda melakukan bootstrap dari distribusi yang berbeda dari nol; dan mengingat distribusi non-standar yang diperoleh pada batas, kondisi keteraturan dilanggar, dan distribusi bootstrap tidak menyatu dengan target. Saya pikir bootstrap non-parametrik masih dapat dibangun di sini dengan mengeluarkan sarana kelompok residual. Namun, dengan pelanggaran independensi pengamatan antar kelompok, lapisan komplikasi lain dapat muncul.
Tugas
3

Saya tidak yakin pendekatan yang akan saya sarankan masuk akal, jadi mereka yang tahu lebih banyak tentang topik ini mengoreksi saya jika saya salah.

Proposal saya adalah membuat kolom tambahan di data Anda yang memiliki nilai konstan 1:

IDconst <- factor(rep(1, each = length(tv$Velocity)))

Kemudian, Anda dapat membuat model yang menggunakan kolom ini sebagai efek acak Anda:

fm1 <- lmer(Velocity ~ D.CPC.min + FD.CPC + (1|IDconst), 
  REML = FALSE, family = gaussian, data = tv)

Pada titik ini, Anda dapat membandingkan (AIC) model asli Anda dengan efek acak ID(sebut saja fm0) dengan model baru yang tidak memperhitungkan IDkarena IDconstsama untuk semua data Anda.

anova(fm0,fm1)

Memperbarui

user11852 meminta contoh, karena menurutnya pendekatan di atas bahkan tidak akan dijalankan. Sebaliknya, saya dapat menunjukkan bahwa pendekatan tersebut berfungsi (setidaknya dengan lme4_0.999999-0yang saya gunakan saat ini).

set.seed(101)
dataset <- expand.grid(id = factor(seq_len(10)), fac1 = factor(c("A", "B"),
  levels = c("A", "B")), trial = seq_len(10))
dataset$value <- rnorm(nrow(dataset), sd = 0.5) +
      with(dataset, rnorm(length(levels(id)), sd = 0.5)[id] +
      ifelse(fac1 == "B", 1.0, 0)) + rnorm(1,.5)
    dataset$idconst <- factor(rep(1, each = length(dataset$value)))

library(lme4)
fm0 <- lmer(value~fac1+(1|id), data = dataset)
fm1 <- lmer(value~fac1+(1|idconst), data = dataset)

anova(fm1,fm0)

Keluaran:

  Data: dataset
  Models:
  fm1: value ~ fac1 + (1 | idconst)
  fm0: value ~ fac1 + (1 | id)

      Df    AIC    BIC  logLik  Chisq Chi Df Pr(>Chisq)
  fm1  4 370.72 383.92 -181.36                      
  fm0  4 309.79 322.98 -150.89 60.936      0  < 2.2e-16 ***

Menurut tes terakhir ini, kita harus menjaga efek acak karena fm0model memiliki AIC dan BIC terendah.

Perbarui 2

Omong-omong, pendekatan yang sama ini diusulkan oleh NW Galwey dalam 'Pengantar Model Campuran: Melampaui Regresi dan Analisis Varian' pada halaman 213-214.

VLC
sumber
Sudahkah Anda menguji ide Anda? Tolong buktikan saya salah, tapi saya pikir ide Anda tidak akan mengeksekusi. Jika IDconstsama untuk semua data Anda maka Anda tidak memiliki pengelompokan apa pun. Anda memerlukan faktor pengelompokan untuk memiliki setidaknya satu tingkat sampel dan cara Anda mengatur model itu tidak memiliki tingkat. Saya mungkin bisa mempercayai alasan menggunakan "pengelompokan acak" tetapi itu adalah permainan bola yang berbeda secara bersamaan. Uji pendekatan Anda dengan beberapa data dummy. Saya sangat percaya bahwa dengan pengaturan yang Anda usulkan lmer()tidak akan berjalan. (Saya menggunakan lme4_0.99999911-1)
usεr11852 mengatakan Reinstate Monic
@ user11852 Tolong, lihat pembaruan saya dan beri tahu kami jika pendekatan ini juga berfungsi lme4_0.99999911-1.
VLC
Z
3
Ya, saya melakukan apa yang Anda sarankan; itu tidak akan bekerja / menghitung. Error in lFormula(formula = value ~ fac1 + (1 | idconst), data = dataset) : grouping factors must have at least 1 sampled level. Dan seperti yang saya katakan, secara konsep itu salah. Ini bukan masalah menipu perangkat lunak untuk memberikan nomor keluar, itu masalah jika apa yang Anda katakan itu masuk akal. Anda tidak memiliki model campuran kedua untuk dibandingkan dengan jika dalam model itu efek acak adalah dengan membangun konstanta. Anda mungkin mengecualikannya dan mencoba model linear sebagai gantinya.
usεr11852 mengatakan Reinstate Monic
1
Perbarui konser yang mendefinisikan variabel acak grup tunggal di lme4. Hal ini dapat dilakukan jika Anda menetapkan pilihan: control=lmerControl(check.nlev.gtr.1="ignore"). Ben Bolker menyebutkannya di sini: github.com/lme4/lme4/issues/411 .
Robin Beaumont
1

Saya ingin menjawab pertanyaan yang lebih 'awal'.

Jika Anda mencurigai adanya heterogenitas apa pun di varians di antara salah satu variabel dependen karena beberapa faktor, Anda harus melanjutkan dan memplot data menggunakan sebar dan plot kotak. Beberapa pola umum untuk diperiksa, saya menempatkan daftar ini di bawah ini dari berbagai sumber di web.

Pola Heteroskedastisitas

Selain itu, plot variabel dependen Anda berdasarkan faktor / kelompok perlakuan untuk melihat apakah ada varian konstan. Jika tidak, Anda mungkin ingin menjelajahi efek acak atau regresi tertimbang. Untuk misalnya. bagan di bawah ini adalah contoh dari varian berbentuk corong pada kelompok perlakuan saya. Jadi saya memilih untuk pergi efek acak dan menguji efek pada kemiringan dan penyadapan.

Boxplot untuk memeriksa heteroskedastisitas

Dari sini, jawaban di atas memenuhi pertanyaan utama Anda. Ada juga tes yang memeriksa heteroskedastisitas, salah satunya ada di sini - https://dergipark.org.tr/download/article-file/94971 . Tetapi saya tidak yakin apakah ada tes untuk mendeteksi heteroskedastisitas tingkat kelompok.

Arun
sumber
Harap hanya menggunakan bidang "Jawaban Anda" untuk memberikan jawaban atas pertanyaan OP. CV adalah situs tanya jawab yang ketat, bukan forum diskusi. Bagian tulisan Anda yang terakhir dan dicetak tebal adalah pertanyaan baru, bukan jawaban untuk pertanyaan ini. Jika Anda memiliki pertanyaan baru, klik abu-abu ASK QUESTIONdi bagian atas & tanyakan di sana. Karena Anda baru di sini, Anda mungkin ingin mengikuti tur kami , yang memiliki informasi untuk pengguna baru.
gung - Reinstate Monica