Como testar a multicolinearidade em r
Na análise de regressão, a multicolinearidade ocorre quando duas ou mais variáveis preditoras são altamente correlacionadas entre si, de modo que não fornecem informações únicas ou independentes no modelo de regressão.
Se o grau de correlação for alto o suficiente entre as variáveis preditoras, isso poderá causar problemas no ajuste e interpretação do modelo de regressão.
A maneira mais simples de detectar multicolinearidade em um modelo de regressão é calcular uma métrica conhecida como fator de inflação de variância, geralmente abreviado como VIF .
VIF mede a força da correlação entre variáveis preditoras em um modelo. Assume um valor entre 1 e infinito positivo.
Usamos as seguintes regras básicas para interpretar os valores VIF:
- VIF = 1: Não há correlação entre uma determinada variável preditora e qualquer outra variável preditora no modelo.
- VIF entre 1 e 5: Existe uma correlação moderada entre uma determinada variável preditora e outras variáveis preditoras no modelo.
- VIF > 5 : Existe uma forte correlação entre uma determinada variável preditora e outras variáveis preditoras no modelo.
O exemplo a seguir mostra como detectar multicolinearidade em um modelo de regressão em R calculando valores VIF para cada variável preditora no modelo.
Exemplo: teste de multicolinearidade em R
Suponha que temos o seguinte quadro de dados contendo informações sobre vários jogadores de basquete:
#create data frame df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86), points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19), assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5), rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7)) #view data frame df rating points assists rebounds 1 90 25 5 11 2 85 20 7 8 3 82 14 7 10 4 88 16 8 6 5 94 27 5 6 6 90 20 7 9 7 76 12 6 6 8 75 15 9 10 9 87 14 9 10 10 86 19 5 7
Suponha que queiramos ajustar um modelo de regressão linear múltipla usando pontuação como variável de resposta e pontos , assistências e rebotes como variáveis preditoras.
Para calcular o VIF para cada variável preditora no modelo, podemos usar a função vive() do pacote car :
library (car) #define multiple linear regression model model <- lm(rating ~ points + assists + rebounds, data=df) #calculate the VIF for each predictor variable in the model lively(model) points assists rebounds 1.763977 1.959104 1.175030
Podemos ver os valores VIF para cada uma das variáveis preditoras:
- pontos: 1,76
- assistências: 1,96
- rebotes: 1,18
Como cada um dos valores VIF das variáveis preditoras no modelo é próximo de 1, a multicolinearidade não é um problema no modelo.
Nota : Se a multicolinearidade for um problema no seu modelo, a solução mais rápida na maioria dos casos é remover uma ou mais variáveis altamente correlacionadas.
Muitas vezes, essa é uma solução aceitável porque as variáveis removidas são redundantes de qualquer maneira e adicionam poucas informações exclusivas ou independentes ao modelo.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como realizar regressão linear múltipla em R
Como criar um gráfico QQ em R
Como criar um gráfico residual em R