R'de kademeli regresyon - Nasıl çalışır?


17

Adım fonksiyonunu kullanarak R adım adım ve geriye doğru regresyon arasındaki temel farkı anlamaya çalışıyorum. Kademeli regresyon için aşağıdaki komutu kullandım

  step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both")

Yukarıdaki kod için aşağıdaki çıktı var.

ileri

Geriye doğru değişken seçimi için aşağıdaki komutu kullandım

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward")

Ve geri için aşağıdaki çıktıyı aldım

geriye

Anladığım kadarıyla, hiçbir parametre belirtilmediğinde, R'de "üst" ve "alt" parametresi belirtilmedikçe, aşamalı seçim geriye doğru hareket eder. Yine de aşamalı seçimin çıktısında, eklenen bir + disp vardır. 2. adım. Adım adım seçimde tekrar + disp ekleyerek işlev elde etmeye çalışan nedir? R, 2. adımda + disp'i neden eklerken sonuçlar geriye doğru seçim ile aynıdır (AIC değerleri ve model seçim değerleri). R kademeli seçimde tam olarak nasıl çalışıyor?

Bu fonksiyonun R'de nasıl çalıştığını gerçekten anlamak istiyorum. Yardım için şimdiden teşekkürler!

Yanıtlar:


18

Belki de 15 olası lm modeline bakarak kademeli regresyonun nasıl yapıldığını anlamak daha kolay olurdu.

İşte tüm 15 kombinasyon için formül üretmek için bir quickie.

library(leaps)
tmp<-regsubsets(mpg ~ wt + drat + disp + qsec, data=mtcars, nbest=1000, really.big=T, intercept=F)
all.mods <- summary(tmp)[[1]]
all.mods <- lapply(1:nrow(all.mods, function(x)as.formula(paste("mpg~", paste(names(which(all.mods[x,])), collapse="+"))))

head(all.mods)
[[1]]
mpg ~ drat
<environment: 0x0000000013a678d8>

[[2]]
mpg ~ qsec
<environment: 0x0000000013a6b3b0>

[[3]]
mpg ~ wt
<environment: 0x0000000013a6df28>

[[4]]
mpg ~ disp
<environment: 0x0000000013a70aa0>

[[5]]
mpg ~ wt + qsec
<environment: 0x0000000013a74540>

[[6]]
mpg ~ drat + disp
<environment: 0x0000000013a76f68>

Her model için AIC değerleri şunlarla çıkarılır:

all.lm<-lapply(all.mods, lm, mtcars)

sapply(all.lm, extractAIC)[2,]
 [1]  97.98786 111.77605  73.21736  77.39732  63.90843  77.92493  74.15591  79.02978  91.24052  71.35572
[11]  63.89108  65.90826  78.68074  72.97352  65.62733

Adım regresyonunuza geri dönelim. Lm (mpg ~ wt + drat + disp + qsec) için extractAIC değeri 65.63'tür (yukarıdaki listedeki model 15'e eşdeğerdir).

Model disp (-disp) öğesini kaldırırsa, lm (mpg ~ wt + drat + qsec) 63.891'dir (veya listedeki model 11).

Model hiçbir şeyi kaldırmazsa (hiçbiri), AIC hala 65.63

Model qsec'i (-qsec) kaldırırsa, lm (mpg ~ wt + drat + disp) 65.908'dir (model 12).

vb.

Temel olarak özet, bir terimin tüm modelinizden aşamalı olarak kaldırılmasını mümkün kılar ve extractAIC değerini, artan sırada listeleyerek karşılaştırır. Daha küçük AIC değerinin GERÇEK modele benzemesi daha muhtemel olduğundan, adım birinci adımda (-disp) modelini korur.

İşlem tekrarlanır, ancak tutulan (-disp) model başlangıç ​​noktasıdır. Modellerin karşılaştırılmasına izin vermek için terimler çıkarılır ("geri") veya çıkarılır / eklenir ("her ikisi"). Karşılaştırmada en düşük AIC değeri hala (-disp) modeli olduğundan, işlem durdurma ve elde edilen modeller verilmiştir.

Sorgunuzla ilgili olarak: "Adım adım seçimde + disp'i tekrar ekleyerek ulaşmaya çalışan işlev nedir?", Bu durumda, gerçekten hiçbir şey yapmaz, çünkü 15 modelin en iyisi model 11'dir. , yani lm (mpg ~ wt + drat + qsec).

Bununla birlikte, çözmek için çok sayıda adım gerektiren çok sayıda öngörücüye sahip karmaşık modellerde, başlangıçta kaldırılan bir terimin geri eklenmesi, terimleri karşılaştırmanın en kapsamlı yolunu sağlamak için önemlidir.

Umarım bir şekilde yardım eder.


6
"Daha küçük AIC değerinin GERÇEK modele benzemesi daha muhtemeldir" doğrudur. Adım adım model oluşturma, diğer öngörücülerin birçoğu
Alexis

3
Açıkçası bu bir yalan. Bu yüzden tek ölçütlere dayanan model seçimi (kademeli regresyon gibi) biraz naiftir.
Adam Quek

@Alexis, bağlantıdaki cevabınızdaki önerilerinizi seviyor.
Adam Quek

4

Burada basitleştirilmiş bir yanıt. İlk olarak, her iki prosedür de belirli bir modelin AIC'sini azaltmaya çalışır, ancak bunu farklı şekillerde yaparlar. Daha sonra, temel fark, geriye doğru seçim prosedüründe, herhangi bir adımda sadece modeldeki değişkenleri atabileceğinizdir, oysa adım adım seçimde modele değişkenler de ekleyebilirsiniz.

Kademeli seçimdeki çıktı hakkında, genel olarak çıktı, AIC'nizi azaltmak için alternatifler sipariş ettiğinizi gösterir, bu nedenle herhangi bir adımdaki ilk satır en iyi seçeneğinizdir. Daha sonra, +dispüçüncü satırda bir var çünkü modelinize bu değişkeni eklemek AIC'nizi azaltmak için üçüncü en iyi seçeneğiniz olacaktır. Ancak açıkçası, en iyi alternatifiniz olduğu gibi <none>, bu hiçbir şey yapmamak anlamına gelir, prosedür durur ve geriye doğru seçimde olduğu gibi aynı sonuçları verir.

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.