指数平滑算法

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

首先理解一个基本公式:

 指数平滑法的基本公式是: 式中,

  • 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)))
  ))
时间: 2024-12-12 19:51:21

指数平滑算法的相关文章

时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)——三次指数平滑算法可以很好的保存时间序列数据的趋势和季节性信息

from:http://www.cnblogs.com/kemaswill/archive/2013/04/01/2993583.html 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在之后的走势,三次指数平滑(Triple/Three Order Exponential Smoothing,Holt-Winters)算法可以很好的进行时间序列的预测. 时间序列数据一般有以下几种特点:1.趋势(Trend)  2. 季节性(Seasonality). 趋势描述的是时间序列的整体走势

转载:(论文) 二次指数平滑法中确定初始值的简便方法

前几天在学习时间序列中的  指数平滑算法, 在网上找到了这篇论文,读了以后感觉还可以,比较实用,为防止以后查找起来比较费劲便在这里做下保存.

时间序列分析--指数平滑法

参考文献: http://blog.csdn.net/u013527419/article/details/52822622?locationNum=7&fps=1 一. 基础知识: 1. 概念:时间序列是指一个数据序列,特别是由一段时间内采集的信号组成的序列,序列前面的信号表示采集的时间较早. 2. 前提假设:时间序列分析一般假设我们获得的数据在时域上具有一定的相互依赖关系,例如股票价格在t时刻很高,那么在t+1时刻价格也会比较高(跌停才10%):如果股票价格在一段时间内获得稳定的上升,那么在

预测算法——指数平滑法

 目录 ?1.指数平滑定义及公式 ?2.一次指数平滑 ?3二次指数平滑 ?4.三次指数平滑 ?5指数平滑系数α的确定 1.指数平滑的定义及公式 产生背景:指数平滑由布朗提出.他认为时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延:他认为最近的过去态势,在某种程度上会持续的未来,所以将较大的权数放在最近的资料. 基本原理:指数平滑法是移动平均法中的一种,其特点在于给过去的观测值不一样的权重,即较近期观测值的权数比较远期观测值的权数要大.根据平滑次数不同,指数平滑法分为一次指数平滑法

R语言与数据分析之九:HoltWinters指数平滑法

今天继续就指数平滑法中最复杂的一种时间序列:有增长或者降低趋势并且存在季节性波动的时间序列的预测算法即Holt-Winters和大家分享.这种序列可以被分解为水平趋势部分.季节波动部分,因此这两个因素应该在算法中有对应的参数来控制. Holt-Winters算法中提供了alpha.beta和gamma 来分别对应当前点的水平.趋势部分和季节部分,参数的去执法范围都是0-1之间,并且参数接近0时,近期的观测值的影响权重就越小.我们以澳大利亚昆士兰州海滨纪念商品的月度销售日子为分析对象,老套路,咱先

R语言与数据分析之七:时间序列简单指数平滑

上篇我们对时间序列数列有了整体的认识并将时间序列进行了分解,今天和小伙伴们分享常用预测算法中相对最简单的:简单指数平滑法.简单指数平滑适用于可用相加模型描述,并且处于恒定水平和没有季节变动的时间序列地短期预测. 简单指数平滑法提供了一种方法估计当前时间点上的水平.为了更加准确的估计当前时间的水平,我们使用alpha参数来控制平滑,alpha的取值在0-1之间.当alpha越接近0,临近预测的观测值在预测中的权重就越小. 我们采用伦敦1813年到1912年全部的每年每英尺降雨量来做分析对象,首先读

二进制指数退避算法

2019/12/18 二进制指数退避算法(来自于百度百科) CSMA/CD采用二进制指数退避算法,又称为二元指数后退算法.退避算法是以冲突窗口大小为基准的,每个节点有一个冲突计数器C.退避的时间与冲突次数具有指数关系,冲突次数越多,退避的时间就可能越长,若达到限定的冲突次数,该节点就停止发送数据. 定义 二进制退避技术(Binary Exponential Back off). 指在遇到重复的冲突时,站点将重复传输,但在每一次冲突之后,随着时延的平均值将加倍.二进制指数退避算法提供了一个处理重负

时间序列分析之一次指数平滑法

指数平滑法最早是由C.C Holt于1958年提出的,后来经统计学家深入研究使得指数平滑法非常丰富,应用也相当广泛,一般有简单指数平滑法.Holt双参数线性指数平滑法.Winter线性和季节性指数平滑法.这里的指数平滑法是指最简单的一次指数平滑. 指数平滑法是一种特殊的加权平均法,对本期观察值和本期预测值赋予不同的权重,求得下一期预测值的方法. 一次指数平滑法公式如下:  ————————-(1)  为t+1期的指数平滑趋势预测值: 为t期的指数平滑趋势预测值: 为t期实际观察值: 为权重系数,

二次指数平滑预测法 Python实现

从以往的时间序列值,进行指数平滑,做两次预测出下一个时间的估计值. 目录结构如下: Python代码如下: forecast.py # -*-coding:utf-8 -*- # Time:2015.11.25 sangjin __author__ = 'hunterhug' import matplotlib #matplotlib.use("Agg") #matplotlib.use("TkAgg") #matplotlib.use("gtk"