EST212 - Bioestatística
Antes de iniciar nossa aula:
Abra o RStudio.
Crie um novo script.
Crie uma pasta na área de trabalho com seu nome.
Salve o script criado na pasta com o nome "aula7_est212.R"
Baixe do Moodle o arquivo gordura_corporal.csv
e salve na pasta criada.
Defina a pasta como diretório de trabalho
Leia o arquivo gordura_corporal.csv
para o objeto gordura
.
\[ 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.
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} \]
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} \]
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.
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().
Vejamos a relação existente entre 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.
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\)
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.
Vamos ajustar um modelo para explicar o percentual de gordura corporal com base na circunferência abdominal. Vamos seguir os seguintes passos:
Identificar qual é a variável resposta (Y) e qual a variável explicativa (X).
Plotar o gráfico entre as variáveis (plot)
e checar a correlação entre elas (cor)
.
Ajustar o modelo com o uso da função lm
e identificar os coeficientes.
Escrever o modelo ajustado e interpretar os resultados.
Estimar a gordura corporal de pessoas com as seguintes circunferências abdominais: 85cm e 97cm.
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)
Vejamos a relação entre as variáveis
A seguir, a correlação entre as variáveis:
A relação entre as variáveis aparentemente é linear, com correlação forte e positiva. Vamos ajustar nosso modelo de regressão:
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
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.
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:
[1] 14.2074
[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%.
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.
Dado que os requisitos 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.
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.
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.
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.
Vejamos o que o R apresenta ao aplicarmos a função summary
nesse objeto:
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
Vejamos o que o R apresenta ao aplicarmos a função summary
nesse objeto:
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.
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.
Vamos agora verificar se os coeficientes do modelo ajustado em nosso exercício prático 1 são significativos:
Execute novamente o modelo, mas agora o salve em um objeto chamado modeloex1
.
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.
Primeiramente o ajuste do modelo:
Agora seu resumo
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.
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\).
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.
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.
Vamos imprimir o resumo do nosso modelo que explica o peso pela altura (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
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.
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?
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.
Identificar a variável resposta (Y) e a variável explicativa (X).
Avaliar a relação entre as variáveis, 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 ~ x)
.
Verifique se os coeficientes são significativos com o teste de hipóteses (função summary
).
Verifique se a variável explicativa explica bem a variável resposta por meio do \(R^2\) (função summary
).
Escreva o modelo ajustado e interprete seu resultado.
Refaça o exercício prático 1 conforme o passo a passo apresentado no slide anterior.
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