Este guia apresenta um exemplo de como efetuar uma regressão linear múltipla em R, incluindo:

  • Examinar os dados antes de ajustar o modelo
  • Ajustar o modelo
  • Verificação dos pressupostos do modelo
  • Interpretar os resultados do modelo
  • Avaliação da adequação do modelo
  • Utilizar o modelo para fazer previsões

Vamos lá!

Configuração

Para este exemplo, vamos utilizar o conjunto de dados incorporado no R mtcars que contém informações sobre vários atributos de 32 automóveis diferentes:

 #ver as primeiras seis linhas de  mtcars  head(mtcars) # mpg cyl disp hp drat wt qsec vs am gear carb #Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 #Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 #Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 #Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 #Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 #Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 

Neste exemplo, vamos construir um modelo de regressão linear múltipla que utiliza mpg como variável de resposta e disp , hp e rata como variáveis de previsão.

 #criar uma nova estrutura de dados que contenha apenas as variáveis que gostaríamos de utilizar para os dados <- mtcars[ , c("mpg", "disp", "hp", "drat")] #ver as primeiras seis linhas da nova estrutura de dados head(data) # mpg disp hp drat #Mazda RX4 21.0 160 110 3.90 #Mazda RX4 Wag 21.0 160 110 3.90 #Datsun 710 22.8 108 93 3.85 #Hornet 4 Drive 21.4 258 110 3.08 #Hornet Sportabout 18.7 360 175 3.15 #Valiant 18.1 225 105 2.76 

Examinar os dados

Antes de ajustarmos o modelo, podemos examinar os dados para os compreender melhor e também avaliar visualmente se a regressão linear múltipla pode ou não ser um bom modelo para ajustar a estes dados.

Em particular, precisamos de verificar se as variáveis preditoras têm um linear associação com a variável de resposta, o que indicaria que um modelo de regressão linear múltipla pode ser adequado.

Para o fazer, podemos utilizar o pares() para criar um gráfico de dispersão de todos os pares de variáveis possíveis:

 pairs(data, pch = 18, col = "steelblue") 

A partir deste gráfico de pares, podemos ver o seguinte:

  • mpg e disp parecem ter uma forte correlação linear negativa
  • mpg e hp parecem ter uma forte correlação linear positiva
  • mpg e rata parecem ter uma correlação linear negativa modesta

Note que também poderíamos usar o ggpairs() da função GGally para criar um gráfico semelhante que contenha os coeficientes de correlação linear reais para cada par de variáveis:

 #instalar e carregar o  GGally  library install.packages("GGally") library(GGally) #gerar o gráfico de pares ggpairs(data) 

Cada uma das variáveis preditoras parece ter uma correlação linear notável com a variável de resposta mpg e, por isso, vamos proceder ao ajuste do modelo de regressão linear aos dados.

Ajustar o modelo

A sintaxe básica para ajustar um modelo de regressão linear múltipla em R é a seguinte:

 lm(variável_resposta ~ variável_preditor1 + variável_preditor2 + ..., dados = dados) 

Utilizando os nossos dados, podemos ajustar o modelo utilizando o seguinte código:

 model <- lm(mpg ~ disp + hp + drat, data = data) 

Verificação dos pressupostos do modelo

Antes de procedermos à verificação dos resultados do modelo, é necessário verificar primeiro se os pressupostos do modelo são respeitados, nomeadamente o seguinte:

1) A distribuição dos resíduos do modelo deve ser aproximadamente normal.

Podemos verificar se este pressuposto é cumprido criando um histograma simples de resíduos:

 hist(resíduos(modelo), col = "steelblue") 

Embora a distribuição seja ligeiramente enviesada para a direita, não é suficientemente anormal para causar grandes preocupações.

2) A variância dos resíduos deve ser consistente para todas as observações.

A violação deste pressuposto é conhecida como heteroscedasticidade.

Para verificar se este pressuposto é cumprido, podemos criar um valor ajustado vs. gráfico residual:

 #criar valor ajustado vs gráfico residual plot(fitted(model), residuals(model)) #adicionar linha horizontal em 0 abline(h = 0, lty = 2) 

Podemos ver no gráfico que a dispersão tende a tornar-se um pouco maior para valores ajustados maiores, mas este padrão não é suficientemente extremo para causar demasiada preocupação.

Interpretação dos resultados do modelo

Depois de verificarmos que os pressupostos do modelo são suficientemente cumpridos, podemos ver o resultado do modelo utilizando a função resumo() função:

 summary(model) #Call: #lm(formula = mpg ~ disp + hp + drat, data = data) # #Residuals: # Min 1Q Median 3Q Max #-5.1225 -1.8454 -0.4456 1.1342 6.4958 # #Coefficients: # Estimate Std. Error t value Pr(>0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 ' ' 1 # #Erro padrão residual: 3,008 em 28 graus de liberdade #Múltiplo R-quadrado: 0,775, R-quadrado ajustado: 0,7509 #Estatística F: 32,15 em 3 e 28 DF, valor p: 3,28e-09 

A partir do resultado, podemos ver o seguinte:

  • A estatística F global do modelo é 32.15 e o valor p correspondente é 3.28e-09 Isto indica que o modelo global é estatisticamente significativo. Por outras palavras, o modelo de regressão no seu conjunto é útil.
  • disp é estatisticamente significativo ao nível de significância de 0,10. Em particular, o coeficiente do modelo de saída indica que um aumento de uma unidade em disp está associada a uma diminuição de -0,019 unidades, em média, em mpg , assumindo que hp e rata são mantidos constantes.
  • hp é estatisticamente significativo ao nível de significância de 0,10. Em particular, o coeficiente do modelo de saída indica que um aumento de uma unidade em hp está associado a uma diminuição de -0,031 unidades, em média, em mpg , assumindo que disp e rata são mantidos constantes.
  • rata é estatisticamente significativo ao nível de significância de 0,10. Em particular, o coeficiente do modelo de saída indica que um aumento de uma unidade em rata está associado a um aumento de 2,715 unidades, em média, em mpg , assumindo que disp e hp são mantidos constantes.

Avaliação da adequação do modelo

Para avaliar o quão "bom" é o modelo de regressão que se ajusta aos dados, podemos olhar para algumas métricas diferentes:

1. múltiplo R-quadrado

Um R-quadrado múltiplo de 1 indica uma relação linear perfeita, enquanto um R-quadrado múltiplo de 0 indica que não existe qualquer relação linear.

O R múltiplo é também a raiz quadrada do R-quadrado, que é a proporção da variância na variável de resposta que pode ser explicada pelas variáveis preditoras. Neste exemplo, o R-quadrado múltiplo é 0.775 Assim, o R-quadrado é 0,7752 = 0.601 Isto indica que 60.1% da variância em mpg pode ser explicado pelos factores de previsão do modelo.

Relacionadas: O que é um bom valor R-quadrado?

2. erro padrão residual

Este valor mede a distância média a que os valores observados se afastam da reta de regressão. Neste exemplo, os valores observados afastam-se em média de 3.008 unidades da reta de regressão .

Relacionadas: Compreender o erro padrão da regressão

Utilizar o modelo para fazer previsões

A partir do resultado do modelo, sabemos que a equação de regressão linear múltipla ajustada é a seguinte

mpg chapéu = -19,343 - 0,019*disp - 0,031*hp + 2,715*drat

Podemos utilizar esta equação para fazer previsões sobre o que mpg Por exemplo, podemos encontrar o valor previsto de mpg para um automóvel que tenha os seguintes atributos:

  • disp = 220
  • hp = 150
  • rata = 3
 #definir os coeficientes do modelo de saída intercept <- coef(summary(model))["(Intercept)", "Estimate"] disp <- coef(summary(model))["disp", "Estimate"] hp <- coef(summary(model))["hp", "Estimate"] drat <- coef(summary(model))["drat", "Estimate"] #utilizar os coeficientes do modelo para prever o valor de  mpg  interceção + disp*220 + hp*150 + drat*3 # 18,57373 

Para um automóvel com disp = 220, hp = 150, e rata = 3, o modelo prevê que o automóvel teria um mpg de 18.57373 .

Pode encontrar o código R completo utilizado neste tutorial aqui.