Kesalahan "sistem adalah komputasi singular" ketika menjalankan glm

29

Saya menggunakan paket robustbase untuk menjalankan estimasi glm. Namun ketika saya melakukannya, saya mendapatkan kesalahan berikut:

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

Apa artinya ini? Dan bagaimana saya bisa men-debug-nya?

PS. Jika Anda membutuhkan sesuatu (rumus / spesifikasi atau data) untuk menjawab, saya akan dengan senang hati memberikannya.

NK1
sumber

Jawaban:

26

Ini berarti matriks desain Anda tidak dapat dibalik dan karenanya tidak dapat digunakan untuk mengembangkan model regresi. Ini hasil dari kolom dependen linier, yaitu variabel yang sangat berkorelasi. Periksa kovarians berpasangan (atau korelasi) variabel Anda untuk menyelidiki apakah ada variabel yang berpotensi dihapus. Anda sedang mencari kovarian (atau korelasi) >> 0. Atau, Anda mungkin dapat mengotomatiskan pemilihan variabel ini dengan menggunakan regresi bertahap maju.

Ini juga dapat dihasilkan dari memiliki lebih banyak variabel daripada pengamatan, dalam hal ini matriks desain Anda mungkin tidak peringkat penuh. Ini agak sulit untuk diperbaiki, tetapi ada beberapa cara. Saya percaya regresi laso seharusnya bekerja dengan baik ketika data "lebih luas" daripada "panjang".

Perlu diingat: jika Anda memutuskan untuk mencoba laso atau seleksi bertahap, Anda melakukan lebih banyak (dalam hal pemilihan variabel) daripada hanya menangani multikolinearitas.

David Marx
sumber
Terima kasih, dua pertanyaan: 1. Apakah Anda tahu ada prosedur dalam r, yang mungkin bekerja dengan baik bagi saya dalam men-debug ini? 2. Saya dapat melihat, bahwa ketika saya menjalankan model yang sama persis pada data yang sama persis dengan glm () bukannya glmrob () saya tidak mendapatkan kesalahan - apakah itu masuk akal, atau apakah itu menyiratkan kesalahan dalam glmrob () berfungsi?
NK1
2

Menghabiskan waktu yang lama pada kesalahan ini tetapi checkout halaman ini yang menyelesaikannya untuk saya

https://www.kaggle.com/c/house-prices-advanced-regress-techniques/discussion/24586

Pada dasarnya Anda hanya dapat mengubah metode yang digunakan tikus. Saya menggunakan ppn dan mengubahnya ke troli

rlhull6
sumber
2
Tolong, jadikan jawaban itu mandiri dalam teks jawaban Anda. Dengan begitu, orang lebih cenderung untuk membacanya dan cenderung menghapusnya karena terlalu pendek dan tidak sesuai topik.
Carl