我使用TraMineR软件包分析序列数据。我有一个大的序列数据集,我正在尝试使用TraMineR中的seqindic()
函数计算归一化湍流。
然而,当我在数据上运行seqindic()
时,turbn
和turb2n
的结果对于数据中的每个序列都是NaN
。
谁能建议什么可能导致这个问题和如何解决它?我将非常感谢任何帮助或建议。谢谢你。
值得注意的是,函数对其他几个指标的结果,包括标准差,都是正确计算的。那么,归一化湍流是如何产生NaN
值的呢?
您在注释中提供的示例运行良好。在下面的脚本中,我们首先将以SPS格式给出的序列数据转换为STS格式,然后使用alphabet参数创建状态序列对象以提供完整的字母表,因为字母表的25个标记中只有5个出现在序列中。
library(TraMineR)
alph <- c(0, 4, 16, 20, 32, 48, 52,
60, 84, 92, 116, 124, 126,
127, 252, 254, 255, 276, 348,
380, 476, 508, 509, 510, 511)
data.sps <- "(126,27)-(124,16)-(60,30)-(52,17)-(0,73)"
data.sts <- seqformat(data.sps, from="SPS", to="STS")
s <- seqdef(data.sts, alphabet=alph)
seqindic(s, indic=c("turb", "turb2", "turbn", "turb2n"))
# Turb Turbn Turb2 Turb2n
# [1] 8.186515 0.04436121 6.750483 0.03546431
编辑
但是,当DSS的子序列数超过您的系统(.Machine$double.xmax
)允许的最大双值时,无法计算湍流的最大可能值,因此无法应用归一化。