Saya bertemu dengan pertanyaan yang persis sama dan mencoba menyelesaikannya. Lihat jawaban terperinci saya di bawah ini.
Pertama-tama, saya menemukan 4 opsi yang menghasilkan nilai VIF serupa di R:
• corvif
perintah dari paket AED,
• vif
perintah dari paket mobil,
• vif
perintah dari paket rms,
• vif
perintah dari paket DAAG.
Menggunakan perintah-perintah ini pada seperangkat prediktor yang tidak termasuk faktor / variabel kategori atau istilah polinomial terus maju. Ketiga perintah menghasilkan output numerik yang sama meskipun corvif
perintah dari paket AED memberi label hasil sebagai GVIF.
Namun, biasanya, GVIF hanya berperan untuk faktor dan variabel polinomial. Variabel yang membutuhkan lebih dari 1 koefisien dan karenanya lebih dari 1 derajat kebebasan biasanya dievaluasi menggunakan GVIF. Untuk istilah satu koefisien, VIF sama dengan GVIF.
Dengan demikian, Anda dapat menerapkan aturan praktis standar tentang apakah collinearity mungkin menjadi masalah, seperti ambang 3, 5 atau 10. Namun, beberapa kehati-hatian bisa (harus) diterapkan (lihat: http://www.nkd-group.com/ghdash/mba555/PDF/VIF%20article.pdf ).
Dalam hal istilah multi-koefisien, seperti misalnya prediktor kategori, 4 paket menghasilkan keluaran yang berbeda. The vif
perintah dari rms dan paket DAAG menghasilkan nilai VIF, sedangkan dua nilai produk GVIF lainnya.
Mari kita lihat nilai-nilai VIF dari paket rms dan DAAG terlebih dahulu:
TNAP ICE RegB RegC RegD RegE
1.994 2.195 3.074 3.435 2.907 2.680
TNAP dan ICE adalah prediktor kontinu dan Reg adalah variabel kategorikal yang dipresentasikan oleh boneka BOB ke RegE. Dalam hal ini RegA adalah baseline. Semua nilai VIF agak moderat dan biasanya tidak perlu dikhawatirkan. Masalah dengan hasil ini adalah, bahwa hal itu dipengaruhi oleh baseline variabel kategorikal. Untuk memastikan tidak memiliki nilai VIF di atas tingkat yang dapat diterima, akan perlu untuk mengulang analisis ini untuk setiap tingkat variabel kategori menjadi baseline. Dalam hal ini lima kali.
Menerapkan corvif
perintah dari paket AED atau vif
perintah dari paket mobil, nilai-nilai GVIF dihasilkan:
| GVIF | Df | GVIF^(1/2Df) |
TNAP | 1.993964 | 1 | 1.412078 |
ICE | 2.195035 | 1 | 1.481565 |
Reg | 55.511089 | 5 | 1.494301 |
GVIF dihitung untuk set regressor terkait seperti a untuk set regressor dummy. Untuk dua variabel kontinu, TNAP dan ICE, ini sama dengan nilai VIF sebelumnya. Untuk variabel kategori Reg, kami sekarang mendapatkan satu nilai GVIF yang sangat tinggi, meskipun nilai VIF untuk level tunggal dari variabel kategori semuanya moderat (seperti yang ditunjukkan di atas).
Namun, interpretasinya berbeda. Untuk dua variabel kontinu, (yang pada dasarnya adalah akar kuadrat dari nilai VIF / GVIF karena DF = 1) adalah perubahan proporsional dari kesalahan standar dan interval kepercayaan dari koefisien mereka karena tingkat kolinearitas. Nilai dari variabel kategorikal adalah ukuran yang sama untuk pengurangan ketepatan estimasi koefisien karena kolinearitas (walaupun tidak siap untuk mengutip juga lihat http: / /socserv2.socsci.mcmaster.ca/jfox/papers/linear-models-problems.pdf ).GVIF(1/(2×Df))GVIF(1/(2×Df))
Jika kemudian kita cukup menerapkan aturan praktis standar yang sama untuk -nilai seperti yang direkomendasikan dalam literatur untuk VIF, kita hanya perlu .GVIF(1/(2×Df))GVIF(1/(2×Df))
Membaca semua posting forum, catatan pendek di web dan karya ilmiah, tampaknya ada beberapa kebingungan yang terjadi. Dalam makalah yang diulas bersama, saya menemukan nilai untuk diabaikan dan aturan standar yang sama yang disarankan untuk VIF diterapkan pada nilai GVIF. Dalam makalah lain, nilai GVIF mendekati 100 dikecualikan karena cukup kecil (karena DF tinggi). Aturan diterapkan dalam beberapa publikasi, yang akan sama dengan VIF 4 untuk variabel satu koefisien.GVIF(1/(2×Df))GVIF(1/(2×Df))GVIF2(1/(2×Df))<2