library(faraway) data(savings) g <- lm(sr ~ pop15+pop75+dpi+ddpi,savings) plot(fitted(g),residuals(g),xlab="Fitted",ylab="Residuals") abline(h=0) plot(fitted(g),abs(residuals(g)),xlab="Fitted",ylab="|Residuals|") summary(lm(abs(residuals(g)) ~ fitted(g))) par(mfrow=c(3,3)) for(i in 1:9) plot(1:50,rnorm(50)) for(i in 1:9) plot(1:50,(1:50)*rnorm(50)) for(i in 1:9) plot(1:50,sqrt((1:50))*rnorm(50)) for(i in 1:9) plot(1:50,cos((1:50)*pi/25)+rnorm(50)) par(mfrow=c(1,1)) plot(savings$pop15,residuals(g),xlab="Population under 15",ylab="Residuals") plot(savings$pop75,residuals(g),xlab="Population over 75",ylab="Residuals") var.test(residuals(g)[savings$pop15>35],residuals(g)[savings$pop15<35]) data(gala) gg <- lm(Species ~ Area + Elevation + Scruz + Nearest + Adjacent, gala) plot(fitted(gg),residuals(gg),xlab="Fitted",ylab="Residuals") gs <- lm(sqrt(Species) ~ Area+ Elevation+ Scruz+ Nearest+ Adjacent, gala) plot(fitted(gs),residuals(gs),xlab="Fitted",ylab="Residuals",main="Square root Response") qqnorm(residuals(g),ylab="Residuals") qqline(residuals(g)) hist(residuals(g)) par(mfrow=c(3,3)) for(i in 1:9) qqnorm(rnorm(50)) for(i in 1:9) qqnorm(exp(rnorm(50))) for(i in 1:9) qqnorm(rcauchy(50)) for(i in 1:9) qqnorm(runif(50)) par(mfrow=c(1,1)) data(airquality) airquality pairs(airquality,panel=panel.smooth) g <- lm(Ozone ~ Solar.R + Wind + Temp,airquality,na.action = na.exclude) summary(g) plot(fitted(g),residuals(g),xlab="Fitted",ylab="Residuals") gl <- lm(log(Ozone) ~ Solar.R + Wind + Temp,airquality,na.action=na.exclude) plot(fitted(gl),residuals(gl),xlab="Fitted",ylab="Residuals") plot(residuals(gl),ylab="Residuals") abline(h=0) plot(residuals(gl)[-153],residuals(gl)[-1], xlab=expression(hat(epsilon)[i]),ylab=expression(hat(epsilon)[i+1])) summary(lm(residuals(gl)[-1] ~ -1+residuals(gl)[-153])) library(lmtest) dwtest(Ozone ~ Solar.R + Wind + Temp,data=na.omit(airquality)) g <- lm(sr ~ pop15 + pop75 + dpi + ddpi, savings) ginf <- influence(g) ginf$hat sum(ginf$hat) countries <- row.names(savings) halfnorm(lm.influence(g)$hat,labs=countries,ylab="Leverages") gs <- summary(g) gs$sig stud <- residuals(g)/(gs$sig*sqrt(1-ginf$hat)) qqnorm(stud) abline(0,1) jack <- rstudent(g) jack[which.max(abs(jack))] qt(.05/(50*2),44) data(star) plot(star$temp,star$light,xlab="log(Temperature)",ylab="log(Light Intensity)") ga <- lm(light ~ temp, star) abline(ga) range(rstudent(ga)) ga <- lm(light ~ temp, data=star, subset=(temp>3.6)) abline(ga,lty=2) cook <- cooks.distance(g) halfnorm(cook,3,labs=countries,ylab="Cook's distances") gl <- lm(sr ~ pop15+pop75+dpi+ddpi,savings,subset=(cook < max(cook))) summary(gl) summary(g) plot(ginf$coef[,2],ylab="Change in pop15 coef") identify(1:50,ginf$coef[,2],countries) gj <- lm(sr ~ pop15+pop75+dpi+ddpi,savings,subset=(countries != "Japan")) summary(gj) d <- residuals(lm(sr ~ pop75 + dpi + ddpi,savings)) m <- residuals(lm(pop15 ~ pop75 + dpi + ddpi,savings)) plot(m,d,xlab="pop15 residuals",ylab="Savings residuals") coef(lm(d ~ m)) coef(g) abline(0,coef(g)['pop15']) plot(savings$pop15,residuals(g)+coef(g)['pop15']*savings$pop15,xlab="pop'n under 15", ylab="Savings(Adjusted)") abline(0,coef(g)['pop15']) prplot(g,1) g1 <- lm(sr ~ pop15+pop75+dpi+ddpi,savings,subset=(pop15 > 35)) g2 <- lm(sr ~ pop15+pop75+dpi+ddpi,savings,subset=(pop15 < 35)) summary(g1) summary(g2)