R - 在血压曲线中找出异常值/假象的方法

Bor*_*rsi 6 r drift outliers

你们有没有想过如何解决在血压曲线中发现人工制品/异常值的问题?我的目标是编写一个程序,找出每个人工制品的起点和终点.以下是不同人工制品的一些例子,绿色区域是正确的血压曲线,红色区域是人工制品,需要检测:

在此输入图像描述

在此输入图像描述

在此输入图像描述

这是全血压曲线的一个例子: 在此输入图像描述

我的第一个想法是从整个曲线计算平均值,并在曲线的短间隔内计算许多均值,然后找出它的不同之处.但血压变化很大,我不认为这可行,因为它会发现太多不存在的"人工制品".

感谢您的输入!

编辑:以下是两个示例人工制品的一些数据:

Artefact1

Artefact2

Dav*_*vid 3

没有任何数据,只有一个选项可以引导您采用不同的方法。

首先(不知道你的数据,这总是一个巨大的缺点),我会向你指出马尔可夫切换模型,可以使用HiddenMarkov包或HMM包进行分析。(不幸的是,RHmm第一个链接描述的 -package 不再维护)

您可能会发现值得研究一下 Twitter 的异常值检测

此外,有许多博客文章研究变化点检测或政权变化。我发现R 博主的这篇博客文章对于入门非常有帮助。它指的是CPM-package,代表“使用参数和非参数方法进行顺序和批量变化检测”、-package BCP(“变点问题的贝叶斯分析”)和ECP-package(“非参数多变点”)多变量数据分析”)。您可能想研究前两个,因为您没有多元数据。

这对您入门有帮助吗?