Como corrigir em r: existem coeficientes de alias no modelo


Um erro que você pode encontrar no R é:

 Error in vive.default(model): there are aliased coefficients in the model

Esse erro normalmente ocorre quando existe multicolinearidade em um modelo de regressão. Ou seja, duas ou mais variáveis preditoras no modelo estão altamente (ou perfeitamente) correlacionadas.

Quando isso acontece, dizemos que uma variável é um “alias” de outra variável, o que causa problemas no ajuste de um modelo de regressão.

O exemplo a seguir mostra como corrigir esse erro na prática.

Como reproduzir o erro

Suponha que apliquemos o seguinte modelo de regressão em R:

 #make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2+x3)

Podemos usar a função vive() do pacote car para calcular os valores VIF para cada variável preditora no modelo para determinar se a multicolinearidade é um problema:

 library (car)

#calculate VIF values for predictor variables
lively(model)

Error in vive.default(model): there are aliased coefficients in the model

Recebemos um erro informando ” existem coeficientes de alias no modelo”.

Isso nos diz que duas ou mais variáveis preditoras no modelo estão perfeitamente correlacionadas.

Como corrigir o erro

Para determinar quais variáveis preditoras estão perfeitamente correlacionadas, podemos usar a função cor() para criar uma matriz de correlação para as variáveis:

 #place variables in data frame
df <- data. frame (x1, x2, x3, y)

#create correlation matrix for data frame
cor(df)

           x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000

Podemos ver que as variáveis x2 e x3 têm um coeficiente de correlação de 1. Isso nos diz que essas duas variáveis estão causando o erro porque estão perfeitamente correlacionadas.

Para corrigir esse erro, basta ajustar novamente o modelo de regressão e deixar de fora uma dessas duas variáveis.

Não importa qual variável omitimos, pois ambas fornecem exatamente as mesmas informações no modelo de regressão.

Para simplificar, vamos remover x3 e ajustar o modelo de regressão novamente:

 library (car)

#make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2)

#calculate VIF values for predictor variables in model
lively(model)

      x1 x2 
1.016364 1.016364 

Observe que desta vez não recebemos nenhum erro ao calcular os valores VIF para o modelo porque a multicolinearidade não é mais um problema.

Relacionado: Como calcular e interpretar valores VIF em R

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns no R:

Como reparar em R: a substituição tem comprimento zero
Como consertar em R: argumentos envolvem diferentes números de linhas
Como consertar em R: o argumento não é numérico nem lógico: return na

Add a Comment

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