1

我的数据集(第一行=标题)如下:

ID;Activity 1;Activity 2; ... ;Activity 20;
Company_X;A1A3T1D1O1R1R8;A1A3T2O1R2;...;A1A3T6D2O1O2R2
Company_Y;A1A3T1O1R1;A1A3T2O1R2;...;A1A3T11O1O3R5
Company Z;A1A3T1D8O1R1R8;A1A3T2O1R2;...;A1A3T6D2O1R2

其中对于每个活动,每一对(一个字母 + 一个数字)代表一个序列的一部分。A1=actor1,A3=actor3,O1=object1。我试图做的是计算公司活动之间的差异。例如,company_x 的活动 1 应该与 company_y 的活动 1 有 2 的差异,因为它们有共同的 A1A3T1O1R1,但没有 D1 和 R8。

TraMineR 中的任何软件包都可以做到这一点吗?这意味着在每个事件中比较预定义数量的字符?

非常感谢您的帮助

4

1 回答 1

0

据我了解,每个字符串(活动)都A1A3T6D2O1O2R2应该被视为一对序列,并且您想要比较这些序列。

TraMineR的seqdef功能可以读取字符串形式的序列。但是,当每个元素由多个字符定义时,您必须为此引入一个分隔符(例如,A1-A3-T6)。然后,要将您的序列与公司名称配对,您可能还需要以表格形式组织数据,每个序列(活动)位于单独的行中,例如

ID         Activity
company_x  A1-A3-T6-D2-O1-O2-R2
company_y  A1-A3-T1-O1-R1
...

然后,您可以使用适用于不同长度序列的度量来计算差异。例如,最优匹配 (OM) 是将一个序列转换为另一个序列的最小成本,考虑到插入缺失和替换成本。这应该给你你所期望的。根据替代成本,A1A3T6D2O1O2R2 和 A1A3T6D2O1R2 之间的距离可能不同于 A1A3T6D2O1O2R2 和 A3T4 之间的距离

于 2015-06-18T07:20:53.427 回答