我正在 R 上使用 Traminer 进行序列分析,我只想考虑不同咒语随时间变化的顺序。 例如,我希望在绘制最频繁的序列或使用索引图时,序列 A-B-A 将被视为与 A-B-B-B-A 相同。 是否有选项可以在不更改数据格式的情况下处理此类分析?
最佳答案
有两种策略可以生成专注于状态排序的图。
- 删除所有计时信息。
- 使用绘图重点关注状态排序:平行坐标图。
您还可以使用特定的距离度量来生成专注于状态排序的类型。
示例
我们举个例子。首先构建序列对象:
library(TraMineR)
#>
#> TraMineR development version 2.3-4 (Built: 2022-11-29)
#> Website: http://traminer.unige.ch
#> Please type 'citation("TraMineR")' for citation information.
data(biofam)
## Create the sequence object
bfstates <- c("Parent", "Left", "Married", "Left/Married", "Child", "Left/Child", "Left/Married/Child", "Divorced")
bf.shortlab <- c("P","L","M","LM","C","LC", "LMC", "D")
bf.seq <- seqdef(biofam[,10:25], states=bf.shortlab, labels=bfstates)
#> [>] state coding:
#> [alphabet] [label] [long label]
#> 1 0 P Parent
#> 2 1 L Left
#> 3 2 M Married
#> 4 3 LM Left/Married
#> 5 4 C Child
#> 6 5 LC Left/Child
#> 7 6 LMC Left/Married/Child
#> 8 7 D Divorced
#> [>] 2000 sequences in the data set
#> [>] min/max sequence length: 16/16
创建于 2023 年 2 月 21 日 reprex v2.0.2
删除任何计时信息
您可以使用seqdss
函数删除计时信息:
bf.dss <- seqdss(bf.seq)
然后绘制它(任何序列图都可以):
seqfplot(bf.dss)
seqIplot(bf.dss, sortv="from.start")
平行坐标图
平行坐标图旨在仅关注状态的顺序:
seqpcplot(bf.dss)
结果可能看起来很困惑(取决于您的数据)。您可以通过显示总共占案例 50% 的颜色模式来突出显示最常见的状态排序
seqpcplot(bf.seq , filter = list(type = "function",
value = "cumfreq",
level = 0.5))
有关更多信息,请参阅以下引用。
Bürgin, R. 和 G. Ritschard (2014),分类纵向数据的装饰平行坐标图,《美国统计学家》68(2), 98-103。 https://doi.org/10.1080/00031305.2014.887591
类型学
如果您想构建专注于状态排序的类型,则需要相应地选择距离度量。有关更多详细信息,请参阅以下文章的指南部分。
Studer, M. 和 Ritschard, G. (2016),生命轨迹之间差异的重要因素:序列相异性测量的比较回顾。 J.R.统计。苏克。答,179:481-511。 https://doi.org/10.1111/rssa.12125
关于r - Traminer R 用于序列分析 : how to account for state order besides spell lenght?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75517163/