Czy istnieją okoliczności, w których należy zastosować regresję stopniową?


13

W przeszłości stosowano regresję krokową w wielu pracach biomedycznych, ale wydaje się, że poprawia się to wraz z lepszą edukacją wielu zagadnień. Jednak wielu starszych recenzentów wciąż o to prosi. Jakie są okoliczności, w których regresja krokowa odgrywa rolę i powinna być stosowana, jeśli w ogóle?


6
Często używam go podczas nauczania, aby zilustrować ideę, że nie należy go używać.
gung - Przywróć Monikę

1
(+1) Dzięki @gung Nie jestem statystyką i trudno mi było tego bronić, chociaż wiem, że to prawda. Uważam to za szczególnie trudne, ponieważ 1) ten bardzo dobry i często cytowany post nie zawiera zbyt wielu cytatów i ... (ctd)
bobmcpop

2
(ctd) i 2) krytycy krok po kroku często wydają się to robić, wybierając jedną z dużej liczby zmiennych lub eksplorując dane. W świecie biomedycznym obliczenia wielkości próby często uwzględniają liczbę oczekiwanych zmiennych towarzyszących, tak że pełne modele nigdy nie są tak duże na początek, a każda zmienna ma już wcześniejszy „biologiczny” powód, który należy uwzględnić. Czy uważasz, że krok po kroku nie powinien być stosowany w takich okolicznościach?
bobmcpop

3
Prowadzę konsultacje statystyczne w zakresie badań biomedycznych. Nie używam krok po kroku. Nie miałem wielu ludzi pytających (mogliby założyć, że użyłbym tego, gdyby pomógł to ich projektowi), ale kiedy ludzie pytają, mówię im, że jest nieważny i mówię o tym, dlaczego.
gung - Przywróć Monikę

Odpowiedzi:


11

Nie zdaję sobie sprawy z sytuacji, w których preferowanym podejściem byłaby regresja krokowa. Może być w porządku (szczególnie w wersji obniżającej, zaczynając od pełnego modelu) z ładowaniem całego procesu krokowego na bardzo dużych zestawach danych za pomocą . Tutaj to liczba obserwacji w wyniku ciągłym (lub liczba zapisów ze zdarzeniem w analizie przeżycia) to liczba kandydujących predyktorów, w tym wszystkie rozważane interakcje - tj. Gdy jakiekolwiek nawet małe efekty stają się bardzo wyraźne i nie ma to znaczenia w dużej mierze jak budujesz swój model (oznaczałoby to, że byłoby znacznie większe niż niż znacznie więcej niż czasami podawany współczynnik 20).n>>pnpnp

Oczywiście powodem, dla którego większość ludzi ma ochotę zrobić coś takiego jak regresja krokowa, jest:

  1. ponieważ nie jest to intensywne obliczeniowo (jeśli nie wykonasz właściwego ładowania, ale twoje wyniki są dość niewiarygodne),
  2. ponieważ zapewnia wyraźne cięcie „jest w modelu„ przeciw ”nie ma w modelu„ instrukcji (które są bardzo niewiarygodne w standardowej regresji krokowej; coś, co właściwe rozjaśnianie zwykle wyjaśnia, aby te instrukcje zwykle nie były tak jasne) i
  3. ponieważ często jest mniejsze, bliskie lub nieco większe niż .np

Oznacza to, że metoda taka jak regresja krokowa byłaby (gdyby miała dobrą charakterystykę operacyjną) szczególnie atrakcyjna w tych sytuacjach, gdy nie ma dobrych charakterystyk operacyjnych.


3
(+1) Również metody krokowe i pokrewne mogą być odpowiednie dla modeli predykcyjnych w sytuacjach stóg igły w stogu siana, gdy wiele współczynników jest nieistotnych i tylko kilka dużych w stosunku do wariancji błędu. Patrz przykład 3 z Tibshirani (1996), Skurcz regresji i selekcja za pomocą Lasso , JRSS B , 58 , 1 - chociaż nawet tutaj wygrywa nieujemna garotte.
Scortchi - Przywróć Monikę

3
Nie do końca rozumiem ostatni akapit. Być może mógłby zostać przeformułowany? A co z 3 .: nie widzę bezpośredniego argumentu, być może coś powinno być łatwe do wnioskowania?
Richard Hardy,

1
Aby wyjaśnić ostatni akapit i (3): Ludzie używają kroku ze względu na (3) (tj. Aby uniknąć sytuacji, w których dopasowanie pełnego modelu jest trudne lub prowadzi do ), ale właśnie wtedy będzie to okropna metoda . Używają go, ponieważ nie jest to wymagające obliczeniowo, ale aby uzyskać cokolwiek przydatnego, musisz przeprowadzić obszerne ładowanie systemu (więc nie jest to tak naprawdę zaletą). I używają go, ponieważ wydaje się, że daje jasną interpretację, ale jeśli zrobione poprawnie, nie jest to tak jasne i widać, ile jest niepewności modelu (jasna interpretacja = złudzenie). pn
Björn

11

Są dwa przypadki, w których nie sprzeciwiałbym się regresji stopniowej

  1. Analiza danych rozpoznawczych
  2. Modele predykcyjne

W obu tych bardzo ważnych przypadkach użycia nie obawiasz się tak bardzo tradycyjnego wnioskowania statystycznego, więc fakt, że wartości p itp. Nie są już ważne, nie stanowi problemu.

Na przykład, jeśli artykuł badawczy powiedział: „W naszym badaniu pilotażowym zastosowaliśmy regresję krokową, aby znaleźć 3 interesujące zmienne spośród 1000. W badaniu uzupełniającym z nowymi danymi pokazaliśmy, że te 3 interesujące zmienne były silnie skorelowane z wynik zainteresowania ”, nie miałbym problemu z zastosowaniem regresji stopniowej. Podobnie: „Zastosowaliśmy regresję krokową, aby zbudować model predykcyjny. Ten przeformowany model alternatywny X w naszym zbiorze danych dotyczących MSE” jest dla mnie również w porządku.

Dla jasności nie twierdzę, że regresja stopniowa jest najlepszym sposobem na rozwiązanie tych problemów. Ale jest to łatwe i może dać satysfakcjonujące rozwiązania.

EDYTOWAĆ:

W komentarzach pojawia się pytanie, czy krokowe AIC może być rzeczywiście przydatne do przewidywania. Oto symulacja, która pokazuje, że radzi sobie znacznie lepiej niż regresja liniowa ze wszystkimi zmiennymi towarzyszącymi, a także prawie równie elastycznymi sieciami z karą wybraną w drodze weryfikacji krzyżowej.

Nie wziąłbym tej symulacji za koniec dyskusji; nie jest trudno wymyślić scenariusz, w którym stopniowe AIC będzie gorsze. Ale tak naprawdę nie jest to nieracjonalny scenariusz, a dokładnie taki rodzaj sytuacji, w którym zaprojektowano siatki elastyczne (wysoka korelacja zmiennych towarzyszących z bardzo małą ilością dużych efektów)!

library(leaps)
library(glmnet)
nRows <- 1000
nCols <- 500

# Seed set For reproducibility. 
# Try changing for investigation of reliability of results
set.seed(1)

# Creating heavily correlated covariates
x_firstHalf  <- matrix(rnorm(nRows * nCols / 2), nrow = nRows)
x_secondHalf <- x_firstHalf + 0.5 * 
                matrix(rnorm(nRows * nCols / 2), nrow = nRows) 
x_mat        <- cbind(x_firstHalf, x_secondHalf) + rnorm(nRows)

# Creating beta's. Most will be of very small magnitude
p_large = 0.01
betas <- rnorm(nCols, sd = 0.01) + 
         rnorm(nCols, sd = 4) * rbinom(nCols, size = 1, prob = p_large)
y     <- x_mat %*% betas + rnorm(nRows, sd = 4)

all_data           <- data.frame(y, x_mat)
colnames(all_data) <- c('y', paste('x', 1:nCols, sep = '_'))

# Holding out 25% of data for validation
holdout_index <- 1:(nRows * .25) 
train_data    <- all_data[-holdout_index, ]
validate_data <- all_data[holdout_index, ]

mean_fit <- lm(y ~ 0, data = train_data)
full_fit <- lm(y ~ ., data = train_data)
step_fit <- step(mean_fit, 
                 scope = list(lower = mean_fit, upper = full_fit), 
                 direction = "forward", steps = 20, trace = 0)

glmnet_cvRes <- cv.glmnet(x = as.matrix(train_data[,-1]), 
                          y = as.numeric(train_data$y)   )

full_pred   <- predict(full_fit, validate_data)
step_pred   <- predict(step_fit, validate_data)
glmnet_pred <- predict(glmnet_cvRes, as.matrix(validate_data[,-1]), s='lambda.min')

sd(full_pred - validate_data$y)    # [1] 6.426117
sd(step_pred - validate_data$y)    # [1] 4.233672
sd(glmnet_pred - validate_data$y)  # [1] 4.127171
# Note that stepwise AIC does considerably better than using all covariates 
# in linear regression, and not that much worse than penalized methods
# with cross validation!!

Dygresja:

Naprawdę nie jestem fanem regresji krokowej z wielu, wielu powodów, więc czuję się trochę niezręcznie, przyjmując to stanowisko w obronie tego. Uważam jednak, że ważne jest precyzyjne określenie dokładnie tego, co mi się nie podoba.


2
W jakich innych scenariuszach jest powszechnie stosowany (w literaturze biomedycznej) oprócz tych dwóch wskazań? Natknąłem się tylko na jego zastosowanie w modelach predykcyjnych, ale nie jest to zalecane np .
bobmcpop

5
@ bobmcpop: dużym problemem jest stosowanie wartości p, przedziałów ufności, po regresji krokowej, jak wspomniano w cytowanym artykule. Modele używane wyłącznie do przewidywania (nie tylko modele z predyktorami) generalnie nie dbają o wartości p, ale raczej o to, jak bardzo zredukowany jest błąd poza próbą.
Cliff AB

1
@ Björn: cóż, jak powiedziałem na końcu, nie sądzę, aby była to najlepsza metoda na to, by zrobić to przez anymeans. Ale to nie jest nieważna, a może skończyć z rozsądnych wyników. Jako taka, jego siła jest naprawdę prosta w użyciu: jeśli masz model, który przyjmuje zmienne towarzyszące i zwraca prawdopodobieństwa, możesz zrobić krok po kroku AIC. Być może lepiej poradzisz sobie z czymś takim jak LASSO ... ale możesz tego nie zrobić, jeśli jest to jakiś wymyślny nowy model lub używasz programu Excel.
Cliff AB

4
(+1) Powiedziałbym, że glmnet został zaprojektowany, aby poradzić sobie z taką sytuacją, między innymi, w swoim tempie (jak się wydaje); podczas gdy metody selekcji predyktorów bez skurczu są do niego szczególnie dostosowane. Interesujące może być porównanie podejść, gdy występują „efekty zwężające się” zamiast kilku dużych i wielu małych.
Scortchi - Przywróć Monikę

2
Zredagowałem Twój kod, aby ułatwić czytanie i kopiowanie i wklejanie do pliku kodu lub konsoli. Mam nadzieję, że to lubisz. Jeśli nie, przywróć to z moimi przeprosinami.
gung - Przywróć Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.