Traminer “计算”;“子字符串”;序列间距离

Traminer “计算”;“子字符串”;序列间距离,traminer,Traminer,我的数据集(第一行=标题)如下所示: ID;Activity 1;Activity 2; ... ;Activity 20; Company_X;A1A3T1D1O1R1R8;A1A3T2O1R2;...;A1A3T6D2O1O2R2 Company_Y;A1A3T1O1R1;A1A3T2O1R2;...;A1A3T11O1O3R5 Company Z;A1A3T1D8O1R1R8;A1A3T2O1R2;...;A1A3T6D2O1R2 其中,对于每个活动,每对(一个字母+一个数字)表示序列的

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

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。我试图做的是计算公司活动之间的差异。例如,公司x的活动1应与公司y的活动1有-2的差异,因为它们有共同点A1A3T1O1R1,而不是D1和R8

TraMineR里的包裹能做到吗?这意味着在每个事件中比较预定义的字符数


非常感谢您的帮助

据我所知,像
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之间的距离。据我所知,像
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之间的距离

我无法确定您想要做什么。你的字母表是什么?什么是字符串A1A3T6D2O1O2R2?它是一个序列还是字母表中的一个元素?在后一种情况下,它是一个状态还是一个事件,或者换句话说,序列中的位置是否传递时间信息?谢谢你的回答吉尔伯特。你是对的,更多的解释会有所帮助。每对(一个字母+一个数字)代表序列的一个实体。A1=actor1,A3=actor3,O1=object1。我试图做的是计算公司活动之间的差异。例如,公司x的活动1应与公司y的活动1有差异,例如,2,因为它们有共同点A1A3T1O1R1,而不是D1和R8。然后,对的组合就是一个序列。希望它是清楚的你应该编辑这个问题,使之清楚,并允许我删除我的反对票。我不知道你想做什么。你的字母表是什么?什么是字符串A1A3T6D2O1O2R2?它是一个序列还是字母表中的一个元素?在后一种情况下,它是一个状态还是一个事件,或者换句话说,序列中的位置是否传递时间信息?谢谢你的回答吉尔伯特。你是对的,更多的解释会有所帮助。每对(一个字母+一个数字)代表序列的一个实体。A1=actor1,A3=actor3,O1=object1。我试图做的是计算公司活动之间的差异。例如,公司x的活动1应与公司y的活动1有差异,例如,2,因为它们有共同点A1A3T1O1R1,而不是D1和R8。然后,对的组合就是一个序列。希望它是清楚的你应该编辑这个问题,使之清楚,并允许我删除我的反对票。我不知道你想做什么。你的字母表是什么?什么是字符串A1A3T6D2O1O2R2?它是一个序列还是字母表中的一个元素?在后一种情况下,它是一个状态还是一个事件,或者换句话说,序列中的位置是否传递时间信息?谢谢你的回答吉尔伯特。你是对的,更多的解释会有所帮助。每对(一个字母+一个数字)代表序列的一个实体。A1=actor1,A3=actor3,O1=object1。我试图做的是计算公司活动之间的差异。例如,公司x的活动1应与公司y的活动1有差异,例如,2,因为它们有共同点A1A3T1O1R1,而不是D1和R8。然后,对的组合就是一个序列。希望它是清楚的你应该编辑这个问题,使之清楚,并允许我删除我的反对票。这正是我所需要的,非常感谢。需要一张桌子这正是我需要的,非常感谢。需要一张桌子这正是我需要的,非常感谢。需要一张桌子