Traminer 中的多个事件

may*_*bra 5 r traminer

我正在尝试使用 TraMineR 一次分析多个序列。我已经看过 seqdef 但我很难理解当我处理多个变量时如何创建 TraMineR 数据集。我想我正在使用类似于 Aassve 等人使用的数据集的东西。(如教程中提到的),其中每个波都有关于几个状态的信息(例如孩子、婚姻、就业)。我所有的变量都是二进制的。以下是包含三个波浪 (D、W2、W3) 和三个变量的数据集示例。

D<-data.frame(ID=c(1:4),A1=c(1,1,1,0),B1=c(0,1,0,1),C1=c(0,0,0,1))
W2<-data.frame(A2=c(0,1,1,0),B2=c(1,1,0,1),C2=c(0,1,0,1))
W3<-data.frame(A3=c(0,1,1,0),B3=c(1,1,0,1),C3=c(0,1,0,1))
L<-data.frame(D,W2,W3)
Run Code Online (Sandbox Code Playgroud)

我可能是错的,但我发现的材料一次只涉及一个变量的数据管理和分析(例如,跨几波的就业状况)。我的数据集比上面的数据集大得多,因此我无法真正手动估算这些数据,如本教程第 48 页所示。有人使用 TraMineR (或类似的软件包)处理过这种类型的数据吗?

1) 您如何将上述数据提供给 TraMineR?

2)如何计算替代成本,然后对它们进行聚类?

非常感谢

Mat*_*der 5

使用序列分析时,我们对一个变量的演变感兴趣(例如,一个变量跨多个波浪的序列)。然后,您有多种可能性来分析多个变量:

  • 创建每个变量的序列,然后分析序列簇之间的链接。在我看来,如果您的变量衡量不同的概念(例如家庭和就业),这是最好的方法。
  • 使用该函数为每个波创建一个新变量,该变量是interaction一个波的不同变量的变量interaction。例如,对于第一波,使用L$IntVar1 <- interaction(L$A1, L$B1, L$C1, drop=T)(使用drop=T删除未使用的答案组合)。然后分析这个新创建的变量的序列。在我看来,如果您的变量是同一概念的不同维度,那么这是首选方式。例如,婚姻、孩子和结合都与家庭生活有关。
  • 每个变量创建一个序列对象,然后用于seqdistmc计算距离(多通道序列分析)。这与之前的方法等效,具体取决于您将如何设置替代成本(见下文)。

如果您使用第二种策略,则可以使用以下替代成本。您可以计算原始变量之间的差异来设置替代成本。例如,在“已婚、有孩子”和“未结婚、有孩子”状态之间,您可以将替换设置为“1”,因为只有“婚姻”变量存在差异。同样,您可以将状态“已婚,有孩子”和“未婚且无孩子”之间的替代成本设置为“2”,因为所有变量都不同。最后,将插入缺失成本设置为最大替代成本的一半。这是 所使用的策略seqdistmc

希望这可以帮助。