library(faraway) data(savings) savings g <- lm(sr ~ pop15 + pop75 + dpi + ddpi, savings) summary(g) g <- lm(sr ~ pop15 + pop75 + dpi + ddpi, savings) (tss <- sum((savings$sr-mean(savings$sr))^2)) (rss <- deviance(g)) df.residual(g) (fstat <- ((tss-rss)/4)/(rss/df.residual(g))) 1-pf(fstat,4,df.residual(g)) g2 <- lm(sr ~ pop75 + dpi + ddpi, savings) (rss2 <- deviance(g2)) (fstat <- (deviance(g2)-deviance(g))/(deviance(g)/df.residual(g))) 1-pf(fstat,1,df.residual(g)) sqrt(fstat) (tstat <- summary(g)$coef[2,3]) 2*(1-pt(sqrt(fstat),45)) anova(g2,g) g3 <- lm(sr ~ pop15+dpi , savings) anova(g3,g) g <- lm(sr ~ .,savings) gr <- lm(sr ~ I(pop15+pop75)+dpi+ddpi,savings) anova(gr,g) gr <- lm(sr ~ pop15+pop75+dpi+offset(0.5*ddpi),savings) anova(gr,g) (tstat <- (0.409695-0.5)/0.196197) 2*pt(tstat,45) tstat^2 g <- lm(sr ~ pop75+dpi,savings) summary(g) gs <- summary(g) gs$fstat fstats <- numeric(4000) for(i in 1:4000){ ge <- lm(sample(sr) ~ pop75+dpi,data=savings) fstats[i] <- summary(ge)$fstat[1] } length(fstats[fstats > 2.6796])/4000 summary(g)$coef[2,3] tstats <- numeric(4000) for(i in 1:4000){ ge <- lm(sr ~ sample(pop75) + dpi, savings) tstats[i] <- summary(ge)$coef[2,3] } mean(abs(tstats) > 1.6783) g <- lm(sr ~ ., savings) qt(0.975,45) c(-1.69-2.01*1.08,-1.69+2.01*1.08) c(0.41-2.01*0.196,0.41+2.01*0.196) confint(g) library(ellipse) plot(ellipse(g,c(2,3)),type="l",xlim=c(-1,0)) points(0,0) points(coef(g)[2],coef(g)[3],pch=18) abline(v=confint(g)[2,],lty=2) abline(h=confint(g)[3,],lty=2) cor(savings$pop15,savings$pop75) summary(g,corr=TRUE)$corr g <- lm(Species ~ Area+Elevation+Nearest+Scruz+Adjacent,gala) x0 <- c(1,0.08,93,6.0,12.0,0.34) (y0 <- sum(x0*coef(g))) qt(0.975,24) x <- model.matrix(g) xtxi <- solve(t(x) %*% x) (bm <- sqrt(x0 %*% xtxi %*% x0) *2.064 * 60.98) c(y0-bm,y0+bm) bm <- sqrt(1+x0 %*% xtxi %*% x0) *2.064 * 60.98 c(y0-bm,y0+bm) x0 <- data.frame(Area=0.08,Elevation=93,Nearest=6.0,Scruz=12,Adjacent=0.34) str(predict(g,x0,se=TRUE)) predict(g,x0,interval="confidence") predict(g,x0,interval="prediction") grid <- seq(0,100,1) p <- predict(g,data.frame(Area=0.08,Elevation=93,Nearest=grid,Scruz=12,Adjacent=0.34),se=T,interval="confidence") matplot(grid,p$fit,lty=c(1,2,2),type="l",xlab="Nearest",ylab="Species") rug(gala$Nearest) data(odor) odor x <- as.matrix(cbind(1,odor[,-1])) t(x) %*% x g <- lm(odor ~ temp + gas + pack, odor) summary(g,cor=T) g <- lm(odor ~ gas + pack, odor) summary(g) g <- lm(sr ~ pop15 + pop75 + dpi + ddpi, savings) summary(g) g <- update(g, . ~ . - pop15) summary(g) g <- lm(sr ~ pop15 + pop75 + dpi + ddpi, savings) summary(g) g2 <- lm(sr ~ pop75 + dpi + ddpi, savings) summary(g2) g3 <- lm(sr ~ pop75 + ddpi, savings) summary(g3) g4 <- lm(sr ~ pop75, savings) summary(g4) x0 <- data.frame(pop15=32,pop75=3,dpi=700,ddpi=3) predict(g,x0) predict(g2,x0) predict(g3,x0) predict(g4,x0)