我正在尝试使用TraMineR,但我愿意接受有关如何表示多通道或分层事件序列以及处理它的算法的更多信息的反馈/参考/链接 .
我有一个复杂的事件结构,我试图弄清楚如何表示为一个序列 . 有不同类型的事件 . 每种事件类型可以具有不同的字段集(以及不同数量的字段) . 例如,age可能是一种事件类型中的字段,而height可能是另一种事件类型中的字段 . 我的第一直觉(我相信一种常见的方法)就是“压扁”一切,例如:事件的每个可能的值组合构成唯一的事件类型 . 但是,这可能会错过通用事件类型中的模式 .
例如,假设我是一个狗饲养员,喝了很多咖啡,我想看看我的咖啡/狗的购买习惯是否有模式(是的,愚蠢的例子) . 我可能会举办以下活动:
- Bought dog
- Breed: hound
- Sex: female
- Bought coffee
- Store: Starbucks
- Roast: dark
- Bought dog
- Breed: hound
- Sex: female
- Bought coffee
- Store: Starbucks
- Roast: light
- Bought dog
- Breed: Doberman pincher
- Sex: male
为了平整数据,我可以说商店和烤肉的每个独特组合都是独特的咖啡购买活动 . 此外,品种和性别的每一个独特组合是一个独特的狗买事件 . 这种方法将上面的例子变成5种不同的事件类型(而不是带有字段的2种事件类型) . 这种表现形式可以检测到以下模式:如果我从星巴克喝2种黑咖啡,那么我更有可能是男性的杜宾咖啡 .
但是,此表示可能会错过更多不依赖于事件中字段值的一般模式 . 例如,一般情况下,我可能只是在买了两只咖啡后才买狗 .
我希望能够在两个“级别”检测模式,并且不确定如何表示这样做的事件 . 当然,一种方法是使用两种表示,然后将两者的结果结合起来 .
因此,问题是:1 . 与论文有关的任何链接/引用?这是一个常见的问题吗? 3.有关如何代表这些事件的任何建议? 4.有关如何在TraMineR中使用它们的任何建议5.对处理此类事情的算法的任何建议/链接/参考? 6.有什么想法吗?
谢谢!!!
1 回答
这实际上类似于这里提出的问题(尽管他们不知道引用"multi-channel"且 Headers 含糊不清):Multiple events in traminer
TraMineR支持处理具有以下功能的多通道序列:seqdistmc
我认为,一般的方法是完全按照我所说的“扁平化”解决方案 . 在这种情况下,您将每个通道的值组合为一个事件类型 . 例如在我的示例中,dog.hound.female将是一个具有一个通道/字段的事件,以替换我的示例中具有3个单独字段/通道的第一个事件 . 然后,您可以使用典型函数来查找距离,子序列等 . 您可以选择设置替换成本和查找距离,因此它有一些额外的选项可用于执行此多通道方法 . 如果您的通道长度不同或有间隙,它还会处理缺失值 .
这也类似于上面链接的主题的答案中建议的,使用本机R函数interaction .