#7.1 h.2anos <- c(39, 30, 32, 34, 35, 36, 36, 30) h.adulto <- c(71, 63, 63, 67, 68, 68, 70, 64) alturas <- data.frame(h.2anos, h.adulto) alturas alturas.lm <- lm(h.adulto~h.2anos, data=alturas) alturas alturas.conf <- confint(alturas.lm) alturas.conf plot(h.adulto~h.2anos, data=alturas) abline(alturas.lm, col="red", wd=2) #7.2 library(MASS) data(Animals) 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) # Qual a relação do comando 'anova' acima com:anova(anim.m2) #A anova "anim.m0" apresenta a relação das variáveis logcérebro com logbody, comparando contra o valor de x quando y é 0, oseja o modelo nulo. # Qual a relação entre os valores obtidos por estes comandos? 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)])) anim.m0 <- update(anim.m2, .~. -log(body)) #Os valores obtidos mostram a remocao dos valores extremos que podem ter efeito dentro dos dados ao fazer o modelo linear. #Feito isso, o modelo apresenta uma correlacao de acordo com a linha do corpotamento esperado, oseja, uma correlacao completa dos dados. #7.3 search() ls(package:datasets) iris str(iris) i.setosa <- subset(iris,iris$Species=="setosa") i.setosa lm.iris <- lm(Sepal.Width~Sepal.Length, data=i.setosa) lm.iris.coef <- coef(lm.iris) summary(lm.iris) lm.Sepal <- lm(Sepal.Length~Petal.Length, data=i.setosa) lm.Sepal.res <- residuals(lm.Sepal) lm.Petal <- lm(Sepal.Width~Petal.Length, data=i.setosa) lm.Petal.res <- residuals(lm.Petal) lm.iris.nopetal <- lm(lm.Petal.res~lm.Sepal.res) lm.iris.nopetal.coef <- coef(lm.iris.nopetal) summary(lm.iris.nopetal) #7.4 search() ls(6) pressure t <- pressure$temperature t p <- pressure$pressure p reg1 <- lm(p~t) summary(reg1) reg2 <- lm(p ~ t + I(t^2)) summary(reg2) reg3 <- lm (p ~ t + I(t^2) + I(t^3)) sum.mod3 <- summary(reg3) r2 <- sum.mod3$r.squared r2 #7.5 aves <- read.table("aves_cerrado.csv", header=T, sep=";", as.is=F) aves str(aves) aves$urubu[is.na(aves$urubu)] <- 0 aves$carcara[is.na(aves$carcara)] <- 0 aves$seriema[is.na(aves$seriema)] <- 0 aves$fisionomia[aves$fisionomia=="ce"] <- "Ce" aves$fisionomia <- factor(aves$fisionomia, levels=c("CL","CC","Ce")) fisio.ce <- subset(aves,aves$fisionomia=="Ce") fisio.ce mod.ce <- lm(seriema~carcara, data=fisio.ce) sum.ce <- summary(mod.ce) p.ce <- sum.ce$coefficients[2,4] coef.ce <- coef(mod.ce) fisio.cc <- subset(aves, aves$fisionomia=="CC") mod.cc <- lm(seriema~carcara, data=fisio.cc) sum.cc <- summary(mod.cc) p.cc <- sum.cc$coefficients[2,4] coef.cc <- coef(mod.cc) fisio.cl <- subset(aves, aves$fisionomia=="CL") mod.cl <- lm(seriema~carcara, data=fisio.cl) sum.cl <- summary(mod.cl) p.cl <- sum.cl$coefficients[2,4] coef.cl <- coef(mod.cl) #7B 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)) anova(mod1) 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) #O polinomio do segundo grau, é o modelo que melhor explica a relacao entre a distancia percorrida e a altura de lancamento. #Um polinomio de tercer grau nao fornece uma melhor explicacao do que o polinomio de segundo grau. #Massa Recém-nascido arquivo <- read.table("archivo1.1.csv", header=T, sep=";", as.is=F) arquivo arquivo$age[arquivo$age==99] <- NA arquivo$height[arquivo$height==99] <- NA arquivo$smoke[arquivo$smoke==9] <- NA arquivo$smoke <- as.logical(arquivo$smoke) arquivo <- arquivo[apply(is.na(arquivo),1,sum)==0,] summary(arquivo) mod.geral <- lm(bwt~gestation + smoke + parity + age + weight + height, data=arquivo) summary(mod.geral) anova(mod.geral) mod.noage <- lm(bwt~gestation + smoke + parity + weight + height, data=arquivo) summary(mod.noage) anova(mod.noage) mod.noweight <- lm(bwt~gestation + smoke + parity + height, data=arquivo) summary(mod.noweight) anova(mod.noage) mod.noparity <- lm(bwt~gestation + smoke + height, data=arquivo) summary(mod.noparity) anova(mod.noparity) mod.inter <- lm(bwt~gestation + smoke + height + gestation:smoke, data=arquivo) summary(mod.inter) anova(mod.inter) anova(mod.noparity, mod.inter) #acordo com o jogo das variáveis, o melhor modelo explicativo para o peso dos bebes récem-nascidos, #é o modelo que inclui as variáveis de gestation, smoke e height sendo as variáveis mais significativas no modelo geral até modelos mais restritos.