三次指数平滑(holt-winter)

我现在深深的发现我老公就是个杠精,我说啥他都要杠,不杠就活不了了。
生气。
这里不多说指数平滑的原理,直接给一个结论。

指数平滑预测模型的使用场合
预测模型选择 长期趋势 季节效应
一次指数平滑
二次指数平滑
三次指数平滑 有/无

上述结论出自王燕的《应用时间序列分析》,第四版,196页。

请王越不要在跟我抬杠,千恩万谢。
一次指数平滑预测值恒为常数,所以最好只做1期预测。
最近我司又让我做时间序列了,就目前我的水平而言,做出来的效果最好的是xgboost算法。
出于兴趣,自己研究了holt-winter的使用方法。

首先,这里使用的是统计学模型的python库。

from statsmodels.tsa.holtwinters import ExponentialSmoothing

其次,下面贴出代码实现方法。
# -*- encoding:utf-8 -*-

import pandas as pd
import matplotlib.pyplot as plt

from statsmodels.tsa.holtwinters import ExponentialSmoothing

# 1、对数据的预处理
input_data = open("ftproot.txt", mode='r').read().split("\n")
time_data = []
for i in range(len(input_data)):
    time_data.append(input_data[i].split(","))
# 全部数据
all_data = []
for i in range(len(time_data)):
    all_data.append(float(time_data[i][1]))
# 分一部分出来作为train数据
train_data = []
test_data = []
train_data.extend([all_data[i] for i in range(0, 1334)])
test_data.extend([all_data[i] for i in range(1334, len(all_data))])

# 2、模型参数
ets3 = ExponentialSmoothing(train_data, trend='add', seasonal='add', seasonal_periods=24)
# 3、拟合模型
r3 = ets3.fit()
# 4、预测
pred3 = r3.predict(start=len(train_data), end=len(all_data)-1)
# 5、画图,可以忽略
pd.DataFrame({
    'origin': test_data,
    'pred': pred3
}).plot(legend=True)
plt.show()
print(pred3)

image.png

数据样式如下,一小时一个点,逗号前面是时间,后面是数值。

第三,下面给出代码的具体含义。

1、先拿到数据,一小时一个点,去除时间标记,拿到数值,按照时间顺序,存入数组y3中。
2、设置模型的参数
看一下源码里怎么说的

    Holt Winter's Exponential Smoothing

    Parameters
    ----------
    endog : array-like
        Time series
    trend : {"add", "mul", "additive", "multiplicative", None}, optional
        Type of trend component.
    damped : bool, optional
        Should the trend component be damped.
    seasonal : {"add", "mul", "additive", "multiplicative", None}, optional
        Type of seasonal component.
    seasonal_periods : int, optional
        The number of seasons to consider for the holt winters.

    Returns
    -------
    results : ExponentialSmoothing class        

    Notes
    -----
    This is a full implementation of the holt winters exponential smoothing as
    per [1]. This includes all the unstable methods as well as the stable methods.
    The implementation of the library covers the functionality of the R 
    library as much as possible whilst still being pythonic.

参数:
第一个endog,当然是时间序列的数据了,array-like的形式。
第二个trend是趋势,有三种可选项,就是加法趋势和乘法趋势还有None。
第三个damped是衰减,Boolean,是否对趋势进行衰减。
第四个seasonal是季节性(周期),也是三种选项,加法、乘法还有None。
第五个seasonal_periods,季节性周期,int型,holt-winter要考虑的季节的数量。简单来说,多少点是一个周期?你可以设定为一天,一星期,一个月,一年等等
参数比较简单,一目了然。
我这边设置的趋势和季节都是加性的。因为数据是一小时一个点的,所以周期我给的是24,即一天为一个周期。
3、拟合模型
4、预测


image.png

看这个效果还不错是吧,那是因为前面都在训练集里面,真正展现实力的是后面分叉的部分。效果很差。
如果只是把后面的部分截出来看,是不是对比更明显一点。


image.png

下图是我用同样的数据,holt-winter和xgboost预测效果以及真实值的对比效果


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 1 指数平滑法 移动平均模型在解决时间序列问题上简单有效,但它们的计算比较难,因为不能通过之前的计算结果推算出加权...
    风逝流沙阅读 35,407评论 1 10
  • 本文链接:个人站 | 简书 | CSDN版权声明:除特别声明外,本博客文章均采用 BY-NC-SA 许可协议。转载...
    虚胖一场阅读 24,642评论 5 12
  • BSCM Basic of Supply Chain Management Session 2: Demand M...
    浔溱阅读 1,636评论 0 1
  • 记得身边人的喜好, 好事坏事都笑着面对, 走路也带风, 虽从小都没有见过自己的亲生父母, 可你活的像阳光, 明媚又...
    江畔暮雨077阅读 554评论 0 3
  • 留守儿童的确还是会有些许的不正常。从小到大和父母待的时间不超过2年,以前是看着人家有父母陪着,止不住的羡慕。现在是...
    九涩鹿阅读 339评论 0 0