Saat ini saya menjalankan beberapa model linear efek campuran.
Saya menggunakan paket "lme4" di R.
Model saya mengambil bentuk:
model <- lmer(response ~ predictor1 + predictor2 + (1 | random effect))
Sebelum menjalankan model saya, saya memeriksa kemungkinan multikolinieritas antara prediktor.
Saya melakukan ini dengan:
Buat kerangka data prediksi
dummy_df <- data.frame(predictor1, predictor2)
Gunakan fungsi "cor" untuk menghitung korelasi Pearson antara prediktor.
correl_dummy_df <- round(cor(dummy_df, use = "pair"), 2)
Jika "korelasi_dummy_df" lebih besar dari 0,80, maka saya memutuskan bahwa prediktor1 dan prediktor2 terlalu berkorelasi tinggi dan tidak dimasukkan dalam model saya.
Dalam melakukan beberapa bacaan, akan muncul cara yang lebih objektif untuk memeriksa multikolinieritas.
Adakah yang punya saran tentang ini?
"Variance Inflation Factor (VIF)" tampaknya seperti satu metode yang valid.
VIF dapat dihitung menggunakan fungsi "corvif" dalam paket AED (non-cran). Paket ini dapat ditemukan di http://www.highstat.com/book2.htm . Paket mendukung buku berikut:
Zuur, AF, Ieno, EN, Walker, N., Saveliev, AA & Smith, GM 2009. Model efek campuran dan ekstensi dalam ekologi dengan R, edisi pertama. Springer, New York.
Sepertinya aturan umum adalah bahwa jika VIF> 5, maka multikolinieritas tinggi antara prediktor.
Apakah menggunakan VIF lebih kuat daripada korelasi Pearson sederhana?
Memperbarui
Saya menemukan blog yang menarik di:
http://hlplab.wordpress.com/2011/02/24/diagnosing-collinearity-in-lme4/
Blogger menyediakan beberapa kode yang berguna untuk menghitung VIF untuk model dari paket lme4.
Saya telah menguji kodenya dan hasilnya bagus. Dalam analisis saya selanjutnya, saya telah menemukan bahwa multikolinieritas bukan masalah bagi model saya (semua nilai VIF <3). Ini menarik, mengingat bahwa saya sebelumnya telah menemukan korelasi Pearson yang tinggi antara beberapa prediktor.
AED
Paket telah dihentikan ; sebagai gantinya, hanyasource("http://www.highstat.com/Book2/HighstatLibV6.R")
untukcorvif
fungsi. (2) Harapan untuk memberikan jawaban yang nyata, tetapi (a) Saya percaya VIF memperhitungkan multikolinieritas (misalnya Anda mungkin memiliki tiga prediktor, tidak ada yang memiliki korelasi berpasangan yang kuat, tetapi kombinasi linear A dan B berkorelasi kuat dengan C ) dan (b) Saya memiliki keraguan kuat tentang kebijaksanaan menjatuhkan istilah-istilah collinear; lihat Graham Ecology 2003, doi: 10.1890 / 02-3114http://highstat.com/Books/BGS/GAMM/RCodeP2/HighstatLibV6.R
Jawaban:
Untuk perhitungan VIF, usdm juga bisa berupa paket (saya harus menginstal "usdm")
Jika VIF> 4.0 maka saya biasanya menganggap multikolinieritas menghapus semua Variabel Prediktor sebelum memasangnya ke dalam model saya
sumber
.4
sebagaivifcor(vardata,th=0.4)
. Demikian juga, Anda dapat menggunakanvifstep(vardata,th=10)
untuk membuang semuanya yang lebih besar dari 10.Pembaruan, karena saya menemukan pertanyaan ini bermanfaat tetapi tidak dapat menambahkan komentar -
Kode dari Zuur et al. (2009) juga tersedia melalui bahan pelengkap untuk publikasi mereka selanjutnya (dan sangat berguna) dalam jurnal Methods in Ecology and Evolution .
Makalah - Protokol untuk eksplorasi data untuk menghindari masalah statistik umum - memberikan saran yang bermanfaat dan referensi yang sangat dibutuhkan untuk membenarkan ambang VIF (mereka merekomendasikan ambang 3). Makalahnya ada di sini: http://onlinelibrary.wiley.com/doi/10.1111/j.2041-210X.2009.00001.x/full dan kode R ada di tab bahan pelengkap (unduhan .zip).
Panduan cepat : untuk mengekstrak varians inflation factor (VIF), jalankan kode HighStatLib.r mereka dan gunakan fungsinya
corvif
. Fungsi ini membutuhkan bingkai data hanya dengan prediktor (jadi, misalnya,df = data.frame(Dataset[,2:4])
jika data Anda disimpan di Dataset dengan prediktor di kolom 2 hingga 4.sumber
Mungkin
qr()
fungsi akan bekerja. JikaX
frame atau matriks data Anda, Anda dapat menggunakanqr(X)$pivot
. Misalnya,,qr(X)$pivot= c(1, 2, 4, 5, 7, 8, 3, 6)
maka kolom 3 dan 6 adalah variabel multikolinier.sumber
Untuk menilai multikolinieritas antara prediktor ketika menjalankan fungsi kapal keruk (paket MuMIn), sertakan fungsi maks.r berikut sebagai argumen "ekstra":
kemudian jalankan keruk yang menentukan jumlah variabel prediktor dan termasuk fungsi max.r:
Ini berfungsi untuk model lme4. Untuk model nlme, lihat: https://github.com/rojaff/dredge_mc
sumber
VIF (variance inflation factor) dapat diukur hanya dengan:
sumber