R - Análise de Covariância

Usamos a análise de regressão para criar modelos que descrevem o efeito da variação nas variáveis ​​preditoras na variável de resposta. Às vezes, se tivermos uma variável categórica com valores como Sim / Não ou Masculino / Feminino etc. A análise de regressão simples fornece vários resultados para cada valor da variável categórica. Nesse cenário, podemos estudar o efeito da variável categórica usando-a junto com a variável preditora e comparando as linhas de regressão para cada nível da variável categórica. Essa análise é denominada comoAnalysis of Covariance também chamado de ANCOVA.

Exemplo

Considere os R mtcars de conjunto de dados embutidos. Nele observamos que o campo "am" representa o tipo de transmissão (automática ou manual). É uma variável categórica com valores 0 e 1. O valor das milhas por galão (mpg) de um carro também pode depender dele além do valor dos cavalos de força ("hp").

Estudamos o efeito do valor de "am" na regressão entre "mpg" e "hp". Isso é feito usando oaov() função seguida por anova() função para comparar as regressões múltiplas.

Dados de entrada

Crie um quadro de dados contendo os campos "mpg", "hp" e "am" do conjunto de dados mtcars. Aqui, consideramos "mpg" como a variável de resposta, "hp" como a variável preditora e "am" como a variável categórica.

input <- mtcars[,c("am","mpg","hp")]
print(head(input))

Quando executamos o código acima, ele produz o seguinte resultado -

am   mpg   hp
Mazda RX4          1    21.0  110
Mazda RX4 Wag      1    21.0  110
Datsun 710         1    22.8   93
Hornet 4 Drive     0    21.4  110
Hornet Sportabout  0    18.7  175
Valiant            0    18.1  105

Análise ANCOVA

Criamos um modelo de regressão tendo "hp" como variável preditora e "mpg" como variável de resposta levando em consideração a interação entre "am" e "hp".

Modelo com interação entre variável categórica e variável preditora

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))

Quando executamos o código acima, ele produz o seguinte resultado -

Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4  77.391 1.50e-09 ***
am           1  202.2   202.2  23.072 4.75e-05 ***
hp:am        1    0.0     0.0   0.001    0.981    
Residuals   28  245.4     8.8                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Este resultado mostra que tanto os cavalos de potência quanto o tipo de transmissão têm efeito significativo nas milhas por galão, pois o valor de p em ambos os casos é menor que 0,05. Mas a interação entre essas duas variáveis ​​não é significativa, pois o valor p é maior que 0,05.

Modelo sem interação entre variável categórica e variável preditora

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp+am,data = input)
print(summary(result))

Quando executamos o código acima, ele produz o seguinte resultado -

Df  Sum Sq  Mean Sq   F value   Pr(>F)    
hp           1  678.4   678.4   80.15 7.63e-10 ***
am           1  202.2   202.2   23.89 3.46e-05 ***
Residuals   29  245.4     8.5                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Este resultado mostra que tanto os cavalos de potência quanto o tipo de transmissão têm efeito significativo nas milhas por galão, pois o valor de p em ambos os casos é menor que 0,05.

Comparando Dois Modelos

Agora podemos comparar os dois modelos para concluir se a interação das variáveis ​​é realmente in-significativa. Para isso usamos oanova() função.

# Get the dataset.
input <- mtcars

# Create the regression models.
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)

# Compare the two models.
print(anova(result1,result2))

Quando executamos o código acima, ele produz o seguinte resultado -

Model 1: mpg ~ hp * am
Model 2: mpg ~ hp + am
  Res.Df    RSS Df  Sum of Sq     F Pr(>F)
1     28 245.43                           
2     29 245.44 -1 -0.0052515 6e-04 0.9806

Como o valor p é maior que 0,05, concluímos que a interação entre os cavalos de potência e o tipo de transmissão não é significativa. Portanto, a quilometragem por galão dependerá de maneira semelhante dos cavalos de potência do carro, tanto no modo de transmissão automática quanto manual.