#Exercícios 7b_REGRESSÃO MÚLTIPLA #ESTIMATIVA DA INCERTEZA NA PREVISÃO DO MODELO babies<-read.table("babies.txt", header= TRUE, as.is = TRUE) babies str(babies) class(babies) head(babies) tail(babies) #Construir um gráfico para avaliar a incerteza do modelo para a relação peso do bebê (kg) ~ tempo de gestação (dias) gestacao.temp<-seq(from=1,to=1236,length.out = 100) # Um vetor para representar a variável preditora round(gestacao.temp,2) #função para arredondar os dados em duas casas decimais (var.bwt<-var(babies$bwt))#Variância de y (media.gestacao<-mean(babies$gestation))#média dos valores de x (valores.x<-(gestacao.temp-media.gestacao)^2)#(x-mean x)^2 (desvios.total<-valores.x/sum(valores.x))#Cálculo dos desvios quadráticos de x #Fórmula erro padrão #erro padrão = sqrt(var(y)*(1/n) + (x - mean x)^2/sum(desvios quadráticos totais de x) erro.pad<-sqrt(var.bwt*(1/1236)+desvios.total)#Cálculo do erro padrão erro.pad plot(erro.pad~gestacao.temp,xlab="Tempo gestação",ylab="Se (modelo gestaçãoXpeso bebê)") #GALILEU ESTAVA CERTO? #Alturas de lançamentos e distâncias percorridas obtidas por Galileu init.h = c(600, 700, 800, 950, 1100, 1300, 1500) h.d = c(253, 337, 395, 451, 495, 534, 573) plot(h.d~init.h)#Gráfico de dispersão #avaliar se um polinômio de terceiro grau é um melhor modelo para descrever os dados do experimento de Galileu #Equação do modelo: y = a + b*x + c*x^2 + d*x^3 #Seleção de modelos X11() (mod1 <- lm(h.d~init.h)) (mod2 <- update(mod1,.~. +I(init.h^2))) anova(mod1,mod2) abline(mod1) cf.m2 <- coef(mod2) curve(cf.m2[1]+cf.m2[2]*x+cf.m2[3]*x^2, add=T, lty=2) (mod3 <- update(mod1,.~. +I(init.h^3))) anova(mod2,mod3) abline(mod1) cf.m3<-coef(mod3) curve(cf.m3[1]+cf.m3[2]*x+cf.m3[3]*x^2+cf.m3[4]*x^3,add=T, lty=2) summary(mod3) #De acordo com os resultados, o polinômio de terceiro grau é o melhor modelo para descrever os dados do experimento de Galileu Galilei. #MASSA DE RECÉM-NASCIDOS babies<-read.table("babies.txt", header= TRUE, as.is = TRUE) babies str(babies) class(babies) head(babies) tail(babies) #Checando dados faltantes table(babies$bwt==999) #n tem dados faltantes table(babies$gestation==999) table(babies$parity==9) #n tem dados faltantes table(babies$age==99) table(babies$height==99) table(babies$weight==999) table(babies$smoke==9) #Eliminando dados faltantes babies$gestation[babies$gestation==999]=NA babies$age[babies$age==99]=NA babies$height[babies$height==99]=NA babies$weight[babies$weight==999]=NA babies$smoke[babies$smoke==9]=NA #Seleção de modelos #Modelo cheio Mod.cheio<-lm(bwt ~ gestation + parity + age + height + weight + smoke + gestation:age + gestation:weight + gestation:smoke + age:smoke + gestation:age:smoke, data = babies) summary(Mod.cheio) #sem interação tripla Mod.1<-lm(bwt ~ gestation + parity + age + height + weight + smoke + gestation:age + gestation:weight + gestation:smoke + age:smoke, data = babies) summary(Mod.1) #Comparando os dois modelos anova(Mod.cheio,Mod.1)#N havendo diferença, retenho o modelo mais simples (Mod.1) #sem interação age:smoke Mod.2<-lm(bwt ~ gestation + parity + age + height + weight + smoke + gestation:age + gestation:weight + gestation:smoke, data = babies) summary(Mod.2) anova(Mod.1,Mod.2)# retenho o modelo mais simples (Mod.2) #sem interação gestation:weight Mod.3<-lm(bwt ~ gestation + parity + age + height + weight + smoke + gestation:age + gestation:smoke, data = babies) summary(Mod.3) anova(Mod.2,Mod.3)# retenho o modelo mais simples (Mod.3) #sem interação gestation:smoke Mod.4<-lm(bwt ~ gestation + parity + age + height + weight + smoke + gestation:age, data = babies) summary(Mod.4) anova(Mod.3,Mod.4)# Há diferença, retenho o modelo mais complexo (Mod.3) #sem interação gestation:age Mod.5<-lm(bwt ~ gestation + parity + age + height + weight + smoke + gestation:smoke, data = babies) summary(mod.5) anova(Mod.3,Mod.5)# retenho o modelo mais complexo (Mod.3) #sem variável "parity" Mod.6<-lm(bwt ~ gestation + age + height + weight + smoke + gestation:age + gestation:smoke, data = babies) summary(Mod.6) anova(Mod.3,Mod.6)#retenho modelo mais complexo (Mod.3) ###O modelo 3 (Mod.3) é o meu modelo mínimo adequado###