fil = "http://www.uio.no/studier/emner/matnat/math/STK2100/data/spam_data.txt" spam = read.table(fil,header=T) fit = glm(y~.-train,data=spam,subset=spam$train,family=binomial) pred = predict(fit,spam[!spam$train,],type="response")>0.5 x.prcomp = prcomp(spam[,1:57],retx=TRUE,scale=TRUE) d = data.frame(x.prcomp$x,y=spam$y,train=spam$train) fit.pc = glm(y~.-train,data=d[,c(1:2,58,59)],family=binomial,subset=d$train) pred.pc = predict(fit.pc,d[!d$train,],type="response")>0.5 plot.ts(x.prcomp$rotation[,1]) library(gam) fit.gam = gam(y~s(x1)+s(x2)+s(x3),data=spam, subset=spam$train,family=binomial) pred.gam = predict(fit.gam,spam[!spam$train,],type="response")>0.5 plot(fit.gam,se=T) fit.pc.gam = gam(y~s(PC1)+s(PC2)+s(PC3),data=d, subset=d$train,family=binomial) pred.pc.gam = predict(fit.pc.gam,d[!d$train,],type="response")>0.5 nam = names(d)[1:57] k=20 formula = as.formula(paste("y",paste(paste("s(",nam[1:k],")",sep=""), collapse="+"), sep="~")) print(formula) fit.pc.gam = gam(formula,data=d,subset=d$train,family=binomial) pred.pc.gam = predict(fit.pc.gam,d[!d$train,],type="response")>0.5