跳频检测

机器算法验证 频率 信号检测
2022-04-06 09:50:11

众所周知,频率数据中的“跳跃”很难估计。在当前的文献中,已经测试了许多用于估计这种跳跃的不同技术,并且通常具有令人满意的结果。例如, Riley, 2008是一篇关于其中一些技术的总结论文

然而,所有这些技术都涉及“浮动”的频率数据,即数据返回到均值的意义上。我有兴趣检测的频率数据的爆发。α>0α=0

此类频率数据的可视化(来自Brookmeyer & Stroup, 2003的图表)将是:

均值为 0 的频率数据

现在我发现这类数据在“疾病爆发检测”文献中经常被考虑。但我根本找不到好的转换算法估计程序

这可能是因为我不确定这种频率数据的名称。

我在上面展示的 Brookmeyer & Stroup 图表是“浮动”频率数据的 CUSUM 图,所以它不是数据本身。他们指出,如果 CUSUM 图超过,则会发出警报。这是有道理的,因为 CUSUM 是对均值偏差的转换。但在类型的频率数据的情况下,不能应用这种技术。hσα=0

所以,我有两个问题:

  • 这种类型的已知转换(例如“浮动”频率数据的 CUSUM)是什么?
  • 这种类型的众所周知和广泛使用的检测算法是什么?

任何见解都受到高度赞赏。

编辑(一些直觉)

实时运行良好的简单算法可能是某种考虑均值或标准差的转换。的数据。尽管这样的转换很容易构建,但将“真正的爆发”与正常观察区分开来可能非常困难。这是因为均值和标准差。当接管某个窗口时,两者都趋于零。例如,诸如之类的阈值将不是稳健的。kσkμ

2个回答

由于您似乎在这里有一个时间序列,我建议您查看我的相关答案以了解一些想法(时间序列聚类熵测量异常检测)以及更多信息的链接。此外,我还会考虑傅立叶变换方法

更新(基于在下面的评论中与 OP 的讨论):

关于寻求问题的分析解决方案,在我看来有几种方法:1)对原始数据应用CUSUM(或其他)变换,然后进行进一步的分析(检测);2)使用CUSUM检测突变;3) 使用替代算法。

谈到 CUSUM转换,这似乎是一些争论的话题——一些研究人员反对它,警告可能失去推理有效性,而另一些人不同意,仍然认为这种方法很有用。您可能还会发现本文相关且有用。

谈到选择合适的算法以及主题背后的理论和相应的方法,我强烈推荐 Basseville 和 Nikiforov 编写的优秀的综合性和免费在线书籍 “检测突然变化:理论和应用”

关于实现突变(异常)检测的软件R选择,我建议探索几个似乎提供所需分析功能(除了视觉)并支持 CUSUM 和类似算法的软件包。特别是,看看以下包:(strucchange参见vignette / JSS 论文),changepoint(参见vignettesurveillance,. 最后一个要求特别提及(考虑到您和 RegressForward 的见解),因为该软件包提供了一个框架并实施了用于分析类似流行病的过程现象的统计方法(在远远超出流行病学的各个领域)。项目主页和开发托管在 R-Forge 上,但 R 包在 CRAN上可用。提供了一个小插图和相关的演示幻灯片我希望此更新能显着改善我的答案并有所帮助。

多么有趣的数据集。我想您的特定类型的数据并不能简单地代表 500 个独立事件......同时发生,然后返回到连续数年发生的 0 个这些事件。与疾病爆发类似,(可能)有一个触发事件将世界的状态改变为可能成功的状态,然后发生 500 次成功,然后我们又回到了无事发生的状态。

你会考虑使用障碍模型来估计这种“爆发”发生的概率和“爆发”的规模吗?跨栏模型表明世界的自然状态是 0 事件。但是如果通过了一些障碍,那么世界的状态就是事件的数量来自不同的分布(不包括零)。它们与零膨胀模型非常相似(其中第二个分布仍然包括零)。但是,它们不模拟跳跃不连续性。

我认为这与您对的描述相匹配,并且没有别的考虑,可能值得进一步调查。hσ