# Commands for the car data. The variable speed is car speed, # while dist is stopping distance (in feet). data(cars) attach(cars) plot(cars,xlab="Speed (mph)",ylab="Stopping distance (ft)") cl=loess(dist~speed) lines(speed,cl$fitted) lines(lowess(cars$speed,cars$dist,f=2/3,iter=3),col="red") lboot=function(x,B=20){ nl=dim(x)[1] cl=NULL plot(x[,3],x[,4],xlab="Speed (mph)",ylab="Stopping distance (ft)") lines(x[,3],x[,1],type="l",col="red") for(i in 1:B){ bsamp=x[,1]+sample(x[,2],nl,replace=TRUE) cfit=loess(bsamp~x[,3])$fitted cl=cbind(cl,cfit) lines(x[,3],cfit) } return(cl) } py=lboot(cbind(cl$fitted,cl$residuals,speed,dist)) # Repeat with larger bootstrap sample to get confidence bands py=lboot(cbind(cl$fitted,cl$residuals,speed,dist),B=100) plot(cars,xlab="Speed (mph)",ylab="Stopping distance (ft)") cband=apply(py,1,quantile,probs=c(.05,.95)) lines(speed,cband[1,],col="red") lines(speed,cband[2,],col="blue") title("Car data with 90% empirical confidence bands")