Tutorial — Ajuste e Interpretação de Regressão Linear com R

Exemplos de implementações simples e a estatística por trás do método.

História e Teoria
O termo “Regressão” surgiu em 1885 com o antropólogo, matemático e estatístico Francis Galton. As primeiras aplicações do método surgiram na Antropometria, ou seja, estudo das medidas e da matemática dos corpos humanos. Ao estudar as estaturas de pais e filhos, Galton observou que filhos de pais com altura baixa em relação à média tendem a ser mais altos que seus pais, e filhos de pais com estatura alta em relação à média tendem a ser mais baixos que seus pais, ou seja, as alturas dos seres humanos em geral tendem a
regredir à média.

Hoje, conhecemos a análise de regressão como uma técnica que permite estimar o comportamento médio de uma variável resposta em relação a uma ou mais variáveis explicativas. Por exemplo, estimar a altura média dos filhos a partir da altura de seus pais; estimar a produção média de uma lavoura a partir da quantidade de chuva, quantidade de adubo, etc.

É importante notar que, apesar de ser uma possibilidade, a análise de regressão não tem como objetivo obter estimativas pontuais de eventos futuros, mas sim de estimar médias condicionais e efeitos.

A Análise de Regressão é chamada de Simples, quando existe apenas uma variável resposta e uma variável explicativa, e Múltipla quando existe uma variável resposta e mais de uma explicativa. Casos em que existe mais de uma variável resposta são analisados pela regressão Multivariada.

Implementação
Vamos começar com um exemplo de Regressão Linear Simples:

O modelo de regressão linear simples consiste de 2 parâmetros, que correspondem aos coeficientes de uma equação da reta qualquer:
 E(Y) = α + βX
E(Y) representa a esperança, ou média, da variável resposta, e X representa a variável explicativa.
Os parâmetros α e β são estimados através do Método dos Mínimos Quadrados Ordinários. O objetivo deste método é obter uma reta que minimiza as distâncias entre os valores estimados e os valores observados.
O parâmetro α representa o intercepto da reta, onde ela cruza o eixo Y, ou seja, o valor de E(Y) para o qual X = 0. Este parâmetro só será interpretado na prática quando existir sentido real na variável explicativa assumindo valor zero.
Já o parâmetro β representa, neste caso, o efeito da variável explicativa sobre a variável resposta.

Usando o R:
A função que realiza o ajuste da reta ou modelo de regressão linear no R é a lm().
Neste exemplo, utilizaremos um conjunto de dados em que a variável resposta (Y) é o tempo de reação a um certo estímulo, e a variável explicativa (X) é a idade do indivíduo. (Fonte: Bussab, 1988)

No R, dados em tabelas são objetos do tipo data frame, nos quais cada coluna corresponde a uma variável e cada linha corresponde a uma observação.

É possível observar um crescimento nos valores da variável Tempo de acordo com o aumento dos valores da variável Idade. Portanto, esperamos que o efeito da Idade sobre o Tempo seja positivo: β > 0.

Ajuste do Modelo:

podemos simplesmente consultar as estimativas dos parâmetros:

E temos a equação da reta ajustada:
E(Y ) = 80.5 + 0.9 ∗ Idade
Porém, como nossos parâmetros são estimativas pontuais, é interessante testar a sua significância , ou seja, com que nível de confiânça eu consigo afirmar que este efeito estimado é diferente de zero.
O comando summary() poderá indicar se os seus parâmetros estimados são significativos ou não, ou seja, se é possível assumir que são diferentes de zero.

Essa função também retorna a medida R²(adjusted R-squared), que indica o quanto da variação presente nos dados está sendo explicada pela covariável.

Podemos observar neste output as estimativas dos parâmetros, o erro padrão associado a cada estimativa, uma estatística t e um p-valor associado, resultado do teste t utilizado para saber se as estimativas são realmente diferentes de zero. Quanto mais asteriscos presentes ao lado do efeito estimado, maior o nível de confiança com que podemos afirmar que o efeito não é nulo.
Quanto ao R², ao utilizar apenas uma variável é normal que o valor não seja extremamente alto. De qualquer maneira, na prática, 0.56 é um valor bastante razoável.

Qualidade do ajuste

A reta estimada claramente não coincidirá com todos os nossos dados. As medidas de distância entre os dados observados e a reta estimada são chamadas resíduos. Os resíduos são utilizados para avaliar o ajuste do modelo, e a qualidade das estimativas feitas a partir dele.

Condições para um Bom Ajuste de Modelo de Regressão Linear

Assim como qualquer método estatístico, a Regressão Linear, para ser corretamente utilizada, precisa que os dados estejam de acordo com algumas condições assumidas pelo modelo:
Normalidade dos Resíduos
É necessário que os resíduos gerados pelo ajuste da reta sigam distribuição Normal.
Homocedasticidade
É necessário que a variância de Y seja constante para todos os valores de X
Independência
É necessário que não exista estrutura de dependência entre os dados, para que os resíduos sejam independentes e identicamente distribuídos.

É possível avaliar se as suposições acima estão sendo cumpridas através da Análise de Resíduos , que pode ser feita graficamente através dos comandos:

No primeiro gráfico, temos os resíduos em função dos valores estimados. Podemos utilizar este gráfico para observar a independência e a homocedasticidade, se os resíduos se distribuem de maneira razoavelmente
aleatória e com mesma amplitude em torno do zero.

No segundo gráfico, podemos avaliar a normalidade dos resíduos. A linha diagonal pontilhada representa a distribuição normal teórica, e os pontos a distribuição dos resíduos observada. Espera-se que não exista grande fuga dos pontos em relação à reta teórica.

O terceiro gráfico pode ser avaliado da mesma maneira que o primeiro, observando a aleatoriedade e amplitude, desta vez dos resíduos padronizados. E o último gráfico permite visualizar as Distâncias de Cook
das observações, uma medida de influência que pode indicar a presença de outliers quando possui valor maior do que 1.

Quando a análise gráfica apresenta dúvidas, é possível também realizar testes estatísticos sobre os resíduos obtidos.

Teste de Bartlett

O Teste de Bartlett para Homogeneidade de Variâncias pode ser utilizado quando existe mais de uma observação para cada valor de X, e retorna uma estatística de teste K e um p-valor associado. Quando menor que 0.05 podemos rejeitar a hipótese de homogeneidade de variâncias ao nível de 95% de confiança

Neste caso, a hipótese não foi rejeitada, portanto é seguro assumir que os resíduos sejam homocedásticos.

Teste de Shapiro-Wilk

O Teste de Shapiro-Wilk para normalidade avalia a aderência dos resíduos à distribuição Normal. O p-valor se refere à hipótese de que os resíduos seguem de fato uma distribuição Normal, e essa hipótese é rejeitada, de modo geral, quando p é menor que 0.05

Neste caso, a hipótese não foi rejeitada e é seguro assumir que os resíduos tenham distribuição normal.

Interpretação do Modelo

Ajustado o modelo de forma satisfatória, agora podemos interpretá-lo.
Como na prática não existe sentido em assumir valor zero para a idade, o parâmetro α não é interpretado.
Já o parâmetro associado à variável idade, assumiu valor 0.9. Este valor representa o acréscimo no valor da variável Tempo, a cada unidade de acréscimo na variável Idade. Portanto, ao envelhecer 1 ano, os indivíduos
têm seu tempo de reação aumentado, em média, em 0.9 unidades. Ao envelhecer 2 anos, têm seu tempo de reação aumentado, em média, em 1.8 unidades, e assim por diante.

Modelo de Regressão Linear Múltipla

Agora vamos ajustar um modelo mais complexo, com mais de uma variável explicativa. Nossa variável resposta representa o calor liberado por grama de cimento, e as explicativas as quantidades de cada componente.
Nestes dados:

Y = heat evolved in calories per gram of cement X1 = tricalcium aluminate
X2 = tricalcium silicate
X3 = tetracalcium alumino ferrite
X4 = dicalcium silicate

(Fonte: Montgomery & Peck, 1992).

Vamos seguir basicamente o mesmo procedimento, mas neste caso é interessante fazer uma avaliação das variáveis que estarão no seu modelo. Por exemplo, podemos calcular as correlações entre as variáveis explicativas. Ter variáveis altamente correlacionadas no seu modelo, além de redundante, prejudica as estimativas dos parâmetros e pode levar a conclusões errôneas (matematicamente, o modelo fica instável).

Podemos observar que as variáveis X1 e X3 são altamente correlacionadas, assim como X2 e X4.

Neste caso, podemos utilizar um algoritmo de seleção de variáveis para manter no modelo aquelas que proporcionam o melhor ajuste. Aqui utilizaremos o algoritmo Stepwise.

No final deste output, temos o modelo recomendado pelo algoritmo. Vemos que ele manteve apenas as variáveis X1 e X2 como explicativas, provavelmente a contribuição das demais seria redundante por causa da
correlação.

Podemos analisar a qualidade do ajuste do modelo proposto pelo algorítmo.

Neste Summary, podemos observar que as variáveis incluídas no modelo foram extremamente significativas, e que sua contribuição chegou a explicar 97% da variabilidade presente nos dados (R² = 0.97).

Podemos perceber que a normalidade dos resíduos ficou por um fio, mas aceitável. Neste caso não é possível utilizar o teste de Bartlett para homogeneidade da variância, mas graficamente não há indícios de fuga dessa
suposição. Portanto, agora podemos interpretar o modelo obtido.

O intercepto, neste caso, representa a estimativa da média de Y quando ambas X1 e X2 assumem valor zero. O coeficiente de X1 representa o valor adicionado em E(Y), a cada unidade de aumento em X1, mantendo fixo o valor de X2. Da mesma maneira, o coeficiente de X2 representa o valor adicionado em E(Y) a cada unidade de aumento em X2, mantendo fixo o valor de X1.

Quando a análise de resíduos revela que o modelo utilizado não se ajusta aos dados de maneira satisfatória, existem estratégias que podem ser utilizadas para melhorar o ajuste:

Transformação de variáveis: Aplicar alguma função em Y, como logarítmo ou raiz quadrada.
Adição de termo quadrático:
Adição de interação entre variáveis: X1*X2
Escolha de outro tipo de modelo linear: polinomial, segmentado, de efeitos aleatórios
Escolha de outro tipo de modelo não necessariamente linear: GLMs, modelos não-lineares

Todas essas estratégias podem ser facilmente utilizadas usando o R!

Se tiver interesse em saber mais sobre essas estratégias, visite o meu linkedin e sugira um próximo artigo!
Boa sorte na sua aventura de modelagem de dados!