当前位置:   article > 正文

python mk趋势检验_时序数据常用趋势检测方法

python走向判断

背景

在最近的项目中,需要自动检测某段时间内的某个指标是上升了还是下降了,因此需要研究下常用的时序数据趋势检测方法。

方法一 斜率法

原理

斜率法的原理就是使用最小二乘等方法对时序数据进行拟合,然后根据拟合成的直线的斜率k判断序列的数据走势,当k>0时,则代表趋势上升;当k<0时,则代表趋势下降。

代码

import numpy as np

def trendline(data):

order=1

index=[i for i in range(1,len(data)+1)]

coeffs = np.polyfit(index, list(data), order)

slope = coeffs[-2]

return float(slope)

优缺点

优点是方法简单;缺点是要求趋势是线性的,当数去波动较大时无法准确拟合。

方法二 Cox-Stuart检验

原理

直接考虑数据的变化趋势,若数据有上升趋势,那么排在后面的数据的值要比排在前面的数据的值显著的大,反之,若数据有下降趋势,那么排在后面的数据的值要比排在前面的数据的值显著的小,利用前后两个时期不同数据的差值正负来判断数据总的变化趋势。

算法步骤取xi和xi+c组成一对(xi,xi+c)。这里如果n为偶数,则c=n/2,如果n是奇数,则c=(n+1)/2。当n为偶数时,共有n’=c对,而n是奇数时,共有 n’=c-1对。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/592318
推荐阅读
相关标签
  

闽ICP备14008679号