Regressão Linear Simples

EST212 - Bioestatística

Helgem de Souza

Introdução

Antes de iniciar nossa aula:

  1. Abra o RStudio.

  2. Crie um novo script.

  3. Crie uma pasta na área de trabalho com seu nome.

  4. Salve o script criado na pasta com o nome "aula7_est212.R"

  5. Baixe do Moodle o arquivo gordura_corporal.csv e salve na pasta criada.

  6. Defina a pasta como diretório de trabalho

  7. Leia o arquivo gordura_corporal.csv para o objeto gordura.

Regressão Linear Simples

  • Em nossa última aula, definimos o modelo de Regressão Linear Simples, dado por:

\[ Y = \beta_0 + \beta_1X + \varepsilon \]

Em que

  • Y é a variável que queremos modelar o comportamento, chamada variável dependente, variável resposta, ou variável desfecho.

  • X é a variável que servirá de base para a modelagem, dita variável independente ou variável explicativa.

  • \(\varepsilon\) é uma variável aleatória, definida como erro aleatório.

Regressão Linear Simples

Também vimos que o modelo pode ser estimado para um conjunto de dados por meio da equação

\[ \hat{Y} = \hat{\beta_0} + \hat{\beta_1}X \]

Em que

\[ \hat{\beta}_0=\bar{y}-\hat{\beta}_1\bar{x} \]

e\[ \hat{\beta_1} = \frac{\displaystyle\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{\displaystyle\sum_{i=1}^n(x_i-\bar{x})^2} \]

Regressão Linear Simples

O modelo de regressão é amostral, ou seja, aplicado a uma amostra, ele tenta prever o comportamento populacional. No modelo de regressão temos os seguintes estimadores:

  • \(\hat{\beta_0}\) - Estima o intercepto da reta populacional

  • \(\hat{\beta_1}\) - Estima o coeficiente angular (inclinação) da reta populacional

  • Aos valores de \(\hat{Y_i}\) damos os nomes de valores ajustados.

  • Desse modo, podemos definir os erros como:

\[ \varepsilon_i = y_i - \hat{y_i} \]

  • Esses erros serão importantes para o diagnóstico do modelo.

Interpretação do Modelo de RLS

Interpretamos o modelo de Regressão Linear Simples da seguinte forma: seja o modelo dado por

\[ \hat{Y} = \hat{\beta_0} + \hat{\beta_1}X. \]

  • O valor de \(\hat{\beta_0}\) indica o valor esperado de Y quando a variável explicativa é nula.

  • O valor de \(\hat{\beta_1}\) indica o valor esperado de Y conforme a variação de X:

    • Se \(\hat{\beta_1}\) é positivo, quando o valor de \(X\) cresce, o valor de \(Y\) também cresce (correlação positiva)

    • Se \(\hat{\beta_1}\) é negativo, quando o valor de \(X\) cresce, o valor de \(Y\) decresce (correlação negativa)

    • O Valor de \(\hat{\beta_1}\) representa a variação de \(Y\) a cada acréscimo de uma unidade de \(X\).

Para entender melhor, vamos utilizar nosso banco de dados de gordura corporal.

Exemplo - Peso e Altura

Usaremos o modelo de Regressão Linear Simples para explicar o peso em função da altura, ou seja:

  • Variável resposta (Y) - Peso

  • Variável explicativa (X) - Altura

O modelo teórico é dado por:

\[ Peso = \beta_0 + \beta_1 \cdot Altura + \varepsilon \]

Precisamos estimar os valores de \(\beta_0\) e \(\beta_1\). Vamos ajustar nosso modelo de regressão com a função lm().

Exemplo - Peso e Altura

Vejamos a relação existente entre peso e altura

#Gráfico de peso vs altura
plot(x = gordura$altura, y = gordura$peso)
#Correlação entre as variáveis
cor(gordura$altura, gordura$peso)
[1] 0.512913

Exemplo - Peso e Altura

Conforme vimos anteriormente, a função lm() recebe uma fórmula do tipo y ~ x, em que y é a variável resposta e x é a variável explicativa.

Vamos adicionar à função lm o parâmetro data = gordura. Esse parâmetro indica que base de dados será utilizada no modelo.

#Modelo de regressão: Peso explicado pela altura
lm(peso ~ altura, data = gordura)

Call:
lm(formula = peso ~ altura, data = gordura)

Coefficients:
(Intercept)       altura  
   -88.2174       0.9464  

O ajuste nos retorna as seguintes estimativas:

  • \(\hat{\beta_0} = -88,2174\)

  • \(\hat{\beta_1} = 0,9464\)

Exemplo - Peso e Altura

Logo, nosso modelo ajustado fica dado por:

\[ Peso = -88,2174 + 0,9464 \cdot Altura \]

  • Como não é possível observar uma pessoa com 0cm de altura, o valor de \(\hat{\beta_0}\) não tem sentido interpretativo

  • Para cada acréscimo de um centímetro de altura, espera-se um aumento de 0,9464kg no peso de adultos dessa população.

  • Por exemplo, qual seria o peso esperado de um adulto de 165cm de altura, nessa população?

\[ Peso = -88,2174 + 0,9464 \cdot 165 = 67,9386 \]

Ou seja, espera-se que os adultos de 165cm de altura, nessa população, tenham um peso médio de aproximadamente 68kg.

Exercício Prático 1

Vamos ajustar um modelo para explicar o percentual de gordura corporal com base na circunferência abdominal. Vamos seguir os seguintes passos:

  1. Identificar qual é a variável resposta (Y) e qual a variável explicativa (X).

  2. Plotar o gráfico entre as variáveis (plot) e checar a correlação entre elas (cor).

  3. Ajustar o modelo com o uso da função lm e identificar os coeficientes.

  4. Escrever o modelo ajustado e interpretar os resultados.

  5. Estimar a gordura corporal de pessoas com as seguintes circunferências abdominais: 85cm e 97cm.

Exercício Prático 1 - Solução

Queremos explicar a variação do percentual de gordura corporal com base na circunferência abdominal, ou seja:

  • Variável resposta (Y) - % gordura corporal (gordura_corporal no banco de dados)

  • Variável explicativa (X) - circundefência abdominal (abdomen no banco de dados)

Exercício Prático 1 - Solução

Vejamos a relação entre as variáveis

#Diagrama de dispersão
plot(x = gordura$abdomen, y = gordura$gordura_corporal)

A seguir, a correlação entre as variáveis:

#Correlação entre as variáveis
cor(gordura$abdomen, gordura$gordura_corporal)
[1] 0.8236846

Exercício Prático 1 - Solução

A relação entre as variáveis aparentemente é linear, com correlação forte e positiva. Vamos ajustar nosso modelo de regressão:

#Ajuste do modelo de regressão
lm(gordura_corporal ~ abdomen, data = gordura)

Call:
lm(formula = gordura_corporal ~ abdomen, data = gordura)

Coefficients:
(Intercept)      abdomen  
   -42.7341       0.6693  

Os coeficientes são dados por:

  • \(\beta_0 = -42,7341\) - Intercepto

  • \(\beta_1 = 0,6693\) - Coeficiente angular

Exercício Prático 1 - Solução

Logo, o modelo ajustado é dado por

\[ gordura~corporal = -42,7341 + 0,6693 \cdot circ~abdominal \]

Mais uma vez, não é possível interpretar o intercepto, pois não existe uma pessoa com circunferência abdominal 0.

Logo, para cada aumento de uma unidade na circunferência abdominal, espera-se um acréscimo de 0,6693 no percentual de gordua corporal dos membros da população em estudo.

Exercício Prático 1 - Solução

Vamos estimar a circunferência corporal de duas pessoas: uma com 67cm de circunferência abdominal e outra com 80cm de circunferência abdominal. O modelo estimado é dado por

\[ gordura~corporal = -42,7341 + 0,6693 \cdot circ~abdominal \]

Basta substituir os valores de circunferência abdominal no modelo para obter os valores estimados:

#Predição usando o modelo ajustado
#Pessoa com 85cm de circunferência
-42.7341 + 0.6699 * 85
[1] 14.2074
#Pessoa com 97cm de circunferência
-42.7341 + 0.6699 * 97
[1] 22.2462

Logo, para uma pessoa dessa população com 85cm de circunferência abdominal, espera-se um percentual de gordura de 14,2%. Já para uma pessoa com 97cm de circunferência abdominal, espera-se um percentual de gordura de 22,24%.

Requistos do Modelo de Regressão

O modelo de regressão é indicado quando existe uma relação linear entre as variáveis, a variáel resposta é contínua e preferencialmente quando há uma relação de causa e efeito entre as variáveis.

Do ponto de vista estatístico, existem alguns requisitos que devem ser observados para garantir a validade do modelo. Consideremos o modelo empírico de regressão:

\[ Y_i = \beta_0 + \beta_1 X + \varepsilon_i \]

O modelo de regressão será válido apenas se os erros forem independentes entre si e possuirem distribuição normal, com média 0 e variância constante, ou seja:

\[ \varepsilon_i \sim N(0, \sigma^2) \]

Esses pressupostos garantem a possibilidade da realização de testes de hipóteses para validação do modelo.

Adequação do Modelo

Dado que os requisitos apresentados foram atendidos, podemos verificar a adequação do modelo de duas formas:

  1. Teste de Hipóteses para os coeficientes

  2. 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.

Teste de Hipóteses

O teste de hipóteses para os coeficientes visa verificar se eles são significativos, ou seja, se os valores são estatísticamente diferentes de 0. Ele testa as seguintes hipóteses:

\[ H_0:~\beta_i = 0~~vs~~H_1:~\beta_i \neq 0 \]

com \(i \in \{0, 1\}\).

Na regressão linear simples, a estatística de teste é dada por:

\[ \left(\dfrac{\hat{\beta_i}}{s_{\hat{\beta_i}}}\right) \]

Em que \(s_{\hat{\beta_i}}\) é uma estimativa do desvio padrão do estimador de \(\beta_i\). A estatística de teste deve ser comparada com uma distribuição t de Student com n-2 graus de liberdade.

Teste de Hipóteses

  • Entretanto, não é necessário realizar estes cálculos. Eles estão implementados no R e são exibidos por meio da função summary.

  • A função summary é uma função genérica que fornece um resumo de objetos.

  • Quando aplicada em um modelo de regressão, ela nos retorna alguns resultados:

    • Estatística descritiva dos resíduos.

    • Análise de variância do modelo (Estudaremos em breve).

    • Medidas de ajuste do modelo.

  • Para uma melhor compreensão, vamos analisar o resultado de nosso exemplo de peso e altura.

Exemplo - Teste de Hipóteses

Vamos ajustar novamente nosso modelo de peso e altura, mas agora vamos salvá-lo em um objeto chamado modelo1:

#Modelo de regressão: Peso explicado pela altura
modelo1 <- lm(peso ~ altura, data = gordura)

#Impressão do modelo
modelo1

Call:
lm(formula = peso ~ altura, data = gordura)

Coefficients:
(Intercept)       altura  
   -88.2174       0.9464  

Note que o resultado do objeto é o mesmo que obtemos quando executamos o modelo diretamente.

Exemplo - Teste de Hipóteses

Vejamos o que o R apresenta ao aplicarmos a função summary nesse objeto:

#Resumo dos resultados do modelo
summary(modelo1)

Call:
lm(formula = peso ~ altura, data = gordura)

Residuals:
    Min      1Q  Median      3Q     Max 
-21.491  -7.272  -0.664   6.267  42.137 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -88.2174    17.9727  -4.908 1.67e-06 ***
altura        0.9464     0.1006   9.409  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.55 on 248 degrees of freedom
Multiple R-squared:  0.2631,    Adjusted R-squared:  0.2601 
F-statistic: 88.54 on 1 and 248 DF,  p-value: < 2.2e-16

Exemplo - Teste de Hipóteses

Vejamos o que o R apresenta ao aplicarmos a função summary nesse objeto:

#Resumo dos resultados do modelo
summary(modelo1)

Exemplo - Teste de Hipóteses

Vamos focar apenas na tabela de Análise de Variância:

Logo, os valores da última coluna já são os p-valores dos testes de hipóteses.

Exemplo - Teste de Hipóteses

Por exemplo, para testar se \(\beta_0\) é significativo teríamos a seguinte hipótese:

\[ H_0:~\beta_0 = 0~~vs~~H_1:~\beta_0 \neq 0 \]

  • De acordo com a função summary, a o p-valor desse teste é 1,67e-06 (0,00000167).

  • Suponha testar a hipótese acima ao nível de 1% de significância. Como p-valor < 0,01, temos evidências suficientes para rejeitar a hipótese nula. Portanto \(\beta_0\) é diferente de 0, logo significativo para o modelo.

  • O mesmo vale para testar \(\beta_1\):

    \[ H_0:~\beta_1 = 0~~vs~~H_1:~\beta_1 \neq 0 \]

  • O p-valor foi menor que 2e-16 (0,00000000000000002), logo, p-valor < 0,01, portanto, o coeficiente é significativo.

Exercício Prático 1 - Continuação

Vamos agora verificar se os coeficientes do modelo ajustado em nosso exercício prático 1 são significativos:

  1. Execute novamente o modelo, mas agora o salve em um objeto chamado modeloex1.

  2. Verifique por meio dos p-valores, ao nível de 0,01 de significância, se os coeficientes \(\hat{\beta_0}\) e \(\hat{\beta_1}\) são significativos.

Exercício Prático 1 - Teste de Hipóteses

Primeiramente o ajuste do modelo:

#Ajuste do modelo de regressão
modeloex1 <- lm(gordura_corporal ~ abdomen, data = gordura)

Agora seu resumo

summary(modeloex1)

Call:
lm(formula = gordura_corporal ~ abdomen, data = gordura)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.8987  -3.6453   0.1864   3.1775  12.7887 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -42.73413    2.71651  -15.73   <2e-16 ***
abdomen       0.66928    0.02926   22.88   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.713 on 248 degrees of freedom
Multiple R-squared:  0.6785,    Adjusted R-squared:  0.6772 
F-statistic: 523.3 on 1 and 248 DF,  p-value: < 2.2e-16

Ambos os p-valores são menores que 0,01, logo os coeficientes são significativos.

Coeficiente de Determinação \(R^2\)

  • Quanto pensamos em modelagem, podemos listar dois tipos de relações entre variáveis:

    • Relações determinísticas: conhecemos a relação exata entre as variáveis.

    • Relações probabilísticas: conhecemos a relação entre as variáveis, considerada uma margem de erro.

  • Por exemplo, sabemos que a relação entre os lados \(l\) e a área \(A\) de um quadrado é exatamente \(A = l^2\).

  • Entretanto, por exemplo, na relação peso e pressão arterial, sabemos que o peso tende a aumentar a pressão arterial, mas não sabemos exatamente qual a contribuição do peso para o aumento da pressão.

  • Mais do que isso, essa contribuição pode variar de indivíduo para indivíduo.

  • A relação entre variáveis em um modelo de regressão linear simples, é probabilística. Para medir a contribuição da variável explicativa na resposta, usamos o coeficiente \(R^2\).

Coeficiente de Determinação \(R^2\)

  • O coeficiente de determinação é uma medida que explica a contribuição de uma variável na previsão, da outra.

  • Ou seja, ele determina o quanto da variação de uma variável é explicada pela outra.

  • O coeficiente de determinação, que chamaremos apenas de \(R^2\) daqui em diante, é calculado como o quadrado do coeficiente de correlação entre as variáveis.

Coeficiente de Determinação \(R^2\)

  • Como o coeficiente de correlação está entre -1 e 1, o \(R^2\) é um valor entre 0 e 1.

    • Valores próximos de 0 indicam uma contribuição baixa ou nula da variável explicativa na variação da variável resposta.

    • Valores próximos a 1 indicam uma contribuição alta da variável explicativa na variação da variável resposta.

  • Logo, o \(R^2\) é um ótimo indicador do ajuste do modelo.

  • Assim como no teste de hipóteses, o valor do \(R^2\) também é apresentado pela função summary. Nos basta interpretá-lo.

  • O valor é apresentado como Adjusted R-squared.

  • Vejamos como interpretá-lo no nosso modelo de peso e altura.

Coeficiente de Determinação \(R^2\)

Vamos imprimir o resumo do nosso modelo que explica o peso pela altura (modelo1):

#Resumo do modelo de peso e altura
summary(modelo1)

Call:
lm(formula = peso ~ altura, data = gordura)

Residuals:
    Min      1Q  Median      3Q     Max 
-21.491  -7.272  -0.664   6.267  42.137 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -88.2174    17.9727  -4.908 1.67e-06 ***
altura        0.9464     0.1006   9.409  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.55 on 248 degrees of freedom
Multiple R-squared:  0.2631,    Adjusted R-squared:  0.2601 
F-statistic: 88.54 on 1 and 248 DF,  p-value: < 2.2e-16

Coeficiente de Determinação \(R^2\)

  • Obtivemos o valor Adjusted R-squared: 0.2601.

  • Isso significa que, apesar de existir uma relação entre as variáveis, altura explica apenas 26% da variação do peso, um valor baixo.

  • Esse valor é um indício de um ajuste inadequado do modelo.

  • Ou seja, existem outros fatores que explicam os demais 74% da variação do peso.

Exercício Prático 1 - Continuação

  • Vamos finalizar a análise de nosso modelo que tenta explicar a gordura corporal pela circunferência abdominal.

  • Para isso, vamos verificar o valor do \(R^2\).

  • Antes de apresentar o valor do \(R^2\), você acha que ele é um bom preditor para explicar a gordura corporal?

Exercício Prático 1 - Coeficiente de Determinação \(R^2\)

#Resumo do modelo
summary(modeloex1)

Call:
lm(formula = gordura_corporal ~ abdomen, data = gordura)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.8987  -3.6453   0.1864   3.1775  12.7887 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -42.73413    2.71651  -15.73   <2e-16 ***
abdomen       0.66928    0.02926   22.88   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.713 on 248 degrees of freedom
Multiple R-squared:  0.6785,    Adjusted R-squared:  0.6772 
F-statistic: 523.3 on 1 and 248 DF,  p-value: < 2.2e-16

Obtivemos o valor Adjusted R-squared: 0.6772. Ou seja, a circunferência abdominal, sozinha, explica aproximadamente 68% da variação da gordura corporal. Esse valor indica que ela é um importante preditor da gordura corporal.

Passo a Passo: Regressão Linear Simples

  1. Identificar a variável resposta (Y) e a variável explicativa (X).

  2. Avaliar a relação entre as variáveis, por meio das funções plot(x, y) e cor(x, y).

  3. Ajustar o modelo de regressão linear por meio da função lm(y ~ x).

  4. Verifique se os coeficientes são significativos com o teste de hipóteses (função summary).

  5. Verifique se a variável explicativa explica bem a variável resposta por meio do \(R^2\) (função summary).

  6. Escreva o modelo ajustado e interprete seu resultado.

Exercício Prático

  1. Refaça o exercício prático 1 conforme o passo a passo apresentado no slide anterior.

  2. Use o banco de dados gordura e o passo a passo do slide anterior para verificar qual das variáveis a seguir seria mais adequada para explicar a densidade corporal por meio de uma regressão linear simples:

  • peso

  • altura

  • abdomem

  • quadril