\(X_1, X_2, \dots X_n\) são variáveis explicativas (preditores).
\(\beta_0, \beta_1, \dots \beta_n\) são os coeficientes associados às variáveis.
\(\varepsilon\) é o componente de erro aleatório.
Regressão Linear Múltipla
O conceito geométrico da regressão linear múltipla é o mesmo da regressão linear simples. Entretanto, deixamos de buscar por uma reta que minimiza os erros para buscar um plano.
Como os conceitos são bastante similares, aproveitaremos praticamente todo o conhecimento dos modelos simples nos modelos múltiplos.
Estimação dos Coeficientes
Assim como na RLS, é necessário estimar os coeficientes \(\hat{\beta_0}, \hat{\beta_1}, \dots \hat{\beta_n}\) associados ao modelo de regressão múltipla.
Entretanto, apesar de similar aos cálculos da RLS, trata-se de um cálculo matricial avançado, que não abordaremos nesse curso. Na forma matricial, a matriz de coeficientes é estimada pela expressão a seguir:
\[
\hat{\mathbf{\beta}} = (X'X)^{-1}X'Y
\]
Em que
X - matriz de variáveis explicativas
Y - Vetor da variável resposta
Modelo Ajustado
Após a estimação dos coeficientes, assim como na RLS, obtemos um modelo ajustado, dado por:
Para uma melhor compreensão, vamos efetuar o ajuste de um modelo de regressão linear múltipla.
Exemplo - Modelagem do Peso
Vamos novamente tentar modelar o peso com base em algumas caracerísticas. Como vimos, a altura explica apenas 27% da variação do peso. Além da altura, vamos agregar novas variáveis ao modelo:
idade
peitoral
abdomen
Podemos verificar a relação entre o peso e essas variáveis da mesma forma que fizemos com a altura, usando o diagrama de dispersão e o coeficiente de correlação.
Exemplo - Modelagem do Peso
#Peso e altura plot(x = gordura$altura, y = gordura$peso, main ="Peso x Altura")
cor(x = gordura$peso, y = gordura$altura)
[1] 0.512913
Exemplo - Modelagem do Peso
#Peso e idadeplot(x = gordura$idade, y = gordura$peso, main ="Peso x Idade")
cor(x = gordura$idade, y = gordura$peso)
[1] -0.01605487
Exemplo - Modelagem do Peso
#Peso e Peitoralplot(x = gordura$peitoral, y = gordura$peso, main ="Peso x Peitoral")
cor(x = gordura$peitoral, y = gordura$peso)
[1] 0.8912862
Exemplo - Modelagem do Peso
#Peso e Abdomenplot(x = gordura$abdomen, y = gordura$peso, main ="Peso x Abdomen")
cor(x = gordura$abdomen, y = gordura$peso)
[1] 0.8737351
Exemplo - Modelagem do Peso
Os gráficos e coeficientes de correlação indicam que:
Peso e altura possuem relação linear, correlação moderada e positiva.
Peso e idade apresentam uma relação linear, mas apresentam correlação fraca e negativa.
Peso e peitoral possuem relação linear, correlação forte e positiva.
Peso e abdomen possuem relação linear, correlação forte e positiva.
Apesar da idade não apresentar correlação, para fins didáticos, vamos incluí-la em nosso modelo. Observe que nesse caso, não há sentido prático em incluir tal variável no modelo, pois a correlação entre elas é praticamente nula.
Ajuste do modelo de Regressão Linear Múltipla no R
O ajuste de um modelo de Regressão Linear Múltipla acontece da mesma forma que na Regressão Linear Simples, por meio da função lm().
A diferença está apenas na fórmula. Devemos somar as variáveis explicativas após o sinal de til (~).
Interpretação do modelo de Regressão Linear Múltipla
Agora que obtivemos nosso modelo, podemos interpretar os coeficientes. Na regressão linear múltipla, existem pequenas diferenças na interpretação:
O coeficiente \(\beta_0\) geralmente não é interpretado, pois ele seria válido quando os valores de todas as variáveis fossem nulos, o que raramente ocorre.
Os demais coeficientes são interpretados da mesma forma, mas com uma ressalva: fixados os valores das demais variáveis.
Por exemplo, ao análisar o coeficiente da altura, consideramos que não há variação nas demais variáveis.
Esse procedimento permite avaliar a influência da variável de forma isolada.
Vamos agora interpretar nosso modelo.
Interpretação do modelo de Regressão Linear Múltipla
O acréscimo de 1cm na altura, fixadas as demais variáveis, aumenta em média 0,55kg de peso.
O acréscimo de 1 ano na idade, fixadas as demais variáveis, reduz em média 0,13kg de peso. Um efeito bastante discreto, dada a escala da idade.
O acréscimo de 1cm no peitoral, fixadas as demais variáveis, aumenta em média 0,66kg de peso.
O acréscimo de 1cm no abdomen, fixadas as demais variáveis, aumenta em média 0,54kg de peso.
Interpretação do modelo de Regressão Linear Múltipla
Vamos estimar o peso de um adulto dessa população com as seguintes medidas:
Altura: 170cm
Idade: 28 anos
Peitoral: 98cm
Abdomen: 88cm
#Estimativa de peso-128.0529+0.5504*170-0.1280*28+0.6562*98+0.5443*88
[1] 74.1371
Um adulto dessa população, com tais características, pesaria, em média, 74,13kg.
Requisitos do Modelo de Regressão Linear
Com a inclusão de mais variáveis, um novo requisito é adicionado na análise da adequação do modelo:
A relação entre as variáveis explicativas e a resposta deve ser linear.
Os resíduos devem ser independentes.
Os resíduos devem seguir distribuição normal com média zero e variância constante.
As variáveis respostas não podem apresentar relação linear entre si.
Esse novo requisito é chamado de ausência demulticolinearidade. Para verificá-lo, basta avaliar as correlações entre as variáveis explicativas, 2 a 2.
Adequação do Modelo
Assim como na RLS, dado que os pressupostos apresentados foram atendidos, podemos verificar a adequação do modelo de duas formas:
Teste de Hipóteses para os coeficientes
Análise do Coeficiente de Determinação (\(R^2\)).
O teste de hipóteses garante que os coeficientes \(\beta_0\) e \(\beta_1\) estimados são significativos, enquanto o coeficiente de determinação serve como métrica para verificar o quando da variabilidade dos dados é explicada pelo modelo.
Vamos verificar nosso modelo. Utilizaremos novamente a função summary
Adequação do Modelo
Vamos atribuir nosso modelo a um objeto e imprimir em tela seu resumo:
#Ajuste e atribuição do modelo de regressão linear múltiplomodelo2 <-lm(peso ~ altura + idade + peitoral + abdomen, data = gordura)#Resumo do modelosummary(modelo2)
Call:
lm(formula = peso ~ altura + idade + peitoral + abdomen, data = gordura)
Residuals:
Min 1Q Median 3Q Max
-9.2082 -1.6940 -0.0701 1.7902 9.8063
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -128.05286 5.71894 -22.391 < 2e-16 ***
altura 0.55044 0.03109 17.703 < 2e-16 ***
idade -0.12795 0.01647 -7.767 2.2e-13 ***
peitoral 0.65618 0.05747 11.417 < 2e-16 ***
abdomen 0.54427 0.04627 11.762 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.033 on 245 degrees of freedom
Multiple R-squared: 0.9398, Adjusted R-squared: 0.9388
F-statistic: 956.7 on 4 and 245 DF, p-value: < 2.2e-16
Adequação do Modelo
No slide anterior verificamos que:
Todos os coeficientes são significativos ao nível de 1% (p-valor < 0,01)
O coeficiente de determinação(undefined) foi calculado em 0,9388.
O modelo é significativo e as variáveis explicam conjuntamente 93,88% da variação dos dados.
Esse modelo é bastante explicativo, ou seja, as variáveis idade, peitoral e abdomen, conjuntamente são capazes de explicar quase que totalmente o comportamento da variável peso.
Adequação do Modelo
Entretanto, ainda existe um ponto de melhoria neste modelo. Conforme dito, a variável idade apresenta uma relação bastante fraca com o peso. Vejamos como o modelo se comporta sem ela.
#Ajuste e atribuição do modelo de regressão linear múltiplo sem a idademodelo3 <-lm(peso ~ altura + peitoral + abdomen, data = gordura)#Resumo do modelosummary(modelo3)
Call:
lm(formula = peso ~ altura + peitoral + abdomen, data = gordura)
Residuals:
Min 1Q Median 3Q Max
-10.2076 -2.0926 -0.0806 2.1274 11.9619
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -143.13928 5.99250 -23.886 <2e-16 ***
altura 0.62209 0.03308 18.806 <2e-16 ***
peitoral 0.68315 0.06391 10.689 <2e-16 ***
abdomen 0.47744 0.05065 9.426 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.378 on 246 degrees of freedom
Multiple R-squared: 0.925, Adjusted R-squared: 0.9241
F-statistic: 1012 on 3 and 246 DF, p-value: < 2.2e-16
Adequação do modelo
A retirada da variável idade praticamente não afetou a qualidade do modelo.
O \(R^2\) caiu de 0,9388 para 0,9241.
Entretanto o modelo ficou bem mais simples, pois 25% das variáveis foram removidas.
Por esse motivo, variáveis que não apresentam correlação com a variável resposta não devem ser incluídas, pois seu efeito é reduzido e aumenta a complexidade do modelo.
Buscamos sempre por um modelo capaz de dar boas respostas, porém parcimonioso.
Note que as variáveis Area, Sexo e Estágio não são numéricas, e sim caracteres. Porém elas apresentam níveis. Por exemplo, a variável Sexo tem os níveis Fêmea e Macho.
#Vamos verificar as frequências da variável Sexotable(bacalhau$Sexo)
Fêmea Macho
26 28
Variáveis Qualitativas no R
Nesse caso, podemos converter a variável de caractere para fator. Para tal existem duas funções:
as.factor - Converte a variável para qualitativa nominal, em que a ordem dos fatores não é relevante.
ordered -Converte a variável para qualitativa ordinal, em que a ordem dos fatores é relevante. Nesse caso, deve-se informar o ordenamento por meio do parâmetro levels.
Vamos converter a variável Sexo para qualitativa nominal e a variável Estagio para qualitativa ordinal
Variáveis Qualitativas no R
Primeiramente, converteremos a variável Sexo em fator:
#Conversão da variável sexo para qualitativa bacalhau$Sexo <-as.factor(bacalhau$Sexo)bacalhau$Sexo
Perceba que na variável Sexo os níveis foram ordenados por ordem alfabética.
Variáveis Qualitativas no R
Para converter a variável Estagio, devemos definir o ordenamento. Vamos utilizar a ordem Imaturo - Intermediário - Maduro. Esse ordenamento é definido no parâmetro levels, no qual deve ser informado o vetor com os parâmetros ordenados.
#Conversão da variável sexo para qualitativa bacalhau$Estagio <-ordered(bacalhau$Estagio, levels =c("Imaturo", "Intermediário", "Maduro"))bacalhau$Estagio
Note o ordenamento dos níveis: Imaturo<Intermediário<Maduro.
Variáveis Qualitativas no R
Podemos também converter os caracteres em fatores já na leitura do arquivo. Basta utilizar o parâmetro stringsAsFactors = T na função read.csv. Nesse caso, os fatores são convertidos como variáveis qualitativas nominais, ou seja, sem ordenamento.
Vamos reler nosso conjunto de dados bacalhau já convertendo os caracteres em fatores:
#Leitura dos dados com conversão de fatoresbacalhau <-read.csv2("Bacalhau.csv", h = T, stringsAsFactors = T)str(bacalhau)
A área Mageroya foi definida como categoria de referência.
O intercepto não apresenta interpretação prática, pois não se pode observar um bacalhau de idade 0.
A cada Ano espera-se um aumento de 743g de peso nos bacalhaus.
Para bacalhaus de Soroya, espera-se um peso 217,68g maior que os de Mageroya.
Para bacalhaus de Tanafjord, espera-se um peso 267,62g maior que os de Mageroya.
Para bacalhaus de Varangerfjord, espera-se um peso 267,62g maior que os de Mageroya.
Conclusão
A análise de regressão é uma técnica bastante popular e útil em pesquisa científica.
Nessas aulas, discutimos aspectos básicos para sua aplicação e interpretação prática.
Alguns conceitos serão revisitados após nosso estudo de novas técnicas.
É importante leitura e prática para compreender todo o processo e se tornar fluente na técnica.
Para encerrar, um passo a passo para o ajuste de um modelo de regressão linear.
Passo a Passo: Regressão Linear
Identificar a variável resposta (Y) e as variáveis explicativas (X).
Avaliar a relação entre as variáveis explicativas e a variável resposta, por meio das funções plot(x, y) e cor(x, y).
Ajustar o modelo de regressão linear por meio da função lm(y ~ x1 + x2 + ..., data = dados)(substituir y, x1, x2,... pelas variáveis em estudo e dados pelo banco de dados em estudo.
Verifique se os coeficientes são significativos com o teste de hipóteses (função summary). Caso alguma variável não seja significativa, ela deve ser retirada do modelo e um novo ajuste deve ser realizado.
Verifique se as variáveis explicativas explicam bem a variável resposta por meio do \(R^2\) (função summary).
Escreva o modelo ajustado e interprete seu resultado.
Exercício Prático
Utilize o passo a passo do slide anterior para resolver os seguintes exercícios:
Refaça o exemplo da modelagem de peso, mas inclua as seguintes variáveis: idade, altura, pescoço, peitoral, abdomen, quadril e coxa.
Com a base de dados bacalhau, ajuste um modelo que explique o peso do bacalhau com base nas variáveis Idade, Sexo, Compr, Estágio e Tripanosomas.
Inclua as interpretações do modelo no script usando comentários.