################################################### ### chunk number 1: ################################################### options(show.signif.stars=FALSE,digits=4,width=90) ################################################### ### chunk number 2: one ################################################### library(MASS) names(iris) levels(iris$Species) Sp <- c("S","V","C")[as.numeric(iris$Species)] pairs(scale(iris[,-5]),pch=Sp, col=as.numeric(iris$Species)) ################################################### ### chunk number 3: ################################################### h1 <- hclust(dist(scale(iris[, -5])), "complete") k1 <- kmeans(scale(iris[, -5]), 3, nstart=100) table(iris$Species, cutree(h1, 3)) table(iris$Species, k1$cluster) table(cutree(h1,3), k1$cluster) ################################################### ### chunk number 4: ################################################### (z1 <- lda(Species ~ ., data = iris)) ################################################### ### chunk number 5: ################################################### z1$svd^2 ################################################### ### chunk number 6: ################################################### names(pred1 <- predict(z1, dimen = 1)) ################################################### ### chunk number 7: ################################################### table(Sp, pred1$class) # confusion matrix table(pred1$class, k1$cluster) # compare to cluster analysis ################################################### ### chunk number 8: ################################################### zapsmall(pred1$posterior[c(1,70,73,84,85),]) ################################################### ### chunk number 9: two ################################################### plot(z1,dimen=1,type="density") ################################################### ### chunk number 10: coris1 ################################################### loc <- "http://www.stat.umn.edu/~sandy/courses/8053/Data/SAheart.txt" coris <- read.csv(url(loc),header=TRUE, row.names=1) pairs(coris[, -c(5, 10)], col=c("blue", "red")[coris[, 10] + 1], cex=.4) ################################################### ### chunk number 11: three ################################################### set.seed(10131985) train <- sample(1:462, 231) table(coris$chd) (lda1 <- lda(chd ~ ., coris, subset = train)) (t1 <- table(predict(lda1,newdata=coris[-train,])$class,coris$chd[-train])) (t1[1,2]+t1[2,1])/sum(t1) plot(lda1,dimen=1,type="density") ################################################### ### chunk number 12: four ################################################### summary(logist1 <-glm(chd~.,coris,family=binomial,subset=train)) logist.class <- ifelse(predict(logist1,newdata=coris[-train,])<0,0,1) (t2 <- table(logist.class,coris$chd[-train])) (t2[1,2]+t2[2,1])/sum(t1) table(predict(lda1,coris[-train,])$class,logist.class) ratio <- coef(lda1)/coef(logist1)[-1] library(lattice) print(barchart(ratio,xlab="LDA coef / Logistic coef")) ################################################### ### chunk number 13: ################################################### library(randomForest) r1 <- randomForest(factor(chd,labels=c("neg", "pos"))~.,coris, subset=train) with(coris,table(actual=chd[train],predicted=predict(r1))) (t3 <- with(coris,table(actual=chd[-train],predicted=predict(r1,newdata=coris[-train,])))) (t3[1,2]+t3[2,1])/sum(t3)