## ----preliminary, echo=FALSE, results="hide", message=FALSE, fig.keep="none"---- options(width=60, prompt="R> ", continue=" ", useFancyQuotes=FALSE, digits=3) library(WeightedCluster) library(TraMineR) library(knitr) hook_setwidth <- local({ default.width <- 0 function(before, options, envir){ if(before) { default.width <<- getOption("width") options(width = options$consolew) } else{ options(width = default.width) } return(NULL) } }) knit_hooks$set(consolew =hook_setwidth) ## knit_hooks$set(crop =hook_pdfcrop) knit_hooks$set(small.mar = function(before, options, envir) { if (before) par(mar=c(2.1, 4.1, 4.1, 1.1)) # smaller margin on top and right }) opts_chunk$set(message=FALSE, prompt=TRUE, dev="pdf", echo=TRUE, comment=NA, small.mar=TRUE, fig.align="center", fig.path="graphics/WCP-", size="small") ## knit_hooks$set(error = function(x, options) stop(x)) ##knit_hooks$set(warning = function(x, options) stop("Warnings: ", x)) ## ----install, echo=TRUE, results="hide", eval=FALSE, fig.keep="none"---- # install.packages("WeightedCluster") # library(WeightedCluster) ## ----dataload, echo=TRUE, results="hide", fig.keep="none"---- data(mvad) ## ----wcagg, echo=TRUE, fig.keep="none"-------------------- aggMvad <- wcAggregateCases(mvad[, 17:86]) print(aggMvad) uniqueMvad <- mvad[aggMvad$aggIndex, 17:86] ## ----wcagg-diss, echo=TRUE, fig.keep="none"--------------- mvad.seq <- seqdef(uniqueMvad, weights=aggMvad$aggWeights) ## Computing Hamming distance between sequence diss <- seqdist(mvad.seq, method="HAM") ## ----hierclust, echo=TRUE, consolew=50, fig.keep="none"---- averageClust <- hclust(as.dist(diss), method="average", members=aggMvad$aggWeights) ## ----avgtreecomputeecho, echo=TRUE, eval=FALSE, fig.keep="none"---- # averageTree <- as.seqtree(averageClust, seqdata=mvad.seq, diss=diss, ncluster=6) # seqtreedisplay(averageTree, type="d", border=NA, showdepth=TRUE) ## ----avgqualcompute, echo=TRUE, consolew=40, fig.keep="none"---- avgClustQual <- as.clustrange(averageClust, diss, weights=aggMvad$aggWeights, ncluster=10) ## ----avgqualplot, echo=TRUE, fig.height=3, fig.width=9---- plot(avgClustQual) ## ----avgqualplotnorm, echo=TRUE, fig.height=3, fig.width=9---- plot(avgClustQual, norm="zscore") ## ----avgqualprint, echo=TRUE, fig.keep="none"------------- summary(avgClustQual, max.rank=2) ## ----pamcompute, echo=TRUE, consolew=40, fig.keep="none"---- pamClustRange <- wcKMedRange(diss, kvals=2:10, weights=aggMvad$aggWeights) ## ----pamqualprint, echo=TRUE, fig.keep="none"------------- summary(pamClustRange, max.rank=2) ## ----mppamplot, fig.height=6, fig.width=9----------------- seqdplot(mvad.seq, group=pamClustRange$clustering$cluster5, border=NA) ## ----mvadcluster, echo=TRUE, fig.keep="none"-------------- uniqueCluster5 <- avgClustQual$clustering$cluster5 mvad$cluster5 <- uniqueCluster5[aggMvad$disaggIndex] table(mvad$funemp, mvad$cluster5)