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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *