不排除时间性质的多变量分类时间序列的关系挖掘

数据挖掘 数据挖掘 统计数据 文本挖掘 时间序列 分类数据
2021-10-10 06:33:01

对所有人:

我一直在为此绞尽脑汁,并想也许这里有人会知道一个包或算法来处理以下问题:

我的名义多变量时间序列如下所示:

          Time Var1 Var2 Var3 Var4 Var5 ... VarN
             0     A     A   B    C    A   ... H
             1     A     A   B    D    D   ... H
             2     B     A   C    D    D   ... H
             ..

依此类推,从 0 到 1,000,000。我想做的是在时间序列中搜索以下类型的规则:

假设 Var3 在上一步中处于状态 B,而 Var5 在上一步中处于状态 D,则 Var1 将处于状态 B。我想要做的是明确包含时间间隔的规则。一个更简单的感兴趣的例子就是将时间序列减少到

               Time    Var1 Var2 Var3 Var4 Var5 ... VarN
                0        0    0    0     0   0   ... 0
                1        0    0    0     1   1   ... 0
                2        1    0    1     0   0   ... 0

如果变量的状态与上一步不同,则变量为 1,否则为零。然后我只想有这样的规则:

如果 Var4 和 Var5 在上一步中更改,则 Var1 在当前步骤中将更改。对于一个滞后来说,这很容易,因为我可以将数据变成如下内容:

   Var1 Var2 Var3 Var4 Var5 ... VarN Var1_t-1 Var2_t-1 Var3_t-1 ...

然后进行序列挖掘,但如果我想要的规则不仅仅是一个滞后,而是可能滞后 1 到 500,那么我的数据集开始有点难以处理。

任何帮助将不胜感激。

编辑以回复评论:每列可能处于 7 种不同状态之一。就目标而言,它是非特定的,列之间的任何规则都将是有意义的。但是,预测第 30-40 和 62-75 列将特别有趣。

1个回答

这个问题是估计滞后的问题之一。估计后,您可以创建表示滞后值的其他特征,并按照您在问题本身中已经建议的那样继续进行“序列挖掘”。

对于每个变量 Var_i,您必须估计其滞后 l_i。可以通过估计具有七个符号的马尔可夫链的顺序来计算此滞后(您可以使用BICAIC来估计此顺序;两者都需要计算候选顺序的可能性并选择最大化这些标准中的任何一个的顺序)。一旦你完成了为每个变量计算马尔可夫链的顺序,那么你可以表示你的数据集,这样每一行都将具有 Var_i 的当前值及其先前的值,一直到它的估计滞后 l_i。虽然这种方法很费力,但它以自动化和简约的方式表示必要的信息,带来了丰厚的回报。