suppressMessages(require(WeightedCluster))
set.seed(99)
# Load the MVAD data & aggregate the state sequences
data(mvad)
agg <- wcAggregateCases(mvad[,17:86], weights=mvad$weight)
# Create a state sequence object without the first two (summer) time points
states <- c("EM", "FE", "HE", "JL", "SC", "TR")
labels <- c("Employment", "Further Education", "Higher Education",
"Joblessness", "School", "Training")
weights <- agg$aggWeights
mvad.seq <- seqdef(mvad[agg$aggIndex, 17:86],
states=states, labels=labels, weights=agg$aggWeights)
# Run k-modes with weights
resW <- wKModes(mvad.seq, 2, weights=agg$aggWeights)
# Run k-modes with additional frequency weights
resF <- wKModes(mvad.seq, 2, weights=agg$aggWeights, freq.weighted=TRUE)
# Examine the average silhouette widths of both weighted solutions
weighted.mean(wcSilhouetteObs(seqdist(mvad.seq, method="HAM"), resW$cluster, weights), weights)
# weighted.mean(wcSilhouetteObs(seqdist(mvad.seq, method="HAM"), resF$cluster, weights), weights)
weighted.mean(wcSilhouetteObs(dist_freqwH(mvad.seq), resF$cluster, weights), weights)
Run the code above in your browser using DataLab