Bagaimana menangani kesalahan seperti "Koefisien: 14 tidak didefinisikan karena singularitas" dalam R?

15

Ketika melakukan GLM dan Anda mendapatkan kesalahan "tidak ditentukan karena singularitas" di output anova, bagaimana cara menangkal kesalahan ini terjadi?

Beberapa orang berpendapat bahwa ini disebabkan oleh kolinearitas antara kovariat atau salah satu level tidak ada dalam dataset (lihat: menafsirkan "tidak ditentukan karena singularitas" dalam lm )

Jika saya ingin melihat yang "pengobatan tertentu" adalah mengemudi model dan saya memiliki 4 tingkat pengobatan: Treat 1, Treat 2, Treat 3& Treat 4, yang dicatat dalam spreadsheet saya sebagai: ketika Treat 1adalah 1 sisanya adalah nol, ketika Treat 2adalah 1 sisanya adalah nol, dll., apa yang harus saya lakukan?

Platypezid
sumber
Saya melihat banyak orang memiliki masalah ini- Apakah ada yang mengerti respons terhadap permintaan orang ini? stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid

Jawaban:

27

Anda mungkin mendapatkan kesalahan itu karena dua atau lebih variabel independen Anda benar-benar collinear (mis. Salah-kode variabel dummy untuk membuat salinan identik).

Gunakan cor () pada data Anda atau alias () pada model Anda untuk pemeriksaan lebih dekat.

Peter
sumber
10
Terima kasih tidak tahu fungsi alias (). Itu sangat berguna untuk dimiliki. Cheers, O.
OFish
1

Kesalahan "tidak ditentukan karena singularitas" akan terjadi karena korelasi kuat antara variabel independen Anda. Ini dapat dihindari dengan memiliki variabel dummy n-1. Dalam kasus Anda, untuk variabel Perawatan, Anda harus menggunakan 3 variabel dummy biner (Treat1, Treat2, Treat3).

Dalam pemrograman R, fungsi regresi linier lm () akan menghasilkan "NA" sebagai co-efisien untuk variabel yang sangat berkorelasi.

Saravana Kumar
sumber
1
Bisakah Anda mengatakan bagaimana Anda melihat ini sebagai menambah jawaban yang ada? Mungkin dengan mengeditnya?
mdewey