> 50K değişkenleriyle Kement veya sırt regresyonundaki büzülme parametresi nasıl tahmin edilir?


36

50.000'den fazla değişkenli bir modelde Kement veya ridge regresyon kullanmak istiyorum. Bunu R'deki yazılım paketini kullanarak yapmak istiyorum. Büzülme parametresini ( ) nasıl tahmin edebilirim ?λ

Düzenlemeler:

İşte anladığım nokta:

set.seed (123)
Y <- runif (1000)
Xv <- sample(c(1,0), size= 1000*1000,  replace = T)
X <- matrix(Xv, nrow = 1000, ncol = 1000)

mydf <- data.frame(Y, X)

require(MASS)
lm.ridge(Y ~ ., mydf)

plot(lm.ridge(Y ~ ., mydf,
              lambda = seq(0,0.1,0.001)))

görüntü tanımını buraya girin

Sorum şu: için hangi λ'nın en iyi olduğunu nasıl bilebilirim ?λ


3
Yumuşatma parametresi istatistiksel olarak tahmin edilemez, ancak örneğin çapraz doğrulama kullanarak örnek dışı uyumu maksimize etmek için kullanılır. Sanırım R'deki LASSO ve Ridge Regression standart paketleri sizin için bunu yapmak için bir işlevsellik geliştirdi - buna baktınız mı?
Makro

4
Kabul etmiyorum - karışık bir model yaklaşımı kullanarak yumuşatma parametresini tahmin edebilirsiniz. Reml yöntemleri, heirarchical bayes yöntemleri gibi mevcuttur. Pahalı çapraz doğrulama yapmanıza gerek yoktur.
Olasılık

1
@probabilityislogic bilgi için teşekkür ederiz. Senaryoda reml kullanarak bunu nasıl yapabileceğimize dair birkaç ayrıntı olması harika olurdu
John

2
Sırt regresyonu için, dışarıda bir kez dışarıya doğrulanma geçerliliği esasen ücretsizdir (Allen'ın PRESS istatistiği) ve bunun oldukça iyi bir yöntem olduğunu buldum. Bununla birlikte, özellikleri, hemen hemen kullandığınız herhangi bir yöntem dengesiz olacaktır ve hem parametreler hem de normalizasyon parametrelerinin üzerinde marjinalleştirici olan tamamen Bayesian bir yaklaşım daha muhtemel olacaktır (olasılıkların önerdiği gibi). Bayesian yöntemlerini beğenmiyorsanız, torbalama kullanın ve her seferinde lambda'yı yeniden tahmin edin.
Dikran Marsupial

2
λβklog(λ)log|XTX+λI|kβN(0,σ2λ1)σ2β=β^

Yanıtlar:


25

cv.glmnetλ112α

λλcv.glmnetλlambda.minlambda.1seλtype.measure

Alternatif olarak, R paketi mgcv , ceza parametrelerinin otomatik seçilmesi dahil olmak üzere ikinci dereceden cezalandırma ile tahmin için geniş olasılıklar içerir. Uygulanan yöntemler arasında genelleştirilmiş çapraz doğrulama ve bir açıklamada belirtildiği gibi REML bulunur. Ambalaj yazarları kitabında daha fazla ayrıntı bulunabilir: Wood, SN (2006) Genelleştirilmiş Katkı Modelleri: R, CRC ile giriş.


1
cv.glmnetλlambda.minlambda.1se

@chl, öneri için teşekkürler. Bunu eklemeliydim.
NRH,

15

Bu cevap MATLAB'a özgüdür, ancak temel kavramların, R'ye alışkın olduğunuza oldukça benzer olması gerekir ...

MATLAB durumunda, çapraz doğrulama etkinken kement çalıştırma seçeneğiniz vardır.

Bunu yaparsanız, kement işlevi iki kritik parametre değerini bildirir

  1. Çapraz doğrulanmış ortalama kare hatasını en aza indiren lambda değeri
  2. CVMSE minimum bir standart hata dahilinde en fazla büzülme oranına sahip lambda değeri.

Ayrıca lambda ve CVMSE arasındaki ilişkiyi incelemek için kullanabileceğiniz güzel bir küçük tablo olsun

görüntü tanımını buraya girin

Genel olarak, mavi çizgi ile yeşil çizgi arasına giren bir lambda değeri seçersiniz.

Aşağıdaki blog yazısı, bazı örneklerdeki bazı demo kodlarını içerir.

Tibshirani, R. (1996). Regresyonda büzülme ve kement ile seçim. J. Royal. Devletçi. Soc B., Cilt. 58, No. 1, sayfa 267-288).

http://blogs.mathworks.com/loren/2011/11/29/subset-selection-and-regularization-part-2/


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.