Czy regresja krokowa zapewnia tendencyjne oszacowanie kwadratowej liczby ludności?

14

W psychologii i innych dziedzinach często stosuje się formę regresji stopniowej, która obejmuje:

  1. Spójrz na pozostałe predyktory (początkowo nie ma ich w modelu) i zidentyfikuj predyktor, który powoduje największą zmianę r-kwadrat;
  2. Jeśli wartość p zmiany r-kwadrat jest mniejsza niż alfa (zazwyczaj 0,05), to włącz ten predyktor i wróć do kroku 1, w przeciwnym razie zatrzymaj się.

Na przykład zobacz tę procedurę w SPSS .

Procedura jest rutynowo krytykowana z wielu różnych powodów (patrz ta dyskusja na stronie internetowej Stata z odnośnikami ).

W szczególności strona internetowa Stata podsumowuje kilka komentarzy Franka Harrella. Jestem zainteresowany roszczeniem:

[regresja krokowa] daje wartości R-kwadrat, które są źle ukierunkowane na wysokie.

W szczególności niektóre z moich obecnych badań koncentrują się na szacowaniu populacji r-kwadrat . Przez populację r-kwadrat odnoszę się do procentu wariancji wyjaśnionego przez dane populacji generujące równanie w populacji. Wiele z istniejącej literatury, którą recenzuję, stosuje procedury regresji krokowej i chcę wiedzieć, czy przedstawione szacunki są stronnicze, a jeśli tak, to o ile. W szczególności typowe badanie miałoby 30 predyktorów, n = 200, alfa wejścia 0,05, a szacunki r-kwadrat około 0,5.

Co wiem:

  • Asymptotycznie, każdy predyktor o niezerowym współczynniku byłby statystycznie istotnym predyktorem, a r-kwadrat równałby się skorygowanemu r-kwadratowi. Zatem asymptotycznie regresja krokowa powinna oszacować prawdziwe równanie regresji i prawdziwą populację r-kwadrat.
  • Przy mniejszych próbkach możliwe pominięcie niektórych predyktorów spowoduje mniejszy kwadrat r niż w przypadku uwzględnienia wszystkich predyktorów w modelu. Ale również zwykłe odchylenie danych r-kwadrat do próbek zwiększyłoby r-kwadrat. Tak więc moją naiwną myślą jest to, że potencjalnie te dwie przeciwstawne siły mogą w pewnych warunkach skutkować bezstronnym kwadratem r. Mówiąc bardziej ogólnie, kierunek odchylenia byłby zależny od różnych cech danych i kryteriów włączenia alfa.
  • Ustawienie bardziej rygorystycznego kryterium włączenia alfa (np. 0,01, 0,001 itd.) Powinno obniżyć oczekiwany szacowany r-kwadrat, ponieważ prawdopodobieństwo włączenia dowolnego predyktora do dowolnej generacji danych będzie mniejsze.
  • Zasadniczo, r-kwadrat jest uprzedzonym w górę oszacowaniem populacji r-kwadrat, a stopień tego obciążenia wzrasta wraz z większą liczbą predyktorów i mniejszymi wielkościami próby.

Pytanie

Wreszcie moje pytanie:

  • W jakim stopniu r-kwadrat z regresji krokowej powoduje tendencyjne oszacowanie r-kwadratu populacji?
  • W jakim stopniu to odchylenie jest związane z rozmiarem próbki, liczbą predyktorów, kryterium włączenia alfa lub właściwościami danych?
  • Czy są jakieś odniesienia na ten temat?
Jeromy Anglim
źródło
3
Główna wersja często zadawanych pytań Stata była wcześniejsza niż książka Franka Harrella z 2001 roku Strategie modelowania regresji . New York: Springer, od którego chciałbym zacząć.
Nick Cox
3
Gorąco polecam przeczytanie książki autorstwa @FrankHarrell, o której wspomina Nick Cox; Regularnie przydzielam moich studentów studiów podyplomowych i honoruję studentów czytających z niego (szczególnie rozdział 4). To, że R ^ 2 jest tendencyjne w obecności selekcji zmiennych, jest dość łatwe do zaobserwowania poprzez symulację wielu zbiorów danych (np. N = 100, p = 50), które mają korelację populacji wynoszącą zero, a następnie wykonanie dowolnej procedury selekcji zmiennych, którą chcesz pokazać to na.
Glen_b
5
Jak zauważono w komentarzach, symulacja może pokazać, że w znanej sytuacji regresja krokowa zawyży i może pokazać, ile. Ale nie może pokazać, ile inflacji jest w sytuacji, gdy nie wiesz, jakie powinny być wartości populacji. Oznacza to, że nie tylko są one wynikiem stopniowej tendencyjności, ale są one tendencyjne w sposób, który jest bardzo trudny (jeśli nie niemożliwy) do oszacowania. R2)
Peter Flom - Przywróć Monikę
3
Jeśli populacja R ^ 2 wynosi zero, pomyślałbym, że próbka R ^ 2 jest stronnicza, nawet jeśli nie zastosujesz selekcji krokowej. Podejrzewam (ale nie jestem pewien), że byłoby również stronnicze, gdyby populacja R ^ 2 była niezerowa.
mark999
2
R2

Odpowiedzi:

5

R2R2R2

Frank Harrell
źródło
Szczególnie, gdy liczba predyktorów kandydujących przekracza liczbę obserwacji!
Alexis,
2

Przegląd

R2ρ2

R2ρ2R2ρ2R2R2R2ρ2

R2

R2ρ2ρ2

Symulacja

Poniższa symulacja ma cztery nieskorelowane predyktory, w których populacja r-kwadrat wynosi 40%. Dwa z predyktorów wyjaśniają po 20%, a dwa pozostałe predyktory wyjaśniają 0%. Symulacja generuje 1000 zestawów danych i szacuje regresję krokową r-kwadrat jako procent dla każdego zestawu danych.

# source("http://bioconductor.org/biocLite.R")
# biocLite("maSigPro") # provides stepwise regression function two.ways.stepfor 
library(maSigPro)
get_data <- function(n=100) {
    x1 <- rnorm(n, 0, 1)
    x2 <- rnorm(n, 0, 1)
    x3 <- rnorm(n, 0, 1)
    x4 <- rnorm(n, 0, 1)
    e  <- rnorm(n, 0, 1)
    y <- 1 * x1 + 1 * x2 + sqrt(3) * e
    data <- data.frame(y, x1, x2, x3, x4)
    data
}

get_rsquare <- function(x, alpha=.05) {
    fit <- two.ways.stepfor(x$y, subset(x, select=-y),  alfa=alpha)
        class(fit) <-'lm'
        summary.lm(fit)$r.square * 100
}

Poniższy kod zwraca kwadrat r z literą alfa dla wpisania .01, .001, .0001 i .00001.

set.seed(1234)
simulations <- 1000
datasets <- lapply(seq(simulations), function(X) get_data(n=100))
rsquares01 <- sapply(datasets, function(X) get_rsquare(X, alpha=.01))
rsquares001 <- sapply(datasets, function(X) get_rsquare(X, alpha=.001))
rsquares0001 <- sapply(datasets, function(X) get_rsquare(X, alpha=.0001))
rsquares00001 <- sapply(datasets, function(X) get_rsquare(X, alpha=.00001))

Poniższe wyniki wskazują błąd systematyczny dla każdego z pięciu wpisów alfa. Zauważ, że pomnożyłem r-kwadrat przez 100, aby ułatwić dostrzeżenie różnic.

mean(rsquares01) - 40 
mean(rsquares001) - 40 
mean(rsquares0001) - 40 
mean(rsquares00001) - 40 
sd(rsquares01)/sqrt(simulations) # approximate standard error in estimate of bias 

Wyniki sugerują, że alfa pozycji 0,01 i 0,001 skutkuje dodatnią stronniczością, a alfa pozycji 0,0001 i 0,00001 skutkuje ujemną stronniczością. Prawdopodobnie więc alfa wejścia około 0,0005 spowodowałoby bezstronną regresję stopniową.

> mean(rsquares01) - 40 
[1] 1.128996
> mean(rsquares001) - 40 
[1] 0.8238992
> mean(rsquares0001) - 40 
[1] -0.9681992
> mean(rsquares00001) - 40 
[1] -5.126225
> sd(rsquares01)/sqrt(simulations) # approximate standard error in estimate of bias
[1] 0.2329339

Główny wniosek, jaki z tego wyciągam, jest taki, że regresja krokowa nie jest z natury stronnicza w określonym kierunku. To powiedziawszy, będzie co najmniej nieco tendencyjne dla wszystkich oprócz jednej wartości p wejścia predyktora. Uważam @Peter Flom, że w prawdziwym świecie nie znamy procesu generowania danych. Wyobrażam sobie jednak, że bardziej szczegółowe badanie tego, jak zmienia się to odchylenie, n, alfa wejścia, procesy generowania danych i procedura regresji krokowej (np. Łącznie z przejściem wstecznym) może znacznie pomóc zrozumieć takie odchylenie.

Bibliografia

  • Harrell, FE (2001). Strategie modelowania regresji: z zastosowaniem modeli liniowych, regresji logistycznej i analizy przeżycia. Skoczek.
Jeromy Anglim
źródło
Nadal jest stronniczy (powiedziałbym), właśnie zmniejszyłeś uprzedzenie.
Jeremy Miles,
@JeremyMiles Tak. Ale nie jest on z natury stronniczy w określonym kierunku.
Jeromy Anglim
Byłbym bardzo zainteresowany, aby zobaczyć stanowisko @FrankHarrell w tej sprawie.
Glen_b
1
SW(p)R2ppSW(p)pSW(p)p
1
@ Whuber Poprawiłem ostatni akapit, aby, mam nadzieję, wyjaśnić kilka punktów, o których wspomniałeś.
Jeromy Anglim