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 fitmodel
Funktion akzeptiert zwei Argumente n
für die Stichprobengröße und k
fü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 k
Prä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.