时间模式分析

机器算法验证 模式识别
2022-04-06 17:39:34

我正在分析我已分组的事件的数据。

因此,例如,假设我将 3000 个事件分为 5 个组,我们称之为 A 到 E。

我会有类似的东西

    Event  | Group | Time
   --------+-------+-------
       1   |   A   |   0
       2   |   A   |   5
       3   |   C   |   7
       4   |   D   |   16
      ...  |       |
     3000  |   B   |   6000

现在,我想看看是否有某种 n 事件长时间序列反复出现(高于机会)。

因此,例如一个 4 事件长模式可能是:
A - 3 秒- A - 2 秒- D - 5 秒- C

我发现这篇论文提出了一些有趣的方法(我实际上并不是在研究尖峰列车,但问题很相似),但在实施之前,我想看看是否有人知道其他方法/统计数据可以应用于此种问题。

2个回答

运行测试似乎是合适的,最后引用的文献开发了多个类别的测试统计量。不幸的是,这篇论文是付费的,但这里是测试统计数据的简要介绍(此处相关页面的屏幕截图)。

对于每个单独的组,我们可以计算;

  • ns=Number of successes
  • rs=Number of success runs
  • ss2=Sample variance of success run lengths
  • cs=(r21)(r+2)(r+3)/[2r(nr1)(n+1)]
  • vs=cn(nr)/[r(r+1)]

然后你为每个单独的组计算这个,测试统计量是每个的总和,并分布为自由度。csss2χ2vi

因此,假设我们有一个三个不同组的运行长度表,如下所示;

Data: 221331333121112112212112122

Length Group1  Group2  Group3
-----------------------------
     1   5       4       0 
     2   2       3       1
     3   1       0       1
-----------------------------
    n_s 12      10       5
    r_s  8       7       2
    s_s  0.6     0.3     0.5
    c_s 11.1    14.0     1.3
    v_s  7.4     7.5     3.1 
-----------------------------
x^2 = (0.6*11.1) + (0.3*14) + (0.5*1.3) = 11
DF  = 7.4 + 7.5 + 3.1 = 18

评估检验统计量右侧的区域为 0.9,因此在这种情况下,我们要么无法拒绝运行分布是随机分布的原假设。虽然它与另一条尾巴相当接近,因此这是数据比您偶然预期的更分散的边缘证据(因为这是评估卡方分布的左尾的情况之一)。


奥布莱恩、彼得 C. 和彼得 J. 戴克。1985. 基于运行长度的运行测试。生物识别学 41 (1):237-244。

我已经在这个 dropbox 链接上发布了一个关于在 SPSS 中估计这个的代码片段。它包括此处的合成示例,以及复制 O'Brien & Dyck 论文中的表和统计信息的代码示例(在一组看起来像他们的合成数据上)。

如果我理解,您正在寻找k-mers,它们是在序列中发现的大小为 k 的模式。

有一个用于分析序列数据的 R 包,称为TraMineR,其中包括用于绘制序列、查找状态持续时间的方差、在序列熵内计算、提取频繁事件子序列等功能。

您还可以使用动态时间扭曲比较两个序列以查看它们在时间上的对齐方式