Değişken seçimi yaparken çoklu doğrusallık ile nasıl başa çıkılır?


28

9 sürekli bağımsız değişken içeren bir veri kümem var. Bir modele tek bir yüzde (bağımlı) değişkene uyacak şekilde bu değişkenler arasından seçim yapmaya çalışıyorum Score. Ne yazık ki, bazı değişkenler arasında ciddi bir eşliklilik olacağını biliyorum.

stepAIC()Değişken seçimi için R'deki işlevi kullanmayı denedim , ancak bu yöntem garip bir şekilde değişkenlerin denklemde listelendiği sıraya duyarlı görünüyor ...

İşte R kodum (yüzde verileri olduğundan, Puan için logit dönüşümü kullanıyorum):

library(MASS)
library(car)

data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 +
             Var8 + Var9, data = data.tst)

step = stepAIC(data.lm, direction="both")
summary(step)

Bazı nedenlerden dolayı, denklemin başında listelenen değişkenlerin stepAIC()fonksiyon tarafından seçildiğini ve sonucun listelenerek değiştirilebileceğini öğrendim , örneğin Var9ilk önce (tilde sonrasında).

Buradaki modele uymanın daha etkili (ve daha az tartışmalı) bir yolu nedir? Doğrusal regresyon kullanmaya gerçekten bağlı değilim: İstediğim tek şey, 9 değişkenden hangisinin değişkeni gerçekten tahrik ettiğini anlayabilmektir Score. Tercihen, bu, bu 9 değişkende collinearity için güçlü potansiyeli dikkate alan bir yöntem olacaktır.


6
Eşdoğrusallık, bir analiz yapıp yapmadığınızı ve bunun biricik dereceyi yüksek derecede eşzamanlı olan bir değişkenden daha fazla mı yoksa az mı yönlendirdiğini belirlemek imkânsız olduğu anlamına gelecektir. Bu sınırlamayı göz önünde bulundurarak, kementi , optimal olarak tahmin eden az sayıda değişkeni seçmenin bir aracı olarak deneyebilir , daha sonra seçtiği değişken kümesini ve kümesinin son derece ortak olduğu değişkenleri rapor edebilirsiniz . Gruplandırılmış kement başka bir seçenektir.
konuk

4
@guest: Kement, özellikle model seçiminde, kuvvetli bir eşdoğrusallık varlığında iyi çalışmaz.
kardinal

2
@ cardinal, kement tamam ama eğer birkaç değişken birbiriyle ilişkiliyse, bunlardan sadece birini seçme eğiliminde olacak, bu yüzden yüksek düzeyde kolinear değişkenler setine bakmayı önerdim. Bu 'varsayılan' değerden daha karmaşık bir şey kullanmaya karar vermek, bir yardımcı program değerlendirmesi ve bu modelin neye yönelik olduğu konusunda daha güçlü bir görüş gerektirecektir.
konuk

2
Bicreg fonksiyonuna {paket BMA} bakmak isteyebilirsiniz. Düzgün çalışması için tam servisli bir veri setine ihtiyacınız olduğunu unutmayın. Model seçimi için son derece yararlı buluyorum.
Dominic Comtois

1
@guest: Bu, normalleştirme parametresinin seçilme şekline çok bağlıdır. Aslında, bazı rejimlerde, kement, seçilebilir parametrelere karşı (kanıtlanabilir) bir eğilime sahiptir . OP, “istediğim tek şey, 9 değişkenden hangisinin değişkeni gerçekten etkilediğini anlayabilmektir” diye sordu Score; bu, fazlaca odaklanabileceğim bir cümledir. Güçlü bir toplulukluluğun varlığında, kement, en azından OP'nin görüşüne dair daha katı yorumlarda bu konuda yardımcı olmayacak.
kardinal

Yanıtlar:


14

Öncelikle, bu sorun için çok iyi bir kaynak T. Keith, Çoklu Regresyon ve Ötesi'dir. Kitapta yol modellemesi ve değişken seçimi ile ilgili çok fazla materyal var ve bence sorularınıza ayrıntılı cevaplar bulacaksınız.

Çok kutupluluğa değinmenin bir yolu, yordayıcıları ortalamaktır, yani her serinin bir serisinin ortalamasını çıkarmaktadır. Ridge regresyonu, aynı zamanda, veriler oldukça collinear olduğunda da kullanılabilir. Son olarak, sıralı regresyon, yordayıcı olaylarının zaman sırasının analizi ile birlikte, yordayıcılar arasındaki neden-sonuç ilişkilerinin anlaşılmasına yardımcı olabilir.

9 değişkenin tümü de eşliklilik gösteriyor mu? Teşhis için Cohen 2003 varyans enflasyon faktörünü kullanabilirsiniz. Bir VIF değeri> = 10, yüksek collinearity ve şişirilmiş standart hataları gösterir. Tahmin ediyorum, tahminciler ve sonuçlar arasındaki sebep-sonuç ilişkisiyle daha çok ilgileniyorsunuz. Olmazsa, çoklu doğrusallık tahmin için ciddi bir sorun olarak kabul edilmez, zira bir kereliğine prediktörlerinizi ekleyen yerleşik modellere karşı örnek dışı verilerin MAE'sini kontrol ederek onaylayabilirsiniz. Tahmincilerinizin marjinal tahmin gücü varsa, MAE'nin model çoklu bağlayıcılığının varlığında bile azaldığını göreceksiniz.


16

Hangi değişkenlerin düşeceğini belirlemek çok zor olduğu için değişkenleri düşürmemek daha iyidir. Bu satır boyunca ilerlemenin iki yolu (1) bir veri azaltma yöntemi kullanmak (örneğin değişken kümeleme veya ana bileşenler) ve bireysel değişkenler yerine modele özet puanlar koymak ve (2) tüm değişkenleri modele koyup test etmemek. Rakip değişkenlerin etkileri için ayarlanmış bir değişkenin etkisi için. (2) için, rakip değişkenlerin öbek testleri güçlüdür, çünkü kolinear değişkenler, değişkenleri ayrı ayrı test ederken olduğu gibi birbirleriyle rekabet etmek yerine genel çoklu serbestlik derecesi derlenme testinde güçlerini birleştirirler.


and put summary scores into the model
yoi

1
Biostat.mc.vanderbilt.edu/rms adresindeki Ders Notlarım ayrıntıya giriyor
Frank Harrell

1

Değişken seçim yapmak için yüksek collinearity varlığında bir yinelemeli adapte ridge prosedürü kullanarak L0 cezaevi GLM'lere uygun l0ara paketi tavsiye edebilirim . Bu yöntem nihayetinde sırtta regüle edilmiş regresyona dayandığından, kollektifliği çok iyi karşılayabilir ve simülasyonlarımda LASSO, elastik net veya adaptif LASSO'yla karşılaştırıldığında yine de mükemmel bir tahmin performansı sunarken, daha az hatalı pozitif üretti. Alternatif olarak, L0Learn paketini de deneyebilirsinizL0 ve L2 cezalarının bir kombinasyonu ile. L0 cezası daha sonra az miktarda (yani küçük modeller) yana kalırken, L2 cezası eşdüzeliği düzenler. Elastik ağ (bir L1 ve L2 cezasının bir kombinasyonunu kullanır) da sıklıkla önerilmektedir, ancak testlerimde bu şekilde daha fazla yanlış pozitif üretildi, artı katsayılar çok fazla önyargılı olacak. Bunun yerine L0 cezalandırılmış yöntemleri kullanırsanız (yani en iyi alt küme) bu önyargıdan kurtulursunuz - aynı anda tutarlı ve tarafsız parametre katsayıları elde eden sözde kehanet tahmincisi. Bu yöntemlerin hepsinde yapılan düzenlileştirme parametrelerinin, numune dışına çıkma performansının optimal olmasını sağlamak için çapraz doğrulama yoluyla optimize edilmesi gerekir. Parametrelerinizde anlamlılık seviyeleri ve güven aralıkları da elde etmek istiyorsanız, bunu parametrik olmayan önyükleme yoluyla da yapabilirsiniz.

l0araElastik ağ gibi yinelemeli uyarlamalı sırt algoritması (bazen kırılmış uyarlamalı sırt olarak da adlandırılır), modelinize girer girmez gruplar halinde yüksek oranda ilişkili değişkenleri seçmesine neden olacak bir gruplandırma etkisine sahiptir . Bu mantıklıdır - örneğin, modelinizde iki tane birbirine yakın değişken varsa, bu etkiyi her ikisine de eşit olarak böler.

Oran verilerini analiz ediyorsanız btw lojistik regresyon modelini kullanmaktan daha iyidirsiniz - l0arapaket bunu bir L0 cezasıyla birlikte yapmanıza izin verir; için L0Learnpaketin bu kısa süre desteklenecektir.

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.