library(faraway) data(ozone) summary(ozone) pairs(ozone,pch=".") library(rpart) (roz <- rpart(O3 ~ .,ozone)) plot(roz,margin=.10) text(roz) plot(roz,compress=T,uniform=T,branch=0.4,margin=.10) text(roz) plot(predict(roz),residuals(roz),xlab="Fitted",ylab="Residuals") qqnorm(residuals(roz)) (x0 <- apply(ozone[,-1],2,median)) predict(roz,data.frame(t(x0))) roze <- rpart(O3 ~ .,ozone,cp=0.001) printcp(roze) rozr <- prune.rpart(roze,0.01091) plotcp(roz) post(roz,filename="") rozr <- prune.rpart(roz,0.0154) 1-sum(residuals(rozr)^2)/sum((ozone$O3-mean(ozone$O3))^2) data(kanga) x0 <- c(1115,NA,748,182,NA,NA,178,311,756,226,NA,NA,NA,48,1009,NA,204,593) kanga <- kanga[,c(T,F,!is.na(x0))] kanga[1:2,] apply(kanga,2,function(x) sum(is.na(x))) round(cor(kanga[,-1],use="pairwise.complete.obs")[,c(3,9)],2) newko <- na.omit(kanga[,-c(4,10)]) dim(newko) dim(na.omit(kanga)) plot(foramina.length ~ zygomatic.width,data=newko,pch=substring(species,1,1)) kt <- rpart(species ~ ., data=newko,cp=0.001) printcp(kt) ktp <- prune(kt,cp=0.0211) ktp plot(ktp,compress=T,uniform=T,branch=0.4,margin=0.1) text(ktp) (tt <- table(actual=newko$species,predicted=predict(ktp,type="class"))) 1-sum(diag(tt))/sum(tt) pck <- princomp(newko[,-1]) pcdf <- data.frame(species=newko$species,pck$scores) kt <- rpart(species ~ ., pcdf,cp=0.001) printcp(kt) nx0 <- x0[!is.na(x0)] nx0 <- nx0[-c(3,9)] nx0 <- (nx0-pck$center)/pck$scale nx0 %*% pck$loadings ktp <- prune.rpart(kt,0.0421) ktp (tt <- table(newko$species,predict(ktp,type="class"))) 1-sum(diag(tt))/sum(tt)