LASSO ne zaman ilişkili tahmincileri seçer?


13

Aşağıdaki kod ile R 'lars' paketini kullanıyorum:

> library(lars)
> set.seed(3)
> n <- 1000
> x1 <- rnorm(n)
> x2 <- x1+rnorm(n)*0.5
> x3 <- rnorm(n)
> x4 <- rnorm(n)
> x5 <- rexp(n)
> y <- 5*x1 + 4*x2 + 2*x3 + 7*x4 + rnorm(n)
> x <- cbind(x1,x2,x3,x4,x5)
> cor(cbind(y,x))
            y          x1           x2           x3          x4          x5
y  1.00000000  0.74678534  0.743536093  0.210757777  0.59218321  0.03943133
x1 0.74678534  1.00000000  0.892113559  0.015302566 -0.03040464  0.04952222
x2 0.74353609  0.89211356  1.000000000 -0.003146131 -0.02172854  0.05703270
x3 0.21075778  0.01530257 -0.003146131  1.000000000  0.05437726  0.01449142
x4 0.59218321 -0.03040464 -0.021728535  0.054377256  1.00000000 -0.02166716
x5 0.03943133  0.04952222  0.057032700  0.014491422 -0.02166716  1.00000000
> m <- lars(x,y,"step",trace=T)
Forward Stepwise sequence
Computing X'X .....
LARS Step 1 :    Variable 1     added
LARS Step 2 :    Variable 4     added
LARS Step 3 :    Variable 3     added
LARS Step 4 :    Variable 2     added
LARS Step 5 :    Variable 5     added
Computing residuals, RSS etc .....

Ben 5 sürekli değişkenler ile bir veri kümesi var ve ben tek bir (bağımlı) değişken y bir model sığdırmaya çalışıyorum. Tahmincilerimden ikisi birbiriyle yüksek derecede ilişkilidir (x1, x2).

Yukarıdaki örnekte de görebileceğiniz gibi lars işlevi 'stepwise' seçeneğiyle önce y ile en çok ilişkili olan değişkeni seçer. Modele girilecek bir sonraki değişken, artıklarla en fazla ilişkili olan değişkendir. Gerçekten de x4:

> round((cor(cbind(resid(lm(y~x1)),x))[1,3:6]),4)
    x2     x3     x4     x5 
0.1163 0.2997 0.9246 0.0037  

Şimdi, 'kement' seçeneğini yaparsam:

> m <- lars(x,y,"lasso",trace=T)
LASSO sequence
Computing X'X ....
LARS Step 1 :    Variable 1     added
LARS Step 2 :    Variable 2     added
LARS Step 3 :    Variable 4     added
LARS Step 4 :    Variable 3     added
LARS Step 5 :    Variable 5     added

İlk iki adımda her iki korelasyon değişkenini de modele ekler. Bu, birkaç makalede okuduğumun tersidir. Çoğu, korelasyonların çok yüksek olduğu bir değişken grubu varsa, 'kement' grubundan rastgele bir değişken seçmeye meyillidir.

Birisi bu davranışa bir örnek verebilir mi? Veya açıklayın, neden x1, x2 değişkenlerim modele birbiri ardına (birlikte) eklendi?


Bu, kement basamaklarının bir açıklamasını veren en az açı regresyonudur.
Michael R. Chernick

@MichaelChernick: ROP'nin yaptığı çağrıya ve sağladığı ilgili çıktıya bakarsanız, aslında kementi kullandığını göreceksiniz. Bildiğim gibi, lars algoritmasında küçük bir değişiklik, kement düzenleme yolunu veriyor.
kardinal

Benim "tahminim" x2 4 adet x1, x1 ve x2 birleştiğinden, aslında en fazla varyansa (9 birim) sahip olduğudur. X2 katsayısını 2'ye düşürürseniz, x4'ün x1 ve x2'den önce seçildiğini görmelisiniz.

Bu "rastgelelik" in kanıtı için bazı referanslar verebilir misiniz? Teşekkür ederim.
ziyuang

Cevabınızı bu makalede bulabilirsiniz: arxiv.org/pdf/1204.1605.pdf
TPArrow

Yanıtlar:


15

Eşbiçimlilik sorunu çok abartılıyor!

Thomas, ortak bir bakış açısını ifade ettiniz, eğer tahmin ediciler ilişkilendirilirse, en iyi değişken seçim tekniği bile gruptan rastgele bir tanesini seçer. Neyse ki, bu regresyonun gerçeği ortaya çıkarma yeteneğini anlıyor! Doğru açıklayıcı değişkenlere (dışsal) sahipseniz, çoklu regresyon, diğer değişkenleri sabit tutan her bir değişkenin etkisini bulmayı vaat eder. Şimdi değişkenler mükemmel bir şekilde ilişkilendirilirse, bundan tam anlamıyla imkansızdır. Değişkenler ilişkilendirilirse, daha zor olabilir, ancak bugünkü tipik veri kümesinin boyutu ile o kadar zor değildir.

Eşitsizlik düşük bilgi sorunudur. Dave Giles'in blogunda Art Goldberger'in bu kollektiflik parodisine bir göz atın . Kollearlık hakkında konuşma şeklimiz kısmi regresyon katsayısı yerine ortalamaya uygulandığında aptalca gelecektir.

Hala ikna olmadınız mı? Bazı kodların zamanı geldi.

set.seed(34234)

N <- 1000
x1 <- rnorm(N)
x2 <- 2*x1 + .7 * rnorm(N)
cor(x1, x2) # correlation is .94
plot(x2 ~ x1)

Yüksek derecede ilişkili değişkenler x1 ve x2 oluşturdum, ancak aşağıdaki grafikte x1 -1'e yakın olduğunda hala x2'de değişkenlik gördüğümüzü görebilirsiniz. resim açıklamasını buraya girin

Şimdi "gerçeği" ekleme zamanı:

y <- .5 * x1 - .7 * x2 + rnorm(N) # Data Generating Process

Sıradan regresyon, güçlü eşbiçimlilik sorununun ortasında başarılı olabilir mi?

summary(lm(y ~ x1 + x2))

Ah evet yapabilir:

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.0005334  0.0312637  -0.017    0.986    
x1           0.6376689  0.0927472   6.875 1.09e-11 ***
x2          -0.7530805  0.0444443 -16.944  < 2e-16 ***

Şimdi sorunuzun odaklandığı LASSO hakkında konuşmadım. Ama size bunu sorayım. Geri giderimi olmayan eski okul regresyonu, eşdoğuşma tarafından aldanmazsa, neden son teknoloji LASSO'nun bunu yapasın ki?


L1

Buradaki fikir, OP'nin tarif edilen fenomeni açıklamak için daha basit kavramların kullanılabileceği ve bu kavramların veriye dayalı bir düzenleme teriminin eklenmesiyle temelde değiştirilmemesidir.
Ben Ogorek

7

Ben'in cevabı bana verdiği yolda bir adım daha ilerlemem için bana ilham verdi, eğer "gerçek" y diğer durumlarda olursa ne olacak.

Orijinal örnekte, y, yüksek derecede ilişkili iki x1 ve x2 değişkenine bağımlıdır. Başka bir değişken olduğunu varsayarsak, x3,

x3 = c (1: N) / 250 # N daha önce tanımlanmış, N = 1000, x3 x1 ile aynı ölçektedir ve x3 ölçeğinin aşağıdaki doğrusal regresyon sonuçları üzerinde etkileri vardır.

"Hakikat" y artık şu şekilde tanımlanmaktadır

y = .5 * x1 - .7 * x3 + rnorm (N) # Veri Üretme Süreci

Regresyona ne olur?

özet (lm (y ~ x1 + x2))

Güçlü bir eşbiçimlilik etkisi vardır. Standart x2 hatası çok büyük. Ancak, doğrusal regresyon x2'yi anlamlı olmayan bir değişken olarak tanımlar.

     Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.39164    0.04172 -33.354  < 2e-16 ***
x1           0.65329    0.12550   5.205 2.35e-07 ***
x2          -0.07878    0.05848  -1.347    0.178 

vif (lm (y ~ x1 + x2))

x1       x2 
9.167429 9.167429 

Başka bir regresyon vakası ne olacak?

özet (lm (y ~ x1 + x2 + x3))

Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.02100    0.06573   0.319    0.749    
x1           0.55398    0.09880   5.607 2.67e-08 ***
x2          -0.02966    0.04604  -0.644    0.520    
x3          -0.70562    0.02845 -24.805  < 2e-16 ***

X2 değişkeni anlamlı değildir ve doğrusal regresyon ile giderilmesi önerilir.

vif (lm (y ~ x1 + x2 + x3))

x1       x2       x3 
9.067865 9.067884 1.000105 

Yukarıdaki sonuçlardan, doğrusal doğrusal regresyonda kolinearlık bir problem değildir ve VIF'nin kontrol edilmesi çok yararlı değildir.

Başka bir duruma bakalım. x3 = c (1: N) # N daha önce tanımlanmış, N = 1000, x3 x1 ile aynı ölçekte değil.

"Gerçek" y, yukarıdakiyle aynı olarak tanımlanır

y = .5 * x1 - .7 * x3 + rnorm (N) # Veri Üretme Süreci

Regresyona ne olur?

özet (lm (y ~ x1 + x2))

Güçlü bir eşbiçimlilik etkisi vardır. Standart x1, x2 hataları çok büyük. Doğrusal regresyon, önemli x1 değişkenini tanımlayamaz.

   Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept) -350.347      6.395 -54.783   <2e-16 ***
x1            25.207     19.237   1.310    0.190    
x2           -12.212      8.963  -1.362    0.173  

vif (lm (y ~ x1 + x2))

    x1       x2 
9.167429 9.167429 

Başka bir regresyon vakası ne olacak?

özet (lm (y ~ x1 + x2 + x3))

Coefficients:
          Estimate Std. Error   t value Pr(>|t|)    
(Intercept)  0.0360104  0.0610405     0.590    0.555    
x1           0.5742955  0.0917555     6.259 5.75e-10 ***
x2          -0.0277623  0.0427585    -0.649    0.516    
x3          -0.7000676  0.0001057 -6625.170  < 2e-16 ***

X2 değişkeni anlamlı değildir ve doğrusal regresyon ile giderilmesi önerilir.

vif (lm (y ~ x1 + x2 + x3))

x1       x2       x3 
9.182507 9.184419 1.001853 

Not: x1 ve x3'te y'nin gerilemesi. Standart x1 hatasının sadece 0.03 olduğuna dikkat edin.

özet (lm (y ~ x1 + x3))

Coefficients:
              Estimate Std. Error   t value Pr(>|t|)    
(Intercept) -0.1595528  0.0647908    -2.463    0.014 *  
x1           0.4871557  0.0321623    15.147   <2e-16 ***
x3          -0.6997853  0.0001121 -6240.617   <2e-16 ***

Yukarıdaki sonuçlara dayanarak, benim sonucum

  • prediktör değişkenleri benzer ölçeklerde olduğunda, doğrusal doğrusallıkta kolinearlık bir problem değildir;
  • öngörme değişkenleri benzer ölçeklerde olmadığında,
    • yüksek derecede korelasyonlu iki değişkenin her ikisi de gerçek modeldeyse, eşdoğrusallık bir problem değildir;
    • yüksek korelasyonlu iki değişkenten sadece biri gerçek modeldeyse,
      • Diğer "doğru" değişkenler doğrusal regresyona dahil edilirse, doğrusal regresyon, anlamlı değişkenle ilişkili anlamlı olmayan değişkenleri tanımlayacaktır.
      • Diğer "doğru" değişkenler lineer regresyona dahil edilmezse, eşdoğrusallık sorunu şiddetlidir ve bu da standart hata enflasyonuna neden olur.

İlginçtir, ancak bu sonuçlar yordayıcılar / özellikler ile y arasında doğrusal ilişkiler olduğunu varsayar. Kapsamlı olmaktan çok uzaklar. Tahmincilerinizde güçlü doğrusal olmayan ilişkiler varsa (ör. Etkileşim terimleri x1 * x2, adım işlevi özellikleri / kukla değişkenler (bazı sabitler için x1> c ise 1), vb.) Ne olur? Eğer algoritmik ticaret özellik oluşturulmasında gibi gürültü oranı verilerine düşük sinyal ile çalışıyorsanız, her zaman cimri modelleri (sizin sinyaller zayıf olduğu için) multicollinearity w başa hala güçlü nedenler vardır bu yüzden aşırı uyum azaltmak için
FXQuantTrader
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.