Valeska Andreozzi 1 Modelo de Regress˜ ao Linear Exerc´ ıcio 1 Antes de come¸ car o exerc´ ıcio, n˜ao se esque¸ ca de, logo ap´os iniciar o R, • mudar o diret´orio de trabalho para onde se encontra os banco de dados. Se os dados estiverem no diret´orio c:/curso digite: >setwd("c:/curso") Tome aten¸ c˜aonadire¸ c˜aodabarra Com o objetivo de identificar fatores associados ao peso ao nascer, pesquisadores cole- taram as seguintes informa¸ c˜oes: Descri¸ c˜ao C´ odigos/Valores Vari´avel Identification Code ID Number ID Low Birth Weight 1 = BWT<=2500g LOW 0 = BWT>2500g Age of Mother Years AGE Weight of Mother at Pounds LWT Last Menstrual Period Race 1 = White, 2 = Black RACE 3 = Other Smoking Status 0 = No, 1 = Yes SMOKE During Pregnancy History of Premature Labor 0, 1, 2, ··· PTL History of Hypertension 0 = No, 1 = Yes HT Presence of Uterine Irritability 0 = No, 1 = Yes UI Number of Physician Visits 0, 1, 2, ··· FTV During the First Trimester Birth Weight Grams BWT Utilize estes dados para estimar uma regress˜ao linear m´ ultipla e responder o objetivo do estudo. Lendo o banco de dados > bp <- read.table("lowbwtdata.dat", header = T) > dim(bp)
40
Embed
Modelo de Regress˜ao Linear Exerc´ıcio 1curso-glm.wdfiles.com/local--files/regressao-linear/pratica_lm_comre… · Valeska Andreozzi 1 Modelo de Regress˜ao Linear Exerc´ıcio
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Valeska Andreozzi 1
Modelo de Regressao Linear
Exercıcio 1
Antes de comecar o exercıcio, nao se esqueca de, logo apos iniciar o R,
• mudar o diretorio de trabalho para onde se encontra os banco de dados. Se os dadosestiverem no diretorio c:/curso digite:>setwd("c:/curso")
Tome atencao na direcao da barra
Com o objetivo de identificar fatores associados ao peso ao nascer, pesquisadores cole-taram as seguintes informacoes:
Descricao Codigos/Valores Variavel
Identification Code ID Number IDLow Birth Weight 1 = BWT<=2500g LOW
0 = BWT>2500gAge of Mother Years AGEWeight of Mother at Pounds LWTLast Menstrual PeriodRace 1 = White, 2 = Black RACE
3 = OtherSmoking Status 0 = No, 1 = Yes SMOKEDuring PregnancyHistory of Premature Labor 0, 1, 2, · · · PTLHistory of Hypertension 0 = No, 1 = Yes HTPresence of Uterine Irritability 0 = No, 1 = Yes UINumber of Physician Visits 0, 1, 2, · · · FTVDuring the First TrimesterBirth Weight Grams BWT
Utilize estes dados para estimar uma regressao linear multipla e responder o objetivo doestudo.
Lendo o banco de dados
> bp <- read.table("lowbwtdata.dat", header = T)
> dim(bp)
Valeska Andreozzi 2
[1] 189 11
> names(bp) <- tolower(names(bp))
> head(bp)
id low age lwt race smoke ptl ht ui ftv bwt
1 42 1 22 130 1 1 1 0 1 1 2187
2 162 0 22 112 1 1 2 0 0 0 3317
3 156 0 24 115 3 0 0 0 0 2 3274
4 114 0 29 150 1 0 0 0 0 2 2920
5 174 0 22 131 1 0 0 0 0 1 3460
6 26 1 25 92 1 1 0 0 0 0 1928
Indicando ao R que as variaveis sao categoricas
> bp$race <- factor(bp$race)
> bp$smoke <- factor(bp$smoke)
> bp$ht <- factor(bp$ht)
> bp$ui <- factor(bp$ui)
> bp$low <- factor(bp$low)
Para saber quais as classes sao referencias, temos
> boxplot(bwt ~ race, data = bp, main = "", xlab = "raca",
Valeska Andreozzi 6
+ ylab = "bwt")
> title("distribuic~ao do peso a nascenca por raca")
> boxplot(bwt ~ smoke, data = bp, main = "", xlab = "smoke",
+ ylab = "bwt")
> title("distribuic~ao do peso a nascenca por habito de fumo")
> boxplot(bwt ~ ht, data = bp, main = "", xlab = "ht",
+ ylab = "bwt")
> title("distribuic~ao do peso a nascenca por historia de hipertens~ao")
> boxplot(bwt ~ ui, data = bp, main = "", xlab = "ui",
+ ylab = "bwt")
> title("distribuic~ao do peso a nascenca por irritabilidade uterina")
Valeska Andreozzi 7
15 20 25 30 35 40 45
12
34
5
peso à nascença vs idade da mãe
age
bwt
100 150 200 2501
23
45
peso à nascença vs peso da mãe
lwt
bwt
0.0 0.5 1.0 1.5 2.0 2.5 3.0
12
34
5
peso à nascença vs nº partos prematuros
PTL
bwt
0 1 2 3 4 5 6
12
34
5
peso à nascença vs nº visitas médicas
FTV
bwt
Valeska Andreozzi 8
1 2 3
12
34
5
distribuição do peso à nascença por raça
raça
bwt
0 11
23
45
distribuição do peso à nascença por hábito de fumo
smoke
bwt
0 1
12
34
5
distribuição do peso à nascença por história de hipertensão
ht
bwt
0 1
12
34
5
distribuição do peso à nascença por irritabilidade uterina
ui
bwt
• O que podemos dizer desta analise grafica?
Observando os primeiros dois graficos, nao parece evidente a existencia de qualquer re-lacao entre bwt e age ou lwt. A representacao de bwt contra ptl ou fvt tambem naorevela a existencia de associacao de tipo linear. Como estas duas variaveis sao discretas eassumem uma diversidade muito pequena de valores, poderemos pensar em categorizar asvariaveis fazendo alguns agrupamentos nos seus valores.
Analisando os box-plot:
Valeska Andreozzi 9
1. bwt por race : As medianas das racas negra e outra sao aproximadas, sendo a corre-spondente a raca branca a mais elevadas das tres. A variabilidade dentro dos gruposparece ser algo diferente, sendo maior na raca branca. Note-se, no entanto, que osgrupos tem dimensoes bastante distintas:
> table(bp$race)
1 2 3
96 26 67
Modelo de Regressao
• Escreva o modelo linear para a variavel resposta peso ao nascer (bwt ). Pense nospossıveis preditores lineares e escreva a equacao de um modelo candidato.
A tıtulo de exemplo, escrevemos a equacao de um modelo
Suponha o seguinte modelo
> bp.lm1 <- lm(bwt ~ age + lwt + race + ftv, data = bp)
> summary(bp.lm1)
Call:
lm(formula = bwt ~ age + lwt + race + ftv, data = bp)
F-statistic: 5.786 on 3 and 185 DF, p-value: 0.0008399
Valeska Andreozzi 12
Compare os dois modelos bp.lm1 e bp.lm2. Qual a sua conclusao?
> anova(bp.lm2, bp.lm1)
Analysis of Variance Table
Model 1: bwt ~ lwt + race
Model 2: bwt ~ age + lwt + race + ftv
Res.Df RSS Df Sum of Sq F Pr(>F)
1 185 91.346
2 183 91.316 2 0.030949 0.031 0.9695
Nao rejeitamos a H0: βage = βftv = 0.
Observacao: nao devemos finalizar um modelo considerando somente estatısticas sig-nificantes. Nao se esqueca que outras razoes podem ser levadas em consideracao para semanter uma variavel no modelo. Tenha sempre em consideracao o objetivo da sua analise.
Interpretando os modelos
Interpretando um modelo apenas com uma variavel dicotomica
Que informacao podemos extrair dos parametros estimados de um modelo de regressao linearpara responder a pergunta cientıfica que motivou o estudo?
Para facilitar, vamos comecar com um modelo mais simples em que so temos uma variaveldicotomica (com duas categorias) como independente.
F-statistic: 6.936 on 1 and 187 DF, p-value: 0.009156
• Escreva a equacao do modelo estimado
E(Yi) = β0 + β1smokei
• Calcule o peso medio ao nascer das criancas para as maes que fumaram durante agravidez e para as que nao fumaramMaes fumadoras: E(Yi) = β0 + β1
Maes nao fumadoras: E(Yi) = β0
Compare o resultado que encontrou na alınea anterior com o resultado calculado empiri-camente
> tapply(bp$bwt, list(bp$smoke), mean, na.rm = T)
0 1
3.054957 2.773243
Entao? Qual a vantagem de fazer um modelo de regressao linear em relacao ao calculoempırico?
Resp.: E a facilidade de se obter um intervalo de confianca, especialmente quando temosmuitas covariaveis.
Calcule o intervalo de confianca assintotico para o efeito da variavel smoke que e dadopor β1 ± 1.96 × SE(β1). Calcule tambem o intervalo de confianca exacto com base dadistribuicao t-Student. Note a diferenca. Para calcular o quantil de probabilidade da t-Student utilize a funcao qt(1−α/2,graus de liberdade=n-p) com p igual ao numero deparametros do modelo e α = nıvel de significancia.
Agora suponha que temos um modelo com uma varıavel categorica com mais de duascategorias. Neste caso todas as categorias estarao a ser comparadas com a categoria referen-cia. Para exemplificar, vamos usar a covariavel raca em que a categoria referencia e a racabranca.
F-statistic: 4.972 on 2 and 186 DF, p-value: 0.007879
Para conferir qual e a categoria referencia, faca:
> contrasts(bp$race)
2 3
1 0 0
2 1 0
3 0 1
• Escreva a equacao do modelo estimado
E(Yi) = β0 + β1race2i + β2race3i
• Escreva a equacao do modelo estimado para cada categoria de raca
E(Yi|racei = branca) = β0
E(Yi|racei = negra) = β0 + β1
E(Yi|racei = outras) = β0 + β2
• Calcule o valor medio do peso ao nascer para as tres categorias de raca
• Calcule a variacao do peso medio ao nascer da raca negra vs branca e de outras racasvs brancaRaca negra vs branca: E(Yi|racei = negra) − E(Yi|racei = branca) = β1
Raca outras vs branca: E(Yi|racei = outras) − E(Yi|racei = branca) = β2
• Calcule a variacao do peso medio ao nascer comparando raca negra vs outras racasRaca negra vs outras E(Yi|racei = negra) − E(Yi|racei = outras) = β1 − β2
Compare o resultado anterior com o calculo empırico
Valeska Andreozzi 16
> tapply(bp$bwt, list(bp$race), mean, na.rm = T)
1 2 3
3.103740 2.719692 2.804015
O valor predito do peso as nascer de cada raca do modelo de regressao que contem somentea covariavel raca e igual ao calculo empırico da media
Interpretando o modelo com uma covariavel contınua
E se a covariavel e contınua e possui uma relacao linear com a variavel resposta? Consider-emos o modelo que tem como variavel regressora apenas o peso da mae aquando da ultimamenstruacao: lwt.
F-statistic: 6.686 on 1 and 187 DF, p-value: 0.01048
• Escreva a equacao do modelo estimado
E(Yi) = β0 + β1lwti
Valeska Andreozzi 17
• Calcule o valor medio do peso ao nascer para uma crianca cuja mae apresenta lwt
igual ao peso medio.
E(Yi|lwd = lwt) = β0 + β1 ∗ lwt
> newdata <- data.frame(lwt = mean(bp$lwt))
> predict(bp.lm5, newdata)
1
2.944656
• Diga se existe diferenca significativa entre o peso esperado a nascenca para duas cri-ancas cujas maes tenham valores de lwt com uma diferenca igual a 10 libras. Formalizea questao.
Para cada variacao de um libra no peso da mae na ultima menstruacao o peso medioao nascer varia β1 unidades.
E se quisermos saber a variacao no peso ao nascer para um aumento de 10 libras nopeso da mae?
Basta multiplicar o β1 por 10 (10 × β1)
• E como e que fica o intervalo de confianca para esse efeito?Recorde-se que E(aX + b) = aE(X) + b e que V ar(aX + b) = a2V ar(X). PortantoE(10β) = 10E(β) e V ar(10β) = 102V ar(β), pelo que o intervalo de confianca sera daforma
10β ± tn−m−1;1−α/2 × 10 × SE(β1),
onde m e o numero de variaveis incluıdas no modelo e tn−m−1;1−α/2 e o quantil deprobabilidade 1 − α/2 da distribuicao t-Student com n − m − 1 graus de liberdade.
Nota: O uso do resultado assintotico considerando-se tn−m−1;1−α/2 = 1.96 para valorespequenos de n−m−1 e desaconselhado pois produz intervalos menos amplos levando,eventualmente, a que se tirem conclusoes erradas sobre a significancia dos parametrosdo modelo.(Sugestao: consulte uma tabela de valores da t-Student.)
F-statistic: 5.786 on 3 and 185 DF, p-value: 0.0008399
Valeska Andreozzi 19
• Compare o coeficiente da covariavel lwt deste modelo com o do modelo contendoapenas a covariavel lwt (modelo anterior). Que significado tem esse coeficiente emcada um dos casos?No modelo bp.lm5, E(Yi) = β0 + β1lwti, temos o efeito marginal da covariavel lwt.No modelo (bp.lm6 ), E(Yi) = β0 +β1lwti +β2race2i +β3race3i, temos o efeito parcialda covariavel lwt. Em outras palavras, no modelo (bp.lm6 ) o efeito da covariavel lwtesta controlado pela covariavel race.
• Escreva a equacao do modelo para cada uma das racas.
E(Yi|racei = branca) = β0 + β1lwti
E(Yi|racei = negra) = β0 + β1lwti + β2
E(Yi|racei = outras) = β0 + β1lwti + β3
• Ajuste modelos simples (so com a variavel lwt ) considerando os subconjuntos dos dadosque se obtem separando-os por race. Compare estes modelos com o que escreveu naalınea anterior. Qual a melhor abordagem? Porque?
F-statistic: 3.114 on 1 and 65 DF, p-value: 0.0823
Agora temos um modelo para cada subconjunto da amostra. Desta forma podemosinvestigar se o efeito da covariavel lwt e diferente entre as categorias da covariavel raca(race ), ie, se existe uma modificacao de efeito da covariavel lwt, ou em outras palavras,se existe uma interacao entre peso da mae da ultima menstruacao (lwt ) e raca (race ). Osresultados dos modelos para cada uma das racas apresentam coeficientes diferentes para acovariavel lwt, contudo a significancia estatıstica destes efeitos nao sao boderlines.
Ao constatarmos (por mera observacao) que os coeficientes de lwt sao diferentes para ostres grupos, podemos perguntar-nos se race modifica o efeito de lwt, ou seja, se a variavelrace e variavel modificadora de efeito.
Para procurarmos resposta, vamos considerar a interacao das variaveis lwt e race nomodelo:
F-statistic: 3.564 on 5 and 183 DF, p-value: 0.00424
Qual a sua conclusao? Os coeficientes dos termos de interaccao sao nao significativospelo que concluımos que race nao e variavel modificadora do efeito de lwt. Nao vale a penacolocar a interaccao no modelo. Isto esta de acordo com os modelos estratificados por raca(modelo separado para cada raca) em que o efeito da covariavel lwt nao era estatısticamentetao expressivo para as diferente racas.
Quando a interacao entre duas variaveis e importante, podemos trata-la de duas maneiras:ou incluımos um termo de interacao no modelo +lwt:race ou estratificamos a analise es-timando modelos em separado para cada subconjunto da amostra. Quanto a estratificar o
Valeska Andreozzi 23
modelo (considerar um modelo para cada raca), a decisao depende do que se pretender como estudo e da dimensao do conjunto de dados. Na estratitifacao deixamos de estimar o efeitoda covariavel raca.
Selecao de modelos
Admitamos que nao temos ideia, a partida, sobre quais as covariaveis que devemos incluirno modelo. Comecemos por construir o modelo contendo todas as variaveis disponıveis comexcepcao de id e low :
F-statistic: 9.592 on 6 and 182 DF, p-value: 3.659e-09
Chegamos em ambos os casos ao mesmo modelo final. As variaveis age, ftv e ptl foramexcluıdas do modelo inicial. As restantes foram consideradas significativas.
Recorde-se que as variaveis ftv e ptl sao variaveis quantitativas. No entanto, sao denatureza discreta apresentando uma diversidade de valores muito pequena. A questao quedevemos colocar-nos e se nao seriam mais uteis se fossem categorizadas.
> table(bp$ftv)
0 1 2 3 4 6
100 47 30 7 4 1
> table(bp$ptl)
0 1 2 3
159 24 5 1
Podemos juntar (criar) tres categorias para ftv : “nenhuma consulta”, “uma consulta”,“duas ou mais consultas”.
> bp$ftvcat <- 0
> bp$ftvcat[which(bp$ftv == 1)] <- 1
> bp$ftvcat[which(bp$ftv > 1)] <- 2
> bp$ftvcat <- factor(bp$ftvcat)
> table(bp$ftvcat)
0 1 2
100 47 42
Valeska Andreozzi 29
Para a variavel ptl criamos apenas duas categorias: “nao”=0 e “sim”=1.
> bp$ptlcat <- 0
> bp$ptlcat[which(bp$ptl > 0)] <- 1
> bp$ptlcat <- factor(bp$ptlcat)
> table(bp$ptlcat)
0 1
159 30
E vamos repetir o stepwise.
> bp.modcomp2 <- lm(bwt ~ . - id - low - ftv - ptl, data = bp)
> summary(bp.modcomp2)
Call:
lm(formula = bwt ~ . - id - low - ftv - ptl, data = bp)
F-statistic: 8.635 on 7 and 181 DF, p-value: 3.96e-09
Qual a sua conclusao?
A variavel ftvcat foi eliminada no processo automatico de selecao de variaveis stepwise.Ja a variavel ptlcat foi mantida no modelo apesar de nao apresentar significancia estatıstica.
Diagnostico do modelo
E altura de fazer o diagnostico do modelo final, procurando verificar se os pressupostos domodelo sao respeitados.
Obtenha um intervalo de confianca a um nıvel de 95% de confianca para o peso medio anascenca das criancas cujas maes possuem essas mesmas caracterısticas.