Maximale Anzahl unabhängiger Variablen, die in eine Mehrfachregressionsgleichung eingegeben werden können

19

Was ist die Grenze für die Anzahl unabhängiger Variablen, die in eine Mehrfachregressionsgleichung eingegeben werden können? Ich habe 10 Prädiktoren, die ich im Hinblick auf ihren relativen Beitrag zur Ergebnisvariablen untersuchen möchte. Sollte ich eine Bonferroni-Korrektur verwenden, um mehrere Analysen anzupassen?

Melissa Duncombe
quelle

Antworten:

25

Sie müssen darüber nachdenken, was Sie unter einem "Limit" verstehen. Es gibt Grenzen, z. B. wenn Sie mehr Prädiktoren als Fälle haben, treten bei der Parameterschätzung Probleme auf (siehe die kleine R-Simulation am Ende dieser Antwort).

Ich stelle mir jedoch vor, Sie sprechen mehr über weiche Grenzen im Zusammenhang mit statistischer Aussagekraft und guter statistischer Praxis. In diesem Fall ist die Sprache der "Grenzen" nicht wirklich angemessen. Größere Stichprobengrößen machen es eher vernünftiger, mehr Prädiktoren zu haben, und die Schwelle, wie viele Prädiktoren vernünftig sind, liegt wohl in einem Kontinuum der Vernünftigkeit. Möglicherweise ist die Diskussion der Faustregeln für die Stichprobengröße in mehreren Regressionen relevant, da sich viele solcher Faustregeln auf die Anzahl der Prädiktoren beziehen.

Ein paar Punkte

  • Wenn Sie sich mehr mit der Gesamtvorhersage als mit der statistischen Signifikanz einzelner Prädiktoren befassen, ist es wahrscheinlich sinnvoll, mehr Prädiktoren einzubeziehen, als wenn Sie sich mit der statistischen Signifikanz einzelner Prädiktoren befassen.
  • Wenn Sie sich mehr mit dem Testen eines bestimmten statistischen Modells befassen, das sich auf Ihre Forschungsfrage bezieht (z. B. wie es in vielen sozialwissenschaftlichen Anwendungen üblich ist), haben Sie vermutlich Gründe, bestimmte Prädiktoren einzubeziehen. Möglicherweise haben Sie jedoch auch die Möglichkeit, selektiv zu bestimmen, welche Prädiktoren Sie einbeziehen (wenn Sie z. B. mehrere Variablen haben, die ein ähnliches Konstrukt messen, können Sie nur eine davon einbeziehen). Wenn Sie theoretische Modelltests durchführen, gibt es viele Möglichkeiten. Die Entscheidung, welche Prädiktoren einbezogen werden sollen, hängt eng mit Ihrer Theorie und Ihrer Forschungsfrage zusammen.
  • Ich sehe nicht oft Forscher, die Bonferroni-Korrekturen für Signifikanztests von Regressionskoeffizienten verwenden. Ein vernünftiger Grund dafür könnte sein, dass Forscher mehr daran interessiert sind, die Gesamteigenschaften des Modells zu bewerten.
  • Wenn Sie daran interessiert sind, die relative Bedeutung von Prädiktoren zu bewerten, finde ich es nützlich, sowohl die bivariate Beziehung zwischen Prädiktor und Ergebnis als auch die Beziehung zwischen Prädiktor und Ergebniskontrolle für andere Prädiktoren zu untersuchen. Wenn Sie viele Prädiktoren einbeziehen, ist es häufig wahrscheinlicher, dass Sie stark interkorrelierte Prädiktoren einbeziehen. In solchen Fällen kann die Interpretation sowohl des bivariaten als auch des modellbasierten Wichtigkeitsindex nützlich sein, da eine im bivariaten Sinne wichtige Variable in einem Modell möglicherweise von anderen korrelierten Prädiktoren verborgen wird ( ich werde hier mit Links darauf näher eingehen ).


Eine kleine R-Simulation

Ich habe diese kleine Simulation geschrieben, um die Beziehung zwischen Stichprobengröße und Parameterschätzung bei multipler Regression hervorzuheben.

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)
}

Die fitmodelFunktion akzeptiert zwei Argumente nfür die Stichprobengröße und kfür die Anzahl der Prädiktoren. Ich zähle die Konstante nicht als Prädiktor, aber sie wird geschätzt. Ich generiere dann Zufallsdaten und passe ein Regressionsmodell an, das eine Variable aus kPrädiktorvariablen vorhersagt , und gebe die Anpassung zurück.

Angenommen, Sie haben in Ihrer Frage erwähnt, dass Sie daran interessiert sind, ob 10 Prädiktoren zu viel sind, zeigen die folgenden Funktionsaufrufe, was passiert, wenn die Stichprobengröße 9, 10, 11 bzw. 12 beträgt. Das heißt, die Stichprobengröße ist eins weniger als die Anzahl der Prädiktoren bis zwei mehr als die Anzahl der Prädiktoren

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

> Zusammenfassung (Fitmodell (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 

Die Stichprobengröße liegt um eins unter der Anzahl der Prädiktoren. Es können nur 9 Parameter geschätzt werden, von denen einer die Konstante ist.

> Zusammenfassung (Fitmodell (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 

Die Stichprobengröße entspricht der Anzahl der Prädiktoren. Es können nur 10 Parameter geschätzt werden, von denen einer die Konstante ist.

> Zusammenfassung (Fitmodell (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 

Die Stichprobengröße ist um eins höher als die Anzahl der Prädiktoren. Alle Parameter werden einschließlich der Konstanten geschätzt.

> Zusammenfassung (Fitmodell (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 

Die Stichprobengröße ist zwei mehr als die Anzahl der Prädiktoren, und es ist schließlich möglich, die Anpassung des Gesamtmodells abzuschätzen.

Jeromy Anglim
quelle
Kann jemand bitte erklären, warum die Standardfehler im ersten Szenario (n = 9, k = 10) NA sind? Ich habe die Standardfehlerformel, sehe aber nicht, wie der Nenner 0 sein würde, damit wir NAs erhalten.
matsuo_basho
12

Ich betrachte dies oft vom Standpunkt, ob ein Modell, das mit einer bestimmten Anzahl von Parametern ausgestattet ist, wahrscheinlich Vorhersagen außerhalb der Stichprobe liefert, die so genau sind wie Vorhersagen, die auf der ursprünglichen Modellentwicklungsstichprobe gemacht wurden. Kalibrierungskurven, mittlere quadratische Fehler von X * Beta und Indizes für die prädiktive Diskriminierung sind einige der üblicherweise verwendeten Messgrößen. Hierher stammen einige der Faustregeln, z. B. die 15: 1-Regel (eine effektive Stichprobengröße von 15 pro untersuchtem oder geschätztem Parameter).

In Bezug auf die Multiplizität ist eine perfekte Anpassung für die Multiplizität unter der Annahme, dass das Modell gilt und die Verteilungsannahmen erfüllt sind, der globale Test, dass alle Betas (mit Ausnahme des Abschnitts) Null sind. Dies wird typischerweise unter Verwendung eines Wahrscheinlichkeitsverhältnisses oder eines F-Tests getestet.

Es gibt zwei allgemeine Ansätze für die Modellentwicklung, die in der Regel gut funktionieren. (1) Haben Sie eine angemessene Stichprobengröße und passen Sie sie dem gesamten vorgegebenen Modell an. (2) Verwenden Sie die bestrafte Maximalwahrscheinlichkeitsschätzung, um nur so viele effektive Freiheitsgrade in der Regression zuzulassen, wie die aktuelle Stichprobengröße unterstützt. [Eine schrittweise Variablenauswahl ohne Bestrafung sollte keine Rolle spielen, da dies bekanntermaßen nicht funktioniert.]

Frank Harrell
quelle
Basieren diese Faustregeln auf Annahmen über die Größe der wahren Regressionskoeffizienten und die Größe der Fehlervarianz? Würde ich zu Recht davon ausgehen, dass ein viel kleineres Verhältnis von Datenpunkten zu Parametern akzeptabel wäre, wenn die bekannte Fehlervarianz sehr gering wäre?
mark999
1
Das ist ein ausgezeichneter Punkt, den ich vernachlässigt habe. Die 15: 1-Regel gilt für die Signal-Rausch-Verhältnisse in den Biomedizin- und Sozialwissenschaften. Wenn Sie eine geringe Restvarianz haben, können Sie viel mehr Parameter genau abschätzen.
Frank Harrell
10

npmpmmnp

1mKpσ1/Log(p)σ1Xσ1p

gappy
quelle
6

Grundsätzlich ist die Anzahl der möglichen Prädiktoren per se unbegrenzt. Sie können im Prinzip 2 Milliarden "Betas" schätzen. In der Praxis ist es jedoch so, dass es sich ohne ausreichende Daten oder ohne ausreichende vorherige Informationen nicht als sehr fruchtbar erweisen wird. Es werden keine bestimmten Parameter sehr gut bestimmt, und Sie werden aus der Analyse nicht viel lernen.

Wenn Sie nicht über viele vorherige Informationen zu Ihrem Modell verfügen (Modellstruktur, Parameterwerte, Rauschen usw.), benötigen Sie die Daten, um diese Informationen bereitzustellen. Dies ist normalerweise die häufigste Situation, was Sinn macht, da Sie normalerweise einen guten Grund benötigen, um Daten über etwas zu sammeln (und Geld auszugeben), das Sie bereits gut kennen. Wenn dies Ihre Situation ist, besteht eine angemessene Grenze darin, eine große Anzahl von Beobachtungen pro Parameter durchzuführen. Sie haben 12 Parameter (10 Steigungs-Betas, 1 Achsenabschnitt und einen Rauschparameter), sodass bei mehr als 100 Beobachtungen Ihre Parameter gut genug bestimmt werden sollten, um einige Schlussfolgerungen ziehen zu können.

Aber es gibt keine "harten und schnellen" Regeln. Mit nur 10 Prädiktoren sollten Sie keine Probleme mit der Rechenzeit haben (wenn Sie dies tun, sollten Sie sich einen besseren Computer zulegen). Dies bedeutet in erster Linie, dass Sie nur mehr Arbeit erledigen müssen, da Sie elf Datendimensionen aufnehmen müssen, was die Visualisierung der Daten erschwert. Die Grundprinzipien der Regression mit nur einer abhängigen Variablen sind nicht wirklich so unterschiedlich.

Das Problem bei der Bonferroni-Korrektur besteht darin, dass Sie für eine sinnvolle Anpassung Ihres Signifikanzniveaus ohne Einbußen bei der Leistung die Hypothese, die Sie korrigieren, für die Unabhängigkeit benötigen (dh zu lernen, dass eine Hypothese wahr ist, sagt nichts darüber aus, ob eine andere Hypothese ist wahr). Dies gilt beispielsweise nicht für den Standard "t-Test" in der multiplen Regression für einen Koeffizienten von Null. Die Teststatistik hängt davon ab, was im Modell noch enthalten ist. Dies ist eine Umkehrung der Abhängigkeit der Hypothese. Oder häufiger gesagt: Die Stichprobenverteilung des t-Wertes unter der Bedingung, dass der i-te Prädiktor Null ist, hängt davon ab, welche anderen Parameter Null sind. Wenn Sie also die Bonferroni-Korrektur hier verwenden, erhalten Sie möglicherweise eine niedrigere "Gesamtsumme".

Wahrscheinlichkeitslogik
quelle