#### 7.2 O modelo mais simples possivel. library(MASS) data(Animals) plot(brain~body,data=Animals) plot(brain~body,data=Animals, log="xy") plot(log(brain)~log(body), data=Animals) Animals[log(Animals$body)>8&log(Animals$brain)<6,] anim.m2 <- lm(log(brain)~log(body),data=Animals, subset=!(log(Animals$body)>8&log(Animals$brain)<6)) anim.m0 <- lm(log(brain)~1, data=Animals, subset=!(log(Animals$body)>8&log(Animals$brain)<6)) anova(anim.m0,anim.m2) anova(anim.m2) summary(anim.m2) ### O anova(anim.m0,anim.m2) compara os dois modelos (no caso o modelo com coef.angular e liner com o modelo constante em y) e o anova(anim.m2) me diz se esse ajuste é significativo em comparação a uma reta constante, nesse caso os dois me retornam a mesma estatistica. summary(anim.m0) mean(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)])) sd(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)])) ### o summary me da os resultados do ajuste, como é uma reta constante em y, o valor do Intercepto é o valor da média dos dados do eixo y, e o sd e o desvio padrão dessa média. ### Polinonio de 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) mod1 = lm(h.d~init.h) mod2 = update(mod1,.~. +I(init.h^2)) mod3 = update(mod2,.~.+I(init.h^3)) summary(mod1) summary(mod2) summary(mod3) ## Valor encontrado de R^2 para os três modelos : ###mod1=0.9264 ###mod2=0.9903 ###mod3=0.9994 #### Pela analise do R^2 é possivel dizer que o polinomio de terceiro grau se ajusta melhor aos dados. ##### 7.2 b - Massa dos bebes babies = read.table("babies.txt", header = T,na.strings=999) babies$age[babies$age==99] = NA babies$height[babies$height==99] = NA babies$smoke[babies$smoke==9] = NA babies$smoke <- as.logical(babies$smoke) babies$parity <- as.logical(babies$parity) ## Eliminando linhas com algum dado faltante babies <- babies[apply(is.na(babies),1,sum)==0,] #### Comparando com o primeiro modelo se fazer a massa do bebe por tempo de gestação é melhor do que fazer peso do bebe com as outras variaveis. babies.co1 = lm(bwt~gestation, data=babies) summary(babies.co1) babies.co2= lm(bwt~smoke, data=babies) summary(babies.co2) babies.co3 = lm(bwt~parity, data=babies) summary(babies.co3) babies.co4 = lm(bwt~weight, data=babies) summary(babies.co4) # O primeiro modelo é melhor, comparando os valores do R^2 ### Analisando a influência dos outros parametros na primeira função. babies.up1 = lm(bwt~gestation, data=babies) babies.up2 = update(babies.up1,.~. +I(smoke)) anova(babies.up2) anova(babies.up1,babies.up2) summary(babies.up1) summary(babies.up2) anova(babies.up2,babies.up3) babies.up3 = update(babies.up2,.~. +I(height)) ### foi significativo, então escolho esse modelo. summary(babies.up3) anova(babies.up2,babies.up3) babies.up4 = update(babies.up3,.~. +I(weight)) summary(babies.up4) anova(babies.up3,babies.up4) ### O modelo 4 que é a massa do bebe por gestação + fumo + altura da mãe + peso da mãe e é o melhor modelo.