评估细胞信号数据时间序列中的峰值


9

我正在测量细胞信号测量中是否存在响应。我要做的是首先对数据的时间序列应用平滑算法(Hanning),然后检测峰值。我得到的是: 细胞信号反应的时间序列

如果我想使响应的检测比“是的,您看到连续下降的趋势有所提高”更加客观,那么最好的方法是什么?通过线性回归确定峰与基线之间的距离吗?

(我是python编码人员,几乎不了解统计信息)

谢谢


4
我认为不存在“最佳方法”。有许多方法可以分析或报告时间序列中的峰值。您的问题毫无头绪,无法理解您的追求。也许您可以咨询相关领域的文章以获取提示或基准。
ttnphns 2011年

我不知道要提供什么信息来提供线索。基本上,您的图表具有下降趋势(随着时间的流逝,从单元格获得的响应会减少),而在中间的某个位置,您可能会看到输出增加。这就对了。您是否认为主观地说响应增加10%=我所追求的基本上取决于我?
Radek

1
假设您有时看到的是所示的行为,有时只是连续下降(大约),那么如果您用6-10个小图代替一个大图,其中一半被这种增加,而另一半则没有。
AVB 2012年

它可以有多个局部最大值(凹凸)吗?
Emre 2012年

1
你为什么不发布数据,我会对此加以破解。您和其他人建议的推定过滤具有副作用。如果您想要一种客观的处理方式,我也许可以为您提供一些指导。但这一切都始于数据而不是假设!
IrishStat

Answers:


2

因此,从10月25日的评论看来,您对算法发现和表征两个主要功能感兴趣:初始响应衰减,然后是响应增加和衰减的循环。我假设在不连续的时间间隔观察数据。

这是我会尝试的方法:

  1. 使用numpy.ma.polyfit之类的例程来拟合数据中的4次多项式。这应该说明最初的下降,然后是上升/下降,但要消除众多但较小的波动。希望这个次数的多项式足够灵活以适合其他相似的系列。我认为主要目标是获得一个能够说明您正在寻找的主要模式的功能。
  2. 使用Python例程来计算适合数据的多项式函数的导数。示例例程是scipy.misc.derivative和numpy.diff。您正在寻找一阶导数为零的时间值,这表示该函数的局部最小值或最大值。甲二阶导数试验可用于确认该点对应于最小或最大。如果您显示的图形具有代表性,那么您大概会有三个这样的点。请注意,此处的Sage项目可能非常有价值。
  3. 此时,您将拥有与

    一个。初始衰减的开始

    b。上升的开始

    C。第二次衰减的开始

然后,您可以进行分析所需的操作来评估更改。

最好让数据说明一切:在多个系列中,当您应用此方法时,上升时典型的大小变化是什么,通常在衰减周期中何时发生,并且持续多长时间?从位置,大小和持续时间方面看,这种上升趋势的分布情况如何?了解了这些统计数据后,您可以更好地将特定上升趋势定性为在公差范围内,就其发生的时间,大小和持续时间而言。从我的理解,关键是很容易识别,其中,这些变化正在发生。我所描述的其余内容都是直接计算的。


4
多项式将不适用于这些数据,除非您将次数取大到它们可能会引入虚假峰的程度。
ub

也许我应该澄清我的答案,他仍然需要应用汉宁函数,然后进行多项式拟合。汉宁窗口可能必须更改以获得更平滑的功能。还是您说低次多项式不适用于平滑数据?
Josh Hemann

5
乔希(Josh),低阶多项式绝对不会起作用。您需要一个局部平滑器(例如内核平滑器或某些样条线),并且不必是多项式,它具有可怕的特性。(多项式可能会在本来应该表现良好的数据系列之间引入虚假的巨大峰值。)
笨蛋

@whuber,虽然我同意全局拟合多项式可能不是一个好主意,但函数围绕点的泰勒展开是低阶多项式,因此来自局部二次拟合的系数应对应于估计一阶导数。因此,如果不是“最佳”的话,局部二次回归不是最直接的方法吗?f(x)=f(x0)+(xx0)f(x0)+(xx0)22!f(x0)+...
Sameer 2012年

3
感谢您澄清这一点,@ Sameer。我同意局部低阶多项式拟合可能是有效的,而我并不是要在我先前的评论中暗示相反的意思(其意图是将“多项式”理解为全局拟合)。至于是否是“最佳”,我必须同意ttnphns对原始问题的评论:这一切取决于。我希望局部二次拟合与密集的数据序列能够近似逼近高斯核平滑度,这为我们提供了一种方法。“最佳”的另一种感觉是克里金法的BLUP,它可以像样条曲线。
ub

1

这里有一些想法,但是我顶着头可能会起作用。

导数:如果采用数组并将元素彼此相减以得到少分的数组,但这是一阶导数。如果现在将其平滑并寻找符号变化,则可能会检测到凸起。

移动平均线:也许使用2个滞后移动(指数或窗口移动平均线)可能会显示较大的变化而忽略较小的变化。基本上,较小的窗口移动平均值的宽度必须大于您要忽略的凸块的宽度。较宽的EMA必须较宽,但不能太宽以检测凹凸。

您会在它们交叉时寻找并减去滞后(窗口/ 2),这是您的颠簸所在的估计。 http://www.stockopedia.com/content/trading-the-golden-cross-does-it-really-work-69694/

线性模型:进行一系列具有足够宽度的线性模型,这些模型具有几个小凸起的宽度,例如100个点。现在遍历数据集,在X变量上生成线性回归。只需查看X的系数,看看大符号变化发生的位置。那是一个很大的障碍。

以上只是我的推测,可能有更好的方法来实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.