Lojistik regresyon altkümesi seçimi nasıl yapılır?


47

R'ye binom bir aile glm yerleştiriyorum ve açıklayıcı değişkenler grubum var ve en iyisini bulmam gerekiyor (ölçü olarak R kare). Açıklayıcı değişkenlerin rastgele farklı kombinasyonları arasında dolaşmak için bir senaryo yazmak ve ardından en iyisini yapan kayıt yapmak için ne yapacağımı bilemiyorum. Ve leapspaket dan işlev sıçramalar lojistik regresyon yapmak görünmüyor.

Herhangi bir yardım ya da öneri çok takdir edilecektir.


Otomatik arama yapan işlevler var. Adım fonksiyonuna bir göz atmalısınız . Bölüm 5.4 bu noktayı göstermektedir: data.princeton.edu/R/glms.html
ocram

Üzgünüm ama gönderim artık sorumu sormayacak şekilde düzenlendi. Lojistik regresyon modelimde 35 (26 anlamlı) açıklayıcı değişken var. En iyi altküme değil, mümkün olan en iyi 8 kombinasyonuna ihtiyacım var ve hiçbir zaman adım adım veya tüm altkümeler tarzı yaklaşımı ile ilgilenmedim. Bu 8'de kıkırdama odası yok. Sadece birisinin 8 açıklayıcı değişkenin tüm kombinasyonlarına nasıl sığabileceğimi bildiğini ve bunun olasılığını en üst düzeye çıkardığını söyleyebileceğini düşündüm (R-kareli beyin osuruğu için üzgünüm ama AIC ne zamandan beri alakalı değil) Sabit sayıda parametrem var, 8).
Leendert

Yayınınızın önceki sürümüne geri dönebilir veya her iki düzenlemeyi birleştirebilirsiniz. Eminim @mpiktas görünüşünü geliştirmeye çalışırken iyi niyetliydi ve sadece No. parametrelerini fark etmedi.
chl

@ Herkes: Çok teşekkür ederim. Sonunda, hepsinin benzer cevaplar vermesi umuduyla birçok farklı şey kullandım. Ve yaptılar. BMA, bestglm ve glmnet paketlerinin yanı sıra step fonksiyonunu da kullandım. Hepsine sahip modeller takıldı ve BMA'nın maxcol = 9 ve step'in en iyi model olduğunu düşündüğü şeyde tutarsızlık yoktu. Çevremdeki tüm uzmanlar değişkenlerden oldukça memnun görünüyorlar ve bunun oldukça ilerici olduğunu hissediyorlardı. Tüm giriş için çok teşekkürler. Gerçekten hepsini kullandım.
Leendert

glmulti ayrıca en iyi alt küme seçimi için iyi bir pakettir ve bu sizin modelinizdeki maksimum değişken sayısını belirtmenize izin verir ve ayrıca tüm olası birinci dereceden etkileşim etkilerini göz önünde bulundurmasını sağlar
Tom Wenseleers

Yanıtlar:


28

Adım adım ve "tüm alt kümeler" yöntemleri genellikle kötüdür. Adım Adım Durma: Neden Adım Adım Metodlar Kötü ve David Cassell ve ben (Ne SAS kullanıyoruz, ancak ders uygulanır) veya Frank Harrell Regresyon Modelleme Stratejileri ile Ne Kullanmalısınız ? Otomatik bir yönteme ihtiyacınız olursa, LASSO veya LAR'ı öneririm. Lojistik regresyon için bir LASSO paketi burada mevcuttur , ilginç bir başka makale ise lojistik için yinelenen LASSO hakkındadır.


6
(+1) R paketleri hakkında ayrıca glmnet (koordinat iniş algo., Friedman ve coll. İle uygulama) ve cezalandırılmış (bazı değişkenlerin çeşitlendirilmemiş kalmasını sağlar). Not, F. Harrell GLM'ler için cezalı ML tahmini sağlar ( lrmdaha fazla bilgi için bakınız veya onun RMS ders kitabı).
chl

(+1) Güzel makale, bu sorudaki yazar devletlerinin çok ötesine gitmeye başlamalıyım (ilk kez yapmadığımda değil). @chl (+1) de mükemmel alternatif öneriler.
Dmitrij Celov 15.03

@chl: glmnet için +1, bu harika bir paket.
Zach

1
@chl Teşekkürler! R ile ilgili problemlerden biri paketleri takip etmek (çok fazla var!) Ve hangileri daha iyi. Görev görünümleri yardımcı olur
Peter Flom - Monica'yı yeniden kurun

2
Değişkenleriniz collinear ise, glmnet kullanarak elastik net kullanmak en iyisidir, örneğin LASSO rasgele olarak yüksek collinear değişkenleri model dışına çıkarmaya meyilli olduğundan, alfa = 0.5 ile
Tom Wenseleers

15

Öncelikle , lojistik regresyon için uygun bir uygunluk ölçütü değildir , örneğin veya bir bilgi kriteri alın , örneğin, iyi bir alternatif. A I C B I CR2AICBIC

Lojistik regresyon, maksimum olabilirlik yöntemi ile tahmin edilir, bu nedenle leapsdoğrudan burada kullanılmaz. Bir uzantısı leapsiçin glm()fonksiyonları olan bestglm (genellikle tavsiye aşağıdaki gibi vinyet orada başvurunuz) paketi.

Ayrıca ilginizi çekebilir David W. Hosmer, Borko Jovanovic ve Stanley Lemeshow Best Subsets Logistic Regression // Biometrics Vol. 45, No. 4 (Aralık, 1989), s. 1265-1270 (genellikle üniversite ağları yoluyla erişilebilir).


2
hakkındaki yorumunuz daha kötü olmakla birlikte genel olarak yararlıdır, ancak farklı boyutlardaki modelleri karşılaştırmazsanız fark etmez. OP, bunların yalnızca değişken modele ilgi duyduklarını açıkça ifade ediyor , bu nedenle ve , en yüksek olasılıkla modeli seçmeye geri dönecek. Bu, bağlantısına eşdeğerdir . B I , bir I 8 B I Bir I R 2R2BIC,AIC8BICAICR2
olasılık

Açıklama için teşekkürler, ancak aşağıdaki chl tarafından yapılan yorumlar sabit sayıdaki açıklayıcı değişkenlerin neden tehlikeli olduğunu açıklıyor. Bu arada, cevap (en fazla?) Değişkenli rstriction hakkındaki yorumdan daha önce ortaya çıktı ;)8
Dmitrij Celov

Herhangi bir akademik referansR2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
SIslam

Bir not, hesaplama için arka uçta bestglmkullanır leaps! Bu yüzden, veri setinde NA varsa ve aşağıdaki gibi bir mesaj çıkarsa başarısız olur Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3) Ama ilginç olan, veri setimde NA yok, bunun yerine bazı sıfırlar yok, yine de bu fonksiyon şikayet ediyor ve yukarıdaki mesajı veriyor!
SIslam

glmnet ayrıca iyi bir tanesidir ve tüm olası birinci dereceden etkileşim etkilerini göz önünde bulunduran modelleri de yapabilir
Tom Wenseleers

6

Bir fikir rastgele bir orman kullanmak ve sonra en iyi 8 değişkeninizi seçmek için çıktığı değişken önem ölçütlerini kullanmak olacaktır. Başka bir fikir, model için sürekli olarak en önemli olan 8 değişkeni bulmak için bu işlemi birkaç yüz kez tekrarlamak için "boruta" paketini kullanmak olacaktır.


@Zach Özellik seçimi yapmak için RF'lere güvenmeyi ve sonra da bir GLM uygulamanızı önerir misiniz - bu durumda, fazla uydurma veya aşırı iyimserlik riski vardır - veya RF'leri kullanma (standart olarak çeşitli önemdeki önlemlerle) veya bütünüyle ilgili seçim) bağımsız bir araç olarak?
chl

@chl: Özellik seçimi yapmak için RF'leri kullanmanızı ve ardından GLM'yi kullanmanızı öneriyordum. Aşırı uyma riski olduğuna katılıyorum, ancak OP tam olarak 8 değişkene ihtiyacı olduğunu söyledi.
Zach

1
@Zach "tam 8 değişken" ... O zaman, değişken önem derecesine (izin verme ve çifte yeniden örneklemenin temeli olduğu için), değişken öneme sahip bir ölçüt temelinde potansiyel potansiyel değişkenleri yumuşak bir şekilde eşleştiriyorsunuz ve sonra onları bir GLM'ye yeniden enjekte edin. IMHO, torbalama yoluyla uygulanan aşırı uydurma üzerindeki kontrolü bozuyorsunuz. Bu aynı zamanda Hastie ve arkadaşlarının ESLII'sinde de açıklanmıştır : özellik seçimi, eğer varsa, çapraz onaylama prosedürüne dahil edilmelidir (çapraz onaylama model performansının değerlendirmesini de içerir).
chl

@chl: r paketi "boruta" çapraz rastgele ormanı birkaç kez çalıştırarak geçerliliğini yitirmiyor mu? Temelde değişken seçimi yaptığınız ve modelinizi verinin rastgele alt kümelerine sığdırmak için "meta-çapraz doğrulama" ihtiyacımız olduğunu mu söylüyorsunuz?
Zach

3
@Zach Amacım, aynı takım zincirinde kalmanız koşuluyla, torbalamanın veya özellikle de RF'lerin aşırı ısınmasını (bir dereceye kadar) engellememesiydi. RF'lerin sonuçlarını kullanır ve sonra başka bir modelin aynı verilerle nasıl performans gösterdiğini görürseniz, CV döngüsünü kırırsınız. Peki neden sınıflandırma için doğrudan RF kullanmıyorsunuz? Başka bir çözüm, eğitim numunesinde RF kullanmak ve ardından GLM'yi uzatılmış bir numuneye uygulamak olabilir (potansiyel olarak çapraz onaylanabilir).
chl

0

stats::stepişlev veya daha genel MASS::stepAICfonksiyon desteği lm, glm(yani lojistik regresyon) ve aovaile modelleri.

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.