Maksymalna liczba zmiennych niezależnych, które można wprowadzić do równania regresji wielokrotnej

19

Jaki jest limit liczby zmiennych niezależnych, które można wprowadzić w równaniu regresji wielokrotnej? Mam 10 predyktorów, które chciałbym zbadać pod kątem ich względnego udziału w zmiennej wyniku. Czy powinienem zastosować korekcję Bonferroniego, aby dostosować się do wielu analiz?

Melissa Duncombe
źródło

Odpowiedzi:

25

Musisz pomyśleć o tym, co rozumiesz przez „limit”. Istnieją ograniczenia, na przykład gdy masz więcej predyktorów niż przypadków, napotykasz problemy w szacowaniu parametrów (patrz mała symulacja R na dole tej odpowiedzi).

Jednak wyobrażam sobie, że mówisz więcej o miękkich limitach związanych z mocą statystyczną i dobrą praktyką statystyczną. W tym przypadku język „limitów” nie jest właściwie odpowiedni. Większe rozmiary prób raczej sprawiają, że rozsądniejsze jest posiadanie większej liczby predyktorów, a próg określający liczbę predyktorów jest prawdopodobnie kontynuacją racjonalności. Omówienie ogólnych zasad dotyczących wielkości próby w regresji wielokrotnej może okazać się istotne, ponieważ wiele takich zasad odnosi się do liczby predyktorów.

Kilka punktów

  • Jeśli chodzi o bardziej ogólne przewidywanie niż o istotność statystyczną poszczególnych predyktorów, prawdopodobnie uzasadnione jest włączenie większej liczby predyktorów niż w przypadku istotności statystycznej poszczególnych predyktorów.
  • Jeśli bardziej interesuje Cię testowanie konkretnego modelu statystycznego, który odnosi się do twojego pytania badawczego (np. Jak to jest często w wielu aplikacjach nauk społecznych), prawdopodobnie masz powody, aby uwzględnić konkretne predyktory. Jednak możesz również mieć możliwość wybiórczego uwzględnienia predyktorów (np. Jeśli masz wiele zmiennych, które mierzą podobny konstrukt, możesz uwzględnić tylko jedną z nich). Podczas testowania modeli opartych na teorii istnieje wiele możliwości wyboru, a decyzja o tym, które predyktory mają zostać uwzględnione, wiąże się z bliskim powiązaniem między twoją teorią a pytaniem badawczym.
  • Często nie widzę, by badacze stosujący poprawki Bonferroniego stosowali się do testów istotności współczynników regresji. Jednym z uzasadnionych powodów tego może być fakt, że badacze są bardziej zainteresowani oceną ogólnych właściwości modelu.
  • Jeśli jesteś zainteresowany oceną względnej ważności predyktorów, uważam, że przydatne jest zbadanie zarówno dwuwymiarowej zależności między predyktorem a wynikiem, jak również relacji między predyktorem a kontrolą wyników dla innych predyktorów. Jeśli uwzględnisz wiele predyktorów, często bardziej prawdopodobne jest, że uwzględnisz predyktory, które są ze sobą ściśle powiązane. W takich przypadkach interpretacja wskaźników ważności zarówno dwuwymiarowych, jak i modelowych może być użyteczna, ponieważ zmienna ważna w sensie dwuwariantowym może być ukryta w modelu przez inne skorelowane predyktory ( szerzej omawiam to tutaj z linkami ).


Trochę symulacji R.

Napisałem tę małą symulację, aby podkreślić związek między wielkością próbki a estymacją parametru w regresji wielokrotnej.

set.seed(1)

fitmodel <- function(n, k) {
  # n: sample size
  # k: number of predictors
  # return linear model fit for given sample size and k predictors
  x <- data.frame(matrix( rnorm(n*k), nrow=n))
  names(x) <- paste("x", seq(k), sep="")
  x$y <- rnorm(n)  
  lm(y~., data=x)
}

fitmodelFunkcja przyjmuje dwa argumenty ndla wielkości próby i kdla liczby predyktorów. Nie liczę stałej jako predyktora, ale jest szacowana. Następnie generuję losowe dane i dopasowuję model regresji przewidujący zmienną ze kzmiennych predykcyjnych i zwraca dopasowanie.

Biorąc pod uwagę, że w swoim pytaniu wspomniałeś, że jesteś zainteresowany tym, czy 10 predyktorów to za dużo, poniższe wywołania funkcji pokazują, co dzieje się, gdy wielkość próby wynosi odpowiednio 9, 10, 11 i 12. To znaczy, wielkość próby jest o jeden mniejsza niż liczba predyktorów do dwóch więcej niż liczba predyktorów

summary(fitmodel(n=9, k=10))
summary(fitmodel(n=10, k=10))
summary(fitmodel(n=11, k=10))
summary(fitmodel(n=12, k=10))

> podsumowanie (fitmodel (n = 9, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 9 residuals are 0: no residual degrees of freedom!

Coefficients: (2 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.31455         NA      NA       NA
x1           0.34139         NA      NA       NA
x2          -0.45924         NA      NA       NA
x3           0.42474         NA      NA       NA
x4          -0.87727         NA      NA       NA
x5          -0.07884         NA      NA       NA
x6          -0.03900         NA      NA       NA
x7           1.08482         NA      NA       NA
x8           0.62890         NA      NA       NA
x9                NA         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 8 and 0 DF,  p-value: NA 

Rozmiar próbki jest o jeden mniejszy niż liczba predyktorów. Można oszacować tylko 9 parametrów, z których jeden jest stały.

> podsumowanie (fitmodel (n = 10, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1724         NA      NA       NA
x1           -0.3615         NA      NA       NA
x2           -0.4670         NA      NA       NA
x3           -0.6883         NA      NA       NA
x4           -0.1744         NA      NA       NA
x5           -1.0331         NA      NA       NA
x6            0.3886         NA      NA       NA
x7           -0.9886         NA      NA       NA
x8            0.2778         NA      NA       NA
x9            0.4616         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 9 and 0 DF,  p-value: NA 

Wielkość próby jest taka sama jak liczba predyktorów. Można oszacować tylko 10 parametrów, z których jeden jest stały.

> podsumowanie (fitmodel (n = 11, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 11 residuals are 0: no residual degrees of freedom!

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.9638         NA      NA       NA
x1           -0.8393         NA      NA       NA
x2           -1.5061         NA      NA       NA
x3           -0.4917         NA      NA       NA
x4            0.3251         NA      NA       NA
x5            4.4212         NA      NA       NA
x6            0.7614         NA      NA       NA
x7           -0.4195         NA      NA       NA
x8            0.2142         NA      NA       NA
x9           -0.9264         NA      NA       NA
x10          -1.2286         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 10 and 0 DF,  p-value: NA 

Rozmiar próbki jest o jeden większy niż liczba predyktorów. Wszystkie parametry są szacowane łącznie ze stałą.

> podsumowanie (fitmodel (n = 12, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
        1         2         3         4         5         6         7         8         9        10        11 
 0.036530 -0.042154 -0.009044 -0.117590  0.171923 -0.007976  0.050542 -0.011462  0.010270  0.000914 -0.083533 
       12 
 0.001581 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.14680    0.11180   1.313   0.4144  
x1           0.02498    0.09832   0.254   0.8416  
x2           1.01950    0.13602   7.495   0.0844 .
x3          -1.76290    0.26094  -6.756   0.0936 .
x4           0.44832    0.16283   2.753   0.2218  
x5          -0.76818    0.15651  -4.908   0.1280  
x6          -0.33209    0.18554  -1.790   0.3244  
x7           1.62276    0.21562   7.526   0.0841 .
x8          -0.47561    0.18468  -2.575   0.2358  
x9           1.70578    0.31547   5.407   0.1164  
x10          3.25415    0.46447   7.006   0.0903 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.2375 on 1 degrees of freedom
Multiple R-squared: 0.995,  Adjusted R-squared: 0.9452 
F-statistic: 19.96 on 10 and 1 DF,  p-value: 0.1726 

Wielkość próby jest o dwa razy większa niż liczba predyktorów, i wreszcie można oszacować dopasowanie całego modelu.

Jeromy Anglim
źródło
Czy ktoś może wyjaśnić, dlaczego standardowe błędy w pierwszym scenariuszu (n = 9, k = 10) są NA? Mam standardową formułę błędu, ale nie widzę, jak mianownik będzie wynosił 0, abyśmy mogli uzyskać NA.
matsuo_basho
12

Często patrzę na to z punktu widzenia tego, czy model wyposażony w pewną liczbę parametrów może dać prognozy poza próbą, które są tak dokładne, jak prognozy dokonane na oryginalnej próbce rozwoju modelu. Krzywe kalibracyjne, średnie kwadratowe błędy X * Beta i wskaźniki dyskryminacji predykcyjnej są niektórymi z typowo stosowanych miar. Stąd pochodzą niektóre podstawowe zasady, takie jak zasada 15: 1 (efektywny rozmiar próbki 15 na badany lub szacowany parametr).

Jeśli chodzi o mnogość, idealne dopasowanie mnogości, przy założeniu, że model utrzymuje się i założenia dystrybucyjne są spełnione, jest globalnym testem, że wszystkie bety (inne niż punkt przecięcia) są zerowe. Zazwyczaj jest to testowane przy użyciu współczynnika wiarygodności lub testu F.

Istnieją dwa ogólne podejścia do opracowywania modeli, które zwykle działają dobrze. (1) Mają odpowiednią wielkość próby i pasują do całego wcześniej określonego modelu, i (2) zastosowały karane oszacowanie maksymalnego prawdopodobieństwa, aby umożliwić tylko tyle skutecznych stopni swobody w regresji, ile będzie wspierać obecna wielkość próby. [Krokowy wybór zmiennych bez kary nie powinien odgrywać żadnej roli, ponieważ wiadomo, że nie działa.]

Frank Harrell
źródło
Czy te podstawowe zasady opierają się na założeniach dotyczących wielkości rzeczywistych współczynników regresji i wielkości wariancji błędu? Czy miałbym rację, sądząc, że gdyby wariancja błędu była bardzo mała, akceptowalny byłby znacznie mniejszy stosunek punktów danych do parametrów?
mark999
1
To doskonały punkt, o którym nie wspomniałem. Reguła 15: 1 dotyczy rodzajów stosunku sygnału: szumu w naukach biomedycznych i społecznych. Gdy masz małą wariancję resztkową, możesz dokładnie oszacować wiele innych parametrów.
Frank Harrell,
10

npmpmmnp

1mK.pσ1/log(p)σ1Xσ1p

niezadowolony
źródło
6

Zasadniczo nie ma limitu per se, ile możesz mieć predyktorów. Zasadniczo można oszacować 2 miliardy „bet”. Ale w praktyce dzieje się tak, że bez wystarczających danych lub wystarczających wcześniejszych informacji nie okaże się to bardzo owocnym ćwiczeniem. Żadne konkretne parametry nie zostaną określone bardzo dobrze i nie nauczysz się wiele z analizy.

Teraz, jeśli nie masz wielu wcześniejszych informacji o swoim modelu (struktura modelu, wartości parametrów, hałas itp.), Będziesz potrzebować danych, aby podać te informacje. Jest to zwykle najczęstsza sytuacja, która ma sens, ponieważ zwykle potrzebujesz całkiem dobrego powodu, aby zbierać dane (i wydawać $$$) na temat czegoś, co już dość dobrze znasz. Jeśli taka jest Twoja sytuacja, rozsądnym ograniczeniem jest posiadanie dużej liczby obserwacji na parametr. Masz 12 parametrów (10 nachyleń bety, 1 punkt przecięcia i parametr hałasu), więc wszystko na ponad 100 obserwacjach powinno być w stanie określić twoje parametry wystarczająco dobrze, aby móc wyciągnąć pewne wnioski.

Ale nie ma „twardych i szybkich” zasad. Mając tylko 10 predyktorów, nie powinieneś mieć problemów z czasem obliczeniowym (jeśli tak, to uzyskaj lepszy komputer). Oznacza to głównie wykonanie większej ilości pracy, ponieważ masz 11 wymiarów danych do zaabsorbowania - co utrudnia wizualizację danych. Podstawowe zasady regresji z tylko 1 zmienną zależną tak naprawdę nie różnią się tak bardzo.

Problem z korektą Bonferroniego polega na tym, że aby był to rozsądny sposób dostosowania poziomu istotności bez poświęcania zbyt dużej mocy, potrzebujesz hipotezy, którą korygujesz, aby być niezależnym (tj. Poznanie, że jedna hipoteza jest prawdziwa, nie mówi ci nic o tym, czy inna hipoteza jest prawdziwa). Nie jest to prawdą w przypadku standardowego „testu t” w regresji wielokrotnej, dla którego na przykład współczynnik równy jest zero. Statystyka testowa zależy od tego, co jeszcze w modelu - co jest okrągłym sposobem stwierdzenia, że ​​hipoteza jest zależna. Lub, częstszym sposobem powiedzenia tego jest to, że rozkład próbkowania wartości t uwarunkowany zerowym predyktorem i zależy od tego, jakie inne parametry są zerowe. Tak więc użycie korekcji bonferroni tutaj może faktycznie dać niższą „ogólną”

prawdopodobieństwo prawdopodobieństwa
źródło