Вам нужно подумать о том, что вы подразумеваете под «пределом». Существуют ограничения, например, когда у вас больше предикторов, чем случаев, вы сталкиваетесь с проблемами при оценке параметров (см. Небольшую симуляцию R в нижней части этого ответа).
Тем не менее, я думаю, вы говорите больше о мягких пределах, связанных со статистической мощью и хорошей статистической практикой. В этом случае язык «пределов» не совсем подходит. Скорее большие размеры выборки, как правило, делают более разумным иметь больше предикторов, и порог того, сколько предикторов является разумным, возможно, падает на континуум разумности. Обсуждение эмпирических правил для размера выборки может иметь значение для множественной регрессии , так как многие такие эмпирические правила ссылаются на количество предикторов.
Несколько баллов
- Если вас больше интересует общее предсказание, чем статистическая значимость отдельных предикторов, то, вероятно, разумно включить больше предикторов, чем если вас интересует статистическая значимость отдельных предикторов.
- Если вас больше интересует тестирование конкретной статистической модели, относящейся к вашему исследовательскому вопросу (например, как это принято во многих приложениях по общественным наукам), вероятно, у вас есть причины для включения определенных предикторов. Тем не менее, вы также можете иметь возможность избирательно выбирать, какие предикторы вы включаете (например, если у вас есть несколько переменных, которые измеряют похожую конструкцию, вы можете включить только одну из них). При проведении теоретического тестирования моделей существует множество вариантов, и решение о том, какие предикторы включить, предполагает тесную связь между вашей теорией и вопросом исследования.
- Я не часто вижу исследователей, использующих поправки Бонферрони, применяемые к тестам значимости коэффициентов регрессии. Одной из разумных причин этого может быть то, что исследователи больше заинтересованы в оценке общих свойств модели.
- Если вы заинтересованы в оценке относительной важности предикторов, я считаю полезным изучить как двумерные отношения между предиктором и результатом, так и взаимосвязь между предиктором и контролем результата для других предикторов. Если вы включаете много предикторов, часто более вероятно, что вы включаете предикторы, которые сильно взаимосвязаны. В таких случаях может быть полезна интерпретация как двумерных, так и модельных индексов важности, так как переменная, важная в двумерном смысле, может быть скрыта в модели другими коррелированными предикторами ( я более подробно расскажу об этом здесь со ссылками ).
Немного симуляции R
Я написал эту небольшую симуляцию, чтобы подчеркнуть связь между размером выборки и оценкой параметров при множественной регрессии.
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)
}
fitmodel
Функция принимает два аргумента n
для размера выборки и k
для числа предсказателей. Я не считаю эту константу предиктором, но она оценивается. Затем я генерирую случайные данные и подбираю регрессионную модель, предсказывающую переменную y из k
переменных предиктора, и возвращает соответствие.
Учитывая, что вы упомянули в своем вопросе, что вас интересует, является ли 10 предикторов слишком большим, следующие вызовы функций показывают, что происходит, когда размер выборки равен 9, 10, 11 и 12 соответственно. Т.е. размер выборки на единицу меньше числа предикторов, на два больше числа предикторов
summary(fitmodel(n=9, k=10))
summary(fitmodel(n=10, k=10))
summary(fitmodel(n=11, k=10))
summary(fitmodel(n=12, k=10))
> резюме (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
Размер выборки на единицу меньше количества предикторов. Можно оценить только 9 параметров, один из которых постоянный.
> резюме (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
Размер выборки соответствует количеству предикторов. Можно оценить только 10 параметров, один из которых постоянный.
> резюме (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
Размер выборки на один больше, чем количество предикторов. Все параметры оценены, включая постоянную.
> резюме (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
Размер выборки на два больше, чем количество предикторов, и, наконец, можно оценить соответствие всей модели.