Como realizar regressão linear simples em r (passo a passo)


A regressão linear simples é uma técnica que podemos usar para compreender a relação entre uma única variável explicativa e uma única variável de resposta .

Resumindo, esta técnica encontra a linha que melhor “se ajusta” aos dados e assume a seguinte forma:

ŷ = b 0 + b 1 x

Ouro:

  • ŷ : O valor estimado da resposta
  • b 0 : A origem da linha de regressão
  • b 1 : A inclinação da linha de regressão

Esta equação pode ajudar-nos a compreender a relação entre a variável explicativa e a variável de resposta e (assumindo que seja estatisticamente significativa) pode ser usada para prever o valor de uma variável de resposta dado o valor da variável explicativa.

Este tutorial fornece uma explicação passo a passo de como realizar regressão linear simples em R.

Etapa 1: carregar dados

Para este exemplo, criaremos um conjunto de dados falso contendo as duas variáveis a seguir para 15 alunos:

  • Número total de horas estudadas para determinados exames
  • Resultado de exame

Tentaremos ajustar um modelo de regressão linear simples usando horas como variável explicativa e resultados de exames como variável resposta.

O código a seguir mostra como criar esse conjunto de dados falso em R:

 #create dataset
df <- data.frame(hours=c(1, 2, 4, 5, 5, 6, 6, 7, 8, 10, 11, 11, 12, 12, 14),
                 score=c(64, 66, 76, 73, 74, 81, 83, 82, 80, 88, 84, 82, 91, 93, 89))

#view first six rows of dataset
head(df)

  hours score
1 1 64
2 2 66
3 4 76
4 5 73
5 5 74
6 6 81

#attach dataset to make it more convenient to work with
attach(df)

Etapa 2: visualize os dados

Antes de ajustar um modelo de regressão linear simples, devemos primeiro visualizar os dados para entendê-los.

Primeiro, queremos ter certeza de que a relação entre horas e pontuação é aproximadamente linear, uma vez que esta é uma enorme suposição subjacente da regressão linear simples. Podemos criar um gráfico de dispersão simples para visualizar a relação entre as duas variáveis:

 scatter.smooth(hours, score, main=' Hours studied vs. Exam Score ')

Gráfico de dispersão para regressão linear simples em R

No gráfico podemos ver que a relação parece ser linear. À medida que o número de horas aumenta, a pontuação também tende a aumentar linearmente.

Depois podemos criar um boxplot para visualizar a distribuição dos resultados dos exames e verificar se há outliers . Por padrão, R define uma observação como outlier se for 1,5 vezes o intervalo interquartil acima do terceiro quartil (Q3) ou 1,5 vezes o intervalo interquartil abaixo do primeiro quartil (Q1).

Se uma observação for atípica, um pequeno círculo aparecerá no boxplot:

 boxplot(score) 

Boxplot para regressão linear simples em R

Não há pequenos círculos no boxplot, o que significa que não há valores discrepantes em nosso conjunto de dados.

Etapa 3: execute uma regressão linear simples

Depois de confirmarmos que a relação entre nossas variáveis é linear e não há outliers, podemos proceder ao ajuste de um modelo de regressão linear simples usando horas como variável explicativa e a pontuação como variável de resposta:

 #fit simple linear regression model
model <- lm(score~hours)

#view model summary
summary(model)

Call:
lm(formula = score ~ hours)

Residuals:
   Min 1Q Median 3Q Max 
-5,140 -3,219 -1,193 2,816 5,772 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 65,334 2,106 31,023 1.41e-13 ***
hours 1.982 0.248 7.995 2.25e-06 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.641 on 13 degrees of freedom
Multiple R-squared: 0.831, Adjusted R-squared: 0.818 
F-statistic: 63.91 on 1 and 13 DF, p-value: 2.253e-06

A partir do resumo do modelo, podemos ver que a equação de regressão ajustada é:

Pontuação = 65,334 + 1,982*(horas)

Isso significa que cada hora adicional estudada está associada a um aumento médio na pontuação do exame de 1.982 pontos. E o valor original de 65.334 nos indica a nota média esperada no exame para um aluno que estuda zero horas.

Também podemos usar essa equação para encontrar a pontuação esperada no exame com base no número de horas que um aluno estuda. Por exemplo, um aluno que estuda 10 horas deverá obter nota 85,15 no exame:

Pontuação = 65,334 + 1,982*(10) = 85,15

Veja como interpretar o restante do resumo do modelo:

  • Pr(>|t|): Este é o valor p associado aos coeficientes do modelo. Como o valor p para horas (2,25e-06) é significativamente menor que 0,05, podemos afirmar que existe uma associação estatisticamente significativa entre horas e pontuação .
  • Múltiplo R-quadrado: Este número nos diz que a porcentagem de variação nas notas dos exames pode ser explicada pelo número de horas estudadas. Em geral, quanto maior o valor de R ao quadrado de um modelo de regressão, melhor as variáveis explicativas são capazes de prever o valor da variável resposta. Nesse caso, 83,1% da variação nas notas pode ser explicada pelas horas estudadas.
  • Erro padrão residual: é a distância média entre os valores observados e a linha de regressão. Quanto menor este valor, mais uma linha de regressão é capaz de corresponder aos dados observados. Nesse caso, a pontuação média observada no exame diverge em 3.641 pontos da pontuação prevista pela reta de regressão.
  • Estatística F e valor p: A estatística F ( 63,91 ) e o valor p correspondente ( 2.253e-06 ) nos dizem a significância geral do modelo de regressão, ou seja, se as variáveis explicativas no modelo são úteis para explicar a variação . na variável de resposta. Como o valor p neste exemplo é inferior a 0,05, nosso modelo é estatisticamente significativo e as horas são consideradas úteis para explicar a variação da pontuação .

Etapa 4: criar gráficos residuais

Após ajustar o modelo de regressão linear simples aos dados, a etapa final é criar gráficos residuais.

Uma das principais suposições da regressão linear é que os resíduos de um modelo de regressão são distribuídos aproximadamente normalmente e são homocedásticos em cada nível da variável explicativa. Se estes pressupostos não forem cumpridos, os resultados do nosso modelo de regressão poderão ser enganadores ou pouco fiáveis.

Para verificar se essas suposições são atendidas, podemos criar os seguintes gráficos residuais:

Gráfico de resíduos versus valores ajustados: Este gráfico é útil para confirmar a homocedasticidade. O eixo x exibe os valores ajustados e o eixo y exibe os resíduos. Contanto que os resíduos pareçam estar distribuídos de forma aleatória e uniforme ao longo do gráfico em torno do valor zero, podemos assumir que a homocedasticidade não é violada:

 #define residuals
res <- resid(model)

#produce residual vs. fitted plot
plot(fitted(model), res)

#add a horizontal line at 0 
abline(0,0)

Gráfico residual em R para regressão linear simples

Os resíduos parecem estar espalhados aleatoriamente em torno de zero e não mostram nenhum padrão perceptível, portanto esta suposição é atendida.

Gráfico QQ: Este gráfico é útil para determinar se os resíduos seguem uma distribuição normal. Se os valores dos dados no gráfico seguirem uma linha aproximadamente reta em um ângulo de 45 graus, os dados serão distribuídos normalmente:

 #create QQ plot for residuals
qqnorm(res)

#add a straight diagonal line to the plot
qqline(res) 

Gráfico QQ normal em R

Os resíduos desviam-se um pouco da linha de 45 graus, mas não o suficiente para causar séria preocupação. Podemos assumir que a suposição de normalidade foi atendida.

Como os resíduos são normalmente distribuídos e homocedásticos, verificamos que os pressupostos do modelo de regressão linear simples são atendidos. Assim, a saída do nosso modelo é confiável.

O código R completo usado neste tutorial pode ser encontrado aqui .

Add a Comment

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