Você precisa pensar sobre o que você quer dizer com "limite". Existem limites, como quando você tem mais preditores do que casos, encontra problemas na estimativa de parâmetros (veja a pequena simulação R na parte inferior desta resposta).
No entanto, imagino que você esteja falando mais sobre limites suaves relacionados ao poder estatístico e às boas práticas estatísticas. Nesse caso, a linguagem dos "limites" não é realmente apropriada. Em vez disso, tamanhos de amostra maiores tendem a tornar mais razoável ter mais preditores e o limite de quantos preditores são razoáveis, sem dúvida, recai sobre um continuum de razoabilidade. Você pode achar relevante a discussão de regras práticas para o tamanho da amostra em regressão múltipla , pois muitas dessas regras referenciam o número de preditores.
Alguns pontos
- Se você está mais preocupado com a previsão geral do que com a significância estatística de preditores individuais, provavelmente é razoável incluir mais preditores do que com a significância estatística de preditores individuais.
- Se você está mais preocupado em testar um modelo estatístico específico relacionado à sua pergunta de pesquisa (por exemplo, como é comum em muitas aplicações de ciências sociais), presumivelmente você tem motivos para incluir preditores específicos. No entanto, você também pode ter oportunidades de ser seletivo em quais preditores você inclui (por exemplo, se você tiver várias variáveis que medem uma construção semelhante, poderá incluir apenas uma delas). Ao fazer testes de modelos baseados em teoria, existem muitas opções, e a decisão sobre quais preditores incluir envolve uma estreita conexão entre sua teoria e a questão da pesquisa.
- Não vejo frequentemente pesquisadores que usam correções de Bonferroni sendo aplicados a testes de significância de coeficientes de regressão. Uma razão razoável para isso pode ser que os pesquisadores estejam mais interessados em avaliar as propriedades gerais do modelo.
- Se você estiver interessado em avaliar a importância relativa dos preditores, acho útil examinar a relação bivariada entre o preditor e o resultado, bem como a relação entre o preditor e o controle de resultado para outros preditores. Se você incluir muitos preditores, é mais provável que você inclua preditores altamente correlacionados. Nesses casos, a interpretação dos índices de importância bivariados e baseados no modelo pode ser útil, pois uma variável importante no sentido bivariado pode estar oculta no modelo por outros preditores correlacionados ( eu detalho mais sobre isso aqui com links ).
Um pouco de simulação R
Escrevi esta pequena simulação para destacar a relação entre tamanho da amostra e estimativa de parâmetros em regressão múltipla.
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)
}
A fitmodel
função usa dois argumentos n
para o tamanho da amostra e k
para o número de preditores. Não estou contando a constante como preditor, mas é estimado. Em seguida, gera dados aleatórios e ajusta-se a um modelo de regressão que prevê uma variável a partir de k
variáveis preditoras e retorna o ajuste.
Como você mencionou na sua pergunta que estava interessado em saber se 10 preditores são demais, as seguintes chamadas de função mostram o que acontece quando o tamanho da amostra é 9, 10, 11 e 12, respectivamente. Ou seja, o tamanho da amostra é um a menos que o número de preditores e dois a mais que o número de preditores
summary(fitmodel(n=9, k=10))
summary(fitmodel(n=10, k=10))
summary(fitmodel(n=11, k=10))
summary(fitmodel(n=12, k=10))
> resumo (modelo de ajuste (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
O tamanho da amostra é um a menos que o número de preditores. Só é possível estimar 9 parâmetros, um dos quais é a constante.
> resumo (modelo de ajuste (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
O tamanho da amostra é igual ao número de preditores. Só é possível estimar 10 parâmetros, um dos quais é a constante.
> resumo (modelo de ajuste (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
O tamanho da amostra é um a mais que o número de preditores. Todos os parâmetros são estimados, incluindo a constante.
> resumo (modelo de ajuste (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
O tamanho da amostra é dois a mais que o número de preditores e, finalmente, é possível estimar o ajuste do modelo geral.