码迷,mamicode.com
首页 > 编程语言 > 详细

指数平滑算法

时间:2015-02-02 18:03:26      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:newlisp   算法   

对时间序列的预测,用的最多的是指数平滑算法,算法不复杂。

首先理解一个基本公式:

 指数平滑法的基本公式是:技术分享 式中,

  • St--时间t的平滑值;
  • yt--时间t的实际值;
  • St ? 1--时间t-1的平滑值;
  • a--平滑常数,其取值范围为[0,1];
说明:

1. 此公式用t-1时刻的平滑值和t时刻的hi实际值来计算t时刻的平滑值

2. a是系数,越接近1的话,远期数据对于计算结果影响越小,越接近0,则影响越大

用newlisp表达公式如下:

(define (cal-basic real-t1 smooth-t0 a)
  (add (mul a real-t1) (mul (sub 1 a) smooth-t0)))
说明:

t0 就是 t-1

t1 就是t


有了这个函数,我们就可以得到t2时刻的平滑值smooth-t2, 然后可以运用一次指数平滑预测公式进行预测:

smooth-t2=a * real-t1 + (1-a) * smooth-t1

newlisp代码为:

;; @return smooth value of t2
(define (cal-exponential1 real-t1 smooth-t0 a)
  (let (smooth-t1 (cal-basic real-t1 smooth-t0 a))
    (print (add (mul a real-t1) (mul (sub 1 a) smooth-t1)))
  ))




指数平滑算法

标签:newlisp   算法   

原文地址:http://blog.csdn.net/csfreebird/article/details/43409949

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!