gpt4 book ai didi

r - 使用 TraMineR 计算序列距离期间的大数据问题 (?)

转载 作者:行者123 更新时间:2023-12-04 11:08:49 37 4
gpt4 key购买 nike

我正在尝试使用 TraMineR 运行最佳匹配分析,但似乎我遇到了数据集大小的问题。我有一个包含就业咒语的欧洲国家的大数据集。我有超过 57,000 个序列,它们有 48 个单位长,由 9 个不同的状态组成。
为了了解分析,这里是序列对象的头部employdat.sts :

[1] EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-...  
[2] EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-...
[3] ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-...
[4] ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-...
[5] EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-...
[6] ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-...

在较短的 SPS 格式中,其内容如下:
Sequence               
[1] "(EF,48)"
[2] "(EF,48)"
[3] "(ST,48)"
[4] "(ST,36)-(MS,3)-(EF,9)"
[5] "(EF,48)"
[6] "(ST,24)-(EF,24)"

将此序列对象传递给 seqdist() 后函数,我收到以下错误消息:
employdat.om <- seqdist(employdat.sts, method="OM", sm="CONSTANT", indel=4)    
[>] creating 9x9 substitution-cost matrix using 2 as constant value
[>] 57160 sequences with 9 distinct events/states
[>] 12626 distinct sequences
[>] min/max sequence length: 48/48
[>] computing distances using OM metric
Error in .Call(TMR_cstringdistance, as.integer(dseq), as.integer(dim(dseq)), : negative length vectors are not allowed

这个错误是否与大量不同的长序列有关?我正在使用具有 4GB RAM 的 x64 机器,并且我还在具有 8GB RAM 的机器上尝试了它,该机器重现了错误消息。有人知道解决这个错误的方法吗?
此外,使用相同语法和国家索引对每个国家进行分析工作良好,并产生了有意义的结果。

最佳答案

我以前从未见过此错误代码,但这很可能是由于您的序列数过多。您至少可以尝试做两件事:

  • 使用参数 "full.matrix=FALSE"在 seqdist 中(参见帮助页面)。它将只计算下三角矩阵并返回一个可以直接在 hclust 中使用的“dist”对象。功能。
  • 您可以聚合相同的序列(您只有 12626 个不同的序列而不是 57160 个序列),计算距离,使用权重对序列进行聚类(根据每个不同序列在数据集中出现的次数计算),然后添加聚类回到你的原始数据集。使用 WeightedCluster 可以很容易地做到这一点。图书馆。 WeightedCluster 手册的第一个附录提供了一个分步指南(该过程也在网页 http://mephisto.unige.ch/weightedcluster 上进行了描述)。

  • 希望这可以帮助。

    关于r - 使用 TraMineR 计算序列距离期间的大数据问题 (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929936/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com