Número máximo de variáveis ​​independentes que podem ser inseridas em uma equação de regressão múltipla


19

Qual é o limite para o número de variáveis ​​independentes que podemos inserir em uma equação de regressão múltipla? Eu tenho 10 preditores que gostaria de examinar em termos de sua contribuição relativa à variável resultado. Devo usar uma correção bonferroni para ajustar para várias análises?

Respostas:


25

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 fitmodelfunção usa dois argumentos npara o tamanho da amostra e kpara 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 kvariá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.


Alguém pode explicar por que os erros padrão no primeiro cenário (n = 9, k = 10) são NA? Eu tenho a fórmula de erro padrão, mas não vejo como o denominador seria 0 para obter NAs.
Matsuo_basho

12

Eu olho frequentemente para isso do ponto de vista de se um modelo equipado com um certo número de parâmetros provavelmente produzirá previsões fora da amostra tão precisas quanto as previsões feitas na amostra de desenvolvimento do modelo original. Curvas de calibração, erros quadráticos médios de X * Beta e índices de discriminação preditiva são algumas das medidas normalmente usadas. É daí que algumas regras básicas, como a regra 15: 1 (tamanho efetivo da amostra de 15 por parâmetro examinado ou estimado).

Em relação à multiplicidade, um ajuste perfeito para a multiplicidade, assumindo que o modelo se mantém e as premissas distributivas sejam atendidas, é o teste global de que todos os betas (exceto a interceptação) são zero. Isso geralmente é testado usando uma razão de verossimilhança ou um teste F.

Existem duas abordagens gerais para o desenvolvimento de modelos que tendem a funcionar bem. (1) Tenha um tamanho de amostra adequado e ajuste todo o modelo pré-especificado; e (2) usei a estimativa de probabilidade máxima penalizada para permitir apenas quantos graus efetivos de liberdade na regressão o tamanho atual da amostra suportar. [A seleção gradual de variáveis ​​sem penalização não deve desempenhar nenhum papel, pois é conhecido por não funcionar.]


Essas regras práticas são baseadas em suposições sobre o tamanho dos coeficientes de regressão verdadeiros e o tamanho da variação do erro? Eu estaria certo ao pensar que se a variação de erro fosse muito pequena, uma proporção muito menor de pontos de dados para parâmetros seria aceitável?
mark999

1
Esse é um ponto excelente que deixei de mencionar. A regra 15: 1 é para os tipos de relações sinal: ruído observadas nas ciências biomédicas e sociais. Quando você tem uma baixa variação residual, é possível estimar muitos outros parâmetros com precisão.
Frank Harrell


6

Em princípio, não há limite em si para quantos preditores você pode ter. Você pode estimar 2 bilhões de "betas" em princípio. Mas o que acontece na prática é que, sem dados suficientes ou informações prévias suficientes, isso não será um exercício muito proveitoso. Nenhum parâmetro específico será determinado muito bem e você não aprenderá muito com a análise.

Agora, se você não tiver muitas informações anteriores sobre o seu modelo (estrutura do modelo, valores de parâmetros, ruído etc.), precisará dos dados para fornecer essas informações. Geralmente, essa é a situação mais comum, o que faz sentido, porque geralmente você precisa de um bom motivo para coletar dados (e gastar $$$) sobre algo que você já conhece muito bem. Se essa for a sua situação, um limite razoável é ter um grande número de observações por parâmetro. Você tem 12 parâmetros (10 declives betas, 1 intercepto e um parâmetro de ruído); portanto, qualquer coisa acima de 100 observações deve poder determinar seus parâmetros suficientemente bem para poder tirar algumas conclusões.

Mas não há regras "rígidas e rápidas". Com apenas 10 preditores, você não deve ter problemas com o tempo de computação (obtenha um computador melhor, se precisar). Significa principalmente fazer mais trabalho, porque você tem 11 dimensões de dados para absorver - dificultando a visualização dos dados. Os princípios básicos da regressão com apenas uma variável dependente não são realmente tão diferentes.

O problema com a correção bonferroni é que, para que seja uma maneira razoável de ajustar seu nível de significância sem sacrificar muito poder, você precisa da hipótese que está corrigindo para ser independente (ou seja, aprender que uma hipótese é verdadeira não diz nada sobre se outra hipótese é verdadeira). Isso não é verdade para o "teste t" padrão em regressão múltipla para um coeficiente que é zero, por exemplo. A estatística do teste depende do que mais no modelo - que é uma maneira indireta de dizer que as hipóteses são dependentes. Ou, uma maneira mais freqüente de dizer isso é que a distribuição amostral do valor t condicional ao i-ésimo preditor é zero depende de quais outros parâmetros são zero. Portanto, o uso da correção bonferroni aqui pode estar na verdade fornecendo um "total" mais baixo

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.