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