r - Traminer R 用于序列分析 : how to account for state order besides spell lenght?

标签 r sequence traminer sequence-analysis

我正在 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/

相关文章:

algorithm - 随机生成特定范围内的整数序列

traminer - 奇怪的子序列数量?

graph - TraMineR 图上的图边距太大

r - 矢量化列加法

r - SparkR的安装

sql - Oracle SQL中是否有类似“如果不存在创建序列...”的内容?

r - 创建不同长度的序列序列

r - 如何将 stslist.freq 强制到数据帧

r - 根据在 Shiny 中单击的复选框生成多个绘图

eclipse - Mac OS X 上的 Rcpp+Eclipse