Bir glm çalışırken "sistem hesaplama açısından tekil" hatası


29

Bir glm tahmini yürütmek için robustbase paketini kullanıyorum . Ancak bunu yaptığımda aşağıdaki hatayı alıyorum:

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

Bu ne anlama / anlama geliyor? Ve nasıl hata ayıklayabilirim?

PS. Cevaplamak için herhangi bir şeye (formül / şartname ya da veri) ihtiyacınız olursa, memnuniyetle sağlarım.

Yanıtlar:


26

Bu, tasarım matrisinizin ters çevrilemediği ve dolayısıyla bir regresyon modeli geliştirmek için kullanılamadığı anlamına gelir. Bu, doğrusal bağımlı sütunlardan, yani kuvvetle korelasyonlu değişkenlerden kaynaklanır. Potansiyel olarak çıkarılabilecek herhangi bir değişken olup olmadığını araştırmak için değişkenlerinizin ikili kovaryansını (veya korelasyonunu) inceleyin. Kovaryansları (veya korelasyonları) >> 0. arıyorsunuz. Alternatif olarak, ileriye doğru kademeli bir regresyon kullanarak muhtemelen bu değişken seçimini otomatikleştirebilirsiniz.

Bu aynı zamanda gözlemlerden daha fazla değişkene sahip olmasından kaynaklanabilir, bu durumda tasarım matrisiniz muhtemelen tam sırada değildir. Bu düzeltilmesi biraz zor, ama yollar var. Kement regresyonunun, veriler "uzun" olduğundan "daha geniş" olduğunda işe yaraması gerektiğine inanıyorum.

Aklınızda bulundurun: Kement veya kademeli seçimi denemeye karar verirseniz, sadece çoklu doğrusallığı kullanmaktan çok daha fazlasını yapıyorsunuz (değişken seçimi açısından).


Teşekkürler, iki soru: 1. Bu hata ayıklamada benim için işe yarayabilecek herhangi bir prosedür biliyor musunuz? 2. Görüyorum ki, aynı modeli aynı glmrob () yerine glm () ile aynı verilerde çalıştırdığımda hiçbir hata alamıyorum - bu mantıklı mı, yoksa glmrobda bir hata mı ima ediyor () işlevi?
NK1

2

Bu hataya çok zaman harcadım, ancak benim için çözülen bu sayfayı satın al

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

Temel olarak sadece farelerin kullandığı yöntemi değiştirebilirsiniz. Ppn kullanıyordum ve alışveriş sepetine değiştirdim


2
Cevabınızı cevabınızın metni içerisinde kendi kendine yapmayı deneyin, lütfen. Bu şekilde, insanların okuması daha muhtemeldir ve konuyu değil, çok kısa olduğu için silme olasılığı daha düşüktür.
Carl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.