Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TraMineR中的group从seqrep中提取单个代表性序列图_R_Traminer - Fatal编程技术网

使用TraMineR中的group从seqrep中提取单个代表性序列图

使用TraMineR中的group从seqrep中提取单个代表性序列图,r,traminer,R,Traminer,我正在尝试使用TraMineR中的group=选项重现seqrep绘制的绘图,因为我希望有一个图像文件,其中包含每个组在演示中使用的代表性序列。似乎我的语法中缺少了一个重要的部分,因为将sequence对象子集会产生与TraMineR中的Onboardgroup选项截然不同的结果。如下图所示,seqrep标识的代表性序列差别很大。 你知道我的语法中缺少或错误的部分是什么吗 library(TraMineR) library(WeightedCluster) data(mvad) mvad.al

我正在尝试使用
TraMineR
中的
group=
选项重现
seqrep
绘制的绘图,因为我希望有一个图像文件,其中包含每个组在演示中使用的代表性序列。似乎我的语法中缺少了一个重要的部分,因为将sequence对象子集会产生与
TraMineR
中的Onboard
group
选项截然不同的结果。如下图所示,
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)
库(TraMineR)
图书馆(加权集群)
数据(mvad)

mvad.alphabet在子集状态序列对象时,应相应地子集相异矩阵

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

如果这样做,
seqrep
将使用错误的距离来确定代表性序列。

非常感谢您的回答!实际上,在我提出这个问题之前,我已经尝试过这种方法。然后,它不起作用,但您的回答鼓励我再看一眼:首先,它不起作用,因为我对原始大数据集使用了
seqdist(…,full.matrix=FALSE)
,并且我总是得到一个错误
不正确的维度数
。我认为这并不重要,因此我没有将其包含在示例代码中。我想知道
seqrplot(…,group=clust4)
如何通过“半”距离矩阵来解决这个问题?不知何故,我无法用我的大数据集(相异矩阵~1 GB)获得真正稳定的结果。在某些情况下,
选项或使用答案中的子集绘制的图是相等的。然而,其他一些图,特别是大型集群图,仍然存在差异。对大距离矩阵进行子集划分可能会有问题吗?这可能是根据所选标准对序列进行排序时随机排序的结果(
“dist”
)。尝试通过设置
种子来控制。谢谢您的建议!我尝试过
set.seed()
,但它没有解决绘图之间的差异。我想这与权重有关,因为不同的图使用子集,如
dist.matrix=mvad.ham[clust4==2,clust4==2]
而不是选项
group=
包含更多的序列,覆盖率仍然较低,尽管加权n始终相等。真正让我困惑的是:只有一半的情节不同,而另一半则很好。它影响最大的群体和一些较小的群体。