2

我正在尝试重现seqrep使用中的group=选项制作的图,TraMineR因为我想要一个图像文件,其中包含每个组的代表性序列以在演示文稿中使用。似乎我在语法中遗漏了一个重要部分,因为对序列对象进行子集化会产生groupTraMineR. 正如您在下面的图片中看到的那样,由不同标识的代表性序列seqrep差异很大。你知道我的语法中缺少或错误的部分吗?

library(TraMineR)
library(WeightedCluster)

data(mvad)
mvad.alphabet <- c("employment", "FE", "HE", "joblessness", "school",
                   "training")
mvad.labels <- c("Employment", "Further Education", "Higher Education",
                 "Joblessness", "School", "Training")
mvad.scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")

## Define sequence objects
mvad.seq <- seqdef(mvad[, 17:86], alphabet = mvad.alphabet, 
                   states = mvad.scodes, labels = mvad.labels, 
                   weights = mvad$weight, xtstep = 6)

## Defining cost matrices for OM - custom and transition based
subm.trate <- seqsubm(mvad.seq, method="TRATE")

## Computing dissimilarity matrices
mvad.ham <- seqdist(mvad.seq, method="HAM", sm=subm.trate)

## Clustering OM dissimilarities
wardCluster <- hclust(as.dist(mvad.ham), method = "ward",
                      members = mvad$weight)
clust4 <- cutree(wardCluster, k = 4)

## Plotting representative sequences
seqrplot(mvad.seq, criterion="dist", group=clust4, dist.matrix=mvad.ham, 
         withlegend=FALSE, border=NA, weighted=TRUE, stats=FALSE)
seqrplot(mvad.seq[clust4==2,], criterion="dist", dist.matrix=mvad.ham, 
         withlegend=FALSE, border=NA, weighted=TRUE, stats=FALSE)

四组代表序列:见第二组 四组代表序列 第二组代表序列 第二组代表性序列

4

1 回答 1

2

在对状态序列对象进行子集化时,您应该相应地对相异矩阵进行子集化

seqrplot(mvad.seq[clust4==2,], criterion="dist", 
         dist.matrix=mvad.ham[clust4==2, clust4==2], 
         withlegend=FALSE, border=NA, weighted=TRUE, stats=FALSE)

这样做seqrep会使用错误的距离来确定代表序列。

于 2015-04-21T20:28:14.937 回答