怎样判断一组序列的走势?是上升还是下降还是震荡?

mutian1983987 2010-12-29 07:56:25
最近在做一个离散序列的判断的问题
比如我有10个数的序列 ,当然通过肉眼观察可以很直观的观察出是上升,是下降还是震荡。
但是我现在需要再程序中判断,也就是说要通过对这些点的值的计算来判断出该序列的走势类型。
有人说可以通过斜率,实值,和方差来判断。但是我想了很久也没想出来怎么做~
比如有这样一个序列
qikan_xg=[0.262842,0.318369,0.300928,0.433336,0.500928,0.6702,0.936681,0.997806,1];
我现在有个想法
1:是计算两个点之间的斜率,然后把他们相加,如果最后的值大于0就说明是增长,小于0就是下降,但是这样判断也不正确,(不足:幅度 中间的变化不能体现出来)
2:统计斜率正负的个数,如果 正负个数相差不大,说明是不断的上升不断地下降,是震荡型的 ,正的多 就判断为涨
负的多就判断为降,(不足:虽然斜率可以表示上升和下降,但是没有考虑斜率的大小,不能判断上升和下降的幅度)
3:把序列分为三段,求每段的平均值,如果前两个都小于最后的就判断是上涨的,相反就是下降的,如果是中间的大于或小于两边的就判定为震荡的。(不足:求均值相当于平滑的曲线,可能导致结果变化不大,但实际的曲线变化很大)
上面的只是我的一些想法,但没有通过一些数理统计和概率计算的方法来做出更理论性的分析
希望高手能够指点一二
谢谢了~~~~
...全文
1545 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
beyond071 2010-12-31
1.做最小二乘拟合,把序列拟合成一条直线。

2.根据直线的斜率k可以得知序列的主要走势:
例如:(1)k > 0.1763 上升 (2) k < -0.1763 下降 (3)其他,平稳

3.然后计算序列各点到直线的距离(和方差一样)
设定一个阈值L,统计超过L的点数目,点数目越多说明序列震荡越厉害,可以给震荡评级。
  • 打赏
  • 举报
回复
fire_woods 2010-12-30
假設A序列有n個數
S = Sum(|A[m]-A[m-1]|) n>m>0,
則當序列是單調時S = |A[n-1]-A[0]|
否則S > |A[n-1]-A[0]|
求|A[n-1]-A[0]|/S可以大概表示震盪的幅度[0, 1], 你設置個閾值來判斷即可.
  • 打赏
  • 举报
回复
相关推荐
发帖
机器视觉

4308

社区成员

图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
帖子事件
创建了帖子
2010-12-29 07:56
社区公告
暂无公告