R'deki “Katsayılar: 14 tekillikler nedeniyle tanımlanmadı” gibi bir hatayla nasıl başa çıkılır?


17

Bir GLM yaparken ve anova çıktısında "tekillikler nedeniyle tanımlanmadı" hatası alırsanız, bu hata oluşmasına nasıl karşı koyarsınız?

Bazıları bunun ortak değişkenler arasındaki kollearlıktan kaynaklandığını veya veri kümesinde seviyelerden birinin bulunmadığını ileri sürmüştür (bakınız: lm'deki "tekillikler nedeniyle tanımlanmadı" yorumlama )

Hangi "Özellikle tedavi" modelini yönlendirdiğini görmek istedim ve ben tedavi 4 seviyeleri varsa: Treat 1, Treat 2, Treat 3ve Treat 4, benim e-tabloya kaydedilir: zaman Treat 1kalan 1'dir sıfır, ne zaman Treat 2sıfır kalan 1'dir, vb. ne yapmam gerekir?


Görüyorum ki birçok insan bu problemi yaşıyor- Bu kişi sorusuna verilen cevabı anlayan var mı? stat.ethz.ch/pipermail/r-help/2006-Nisan/103836.html
Platypezid

Yanıtlar:


29

Muhtemelen bu hatayı alıyorsunuz çünkü iki veya daha fazla bağımsız değişkeniniz mükemmel bir şekilde birbirine yakın (örneğin, aynı kopyaları yapmak için sahte değişkenleri yanlış kodlayan).

Daha yakından incelemek için verilerinizde cor () veya modelinizdeki takma ad () kullanın.


11
Teşekkürler alias () işlevini bilmiyordu. Bu gerçekten kullanışlı. Şerefe, O.
OFish

Fonksiyonu da bilmiyordum alias. Çok hoş.
igorkf

1

Bağımsız değişkenleriniz arasındaki güçlü korelasyon nedeniyle "tekillikler nedeniyle tanımlanmadı" hatası oluşacaktır. Bu, n-1 kukla değişkenlere sahip olarak önlenebilir. Sizin durumunuzda, Tedavi değişkeni için 3 ikili kukla değişken kullanmalısınız (Treat1, Treat2, Treat3).

R programlamasında, lineer regresyon fonksiyonu lm () yüksek derecede korelasyonlu değişkenler için eş-verimli olarak "NA" ile sonuçlanacaktır.


1
Bunu mevcut cevaba eklemek olarak nasıl gördüğünüzü söyleyebilir misiniz? Belki düzenleyerek?
mdewey
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.