## ----echo=FALSE,eval=FALSE---------------------------------------------------- # options(width=80) ## ----eval=FALSE--------------------------------------------------------------- # library(catdata) # data(unemployment, package="catdata") # attach(unemployment) ## ----eval=FALSE--------------------------------------------------------------- # library(mgcv) ## ----eval=FALSE--------------------------------------------------------------- # durbin[durbin==2] <- 0 # # gamage <- gam(durbin ~ s(age, bs="ps", m=c(2,1), k=15), family=binomial()) ## ----eval=FALSE--------------------------------------------------------------- # minage <- min(age) # maxage <- max(age) # ageindex <- seq(from=minage, to=maxage, by=0.01) # # pred <- predict(gamage, newdata=data.frame("age"=ageindex), type="response") ## ----eval=FALSE--------------------------------------------------------------- # bspline<-function(x,k,i,m=2) # {if (m==-1) # {res<-as.numeric(x=k[i])} # else{ # z0<-(x-k[i])/(k[i+m+1]-k[i]) # z1<-(k[i+m+2]-x)/(k[i+m+2]-k[i+1]) # res<- z0*bspline(x,k,i,m-1)+z1*bspline(x,k,i+1,m-1)} # res} ## ----eval=FALSE--------------------------------------------------------------- # k <- gamage$smooth[[1]]$knots # # meanage <- c() # # for (i in minage:maxage){ # meanage[i] <- sum(durbin[age==i]) # if(sum(durbin[age==i])!=0){ # meanage[i] <- mean(durbin[age==i]) # } # } ## ----fig.width=8,eval=FALSE--------------------------------------------------- # par(cex=1.3, lwd=1.5) # plot(ageindex, pred, type="l", ylim=c(0,0.8), col="gray", xlab="age/years", # ylab="short-term unemployment") # for(i in 1:15) # {lines(ageindex,(0.5*gamage$coefficients[i+1]+0.7)*(bspline(x=ageindex,k=k, # i=i+1,m=2)),type="l", col="gray")} # points(minage:maxage, meanage[minage:maxage], pch=20) ## ----eval=FALSE--------------------------------------------------------------- # gamage2 <- gam(durbin ~ s(age, bs="ps", fx=TRUE, m=c(2,1),k=15), family=binomial()) # # pred2 <- predict(gamage2, newdata=data.frame("age"=ageindex), type="response") ## ----fig.width=8,eval=FALSE--------------------------------------------------- # par(cex=1.3, lwd=1.5) # plot(ageindex, pred2, type="l", ylim=c(0,0.8), col="gray", xlab="age/years", # ylab="short-term unemployment") # for(i in 1:15) # {lines(ageindex, (0.1*gamage2$coefficients[i+1]+0.3)* # bspline(x=ageindex,k=k,i=i+1,m=2),type="l", col="gray")} # points(minage:maxage, meanage[minage:maxage],pch=20) ## ----echo=FALSE,results='hide',eval=FALSE------------------------------------- # detach(unemployment) # rm(unemployment)