时间序列预测之一:指数平滑法(二)R语言——代码实现
参考:https://www.cnblogs.com/fengzzi/p/10044426.html
指数模型是用来预测时序未来值的最常用模型。这类模型相对比较简单,但是实践证明它们的短期预测能力较好。不同指数模型建模时选用的因子可能不同。比如
- 单指数模型(simple/single exponential model)拟合的是只有常数水平项和时间点i处随机项的时间序列,这时认为时间序列不存在趋势项和季节效应;
- 双指数模型(double exponential model;也叫Holt指数平滑,Holt exponential smoothing)拟合的是有水平项和趋势项的时序;
- 三指数模型(triple exponential model;也叫Holt-Winters指数平滑,Holt-Winters exponential smoothing)拟合的是有水平项、趋势项以及季节效应的时序。
R中自带的HoltWinters()函数或者forecast包中的ets()函数可以拟合指数模型。ets()函数的备选参数更多,因此更实用。
1. HoltWinters()函数
R语言与数据分析之七:时间序列简单指数平滑
R语言与数据分析之八:时间序列--霍尔特指数平滑法
R语言与数据分析之九:时间内序列--HoltWinters指数平滑法
2. forecast包中的ets()函数
平滑参数(α,β,γ)=(水平,趋势,季节)
2.1 最简单参数
ets(ts, model="zzz")
model="ZZZ",依次含义为错误类型、趋势类型、季节类型。 "A"=additive, "M"=multiplicative and "Z"=automatically
其中ts
是要分析的时序,限定模型的字母有三个。第一个字母代表误差项,第二个字母代表趋势项,第三个字母则代表季节项。可选的字母包括:相加模型(A)、相乘模型(M)、无(N)、自动选择(Z)。
"A"=additive, "M"=multiplicative and "Z"=automatically
2.2 所有参数
ets(y, model="ZZZ", damped=NULL, alpha=NULL, beta=NULL, gamma=NULL, phi=NULL, additive.only=FALSE, lambda=NULL, lower=c(rep(0.0001,3), 0.8), upper=c(rep(0.9999,3),0.98), opt.crit=c("lik","amse","mse","sigma","mae"), nmse=3, bounds=c("both","usual","admissible"), ic=c("aic","aicc","bic"),restrict=TRUE)
y:一个数值向量或时间系列
model="ZZZ":依次含义为错误类型、趋势类型、季节类型。 "A"=additive, "M"=multiplicative and "Z"=automatically
(additive,为加法;multiplicative,乘法;damped,阻尼;Null,无)
damped=NULL,一个的阻尼趋势
lower=c(rep(0.0001,3), 0.8), upper=c(rep(0.9999,3),0.98), 参数(α,β,γ,φ)的上下界
opt.crit=c("lik","amse","mse","sigma","mae"):优化标准, “MSE”(均方误差),“AMSE”((Average MSE over first nmse forecast horizons),“sigma”(标准偏差残差),“mae”(残差绝对值的平均值),或“lik”(对数似然,默认值)
nmse=3, 平均多级MSE(1 <=nmse<= 10)的步数。
bounds=c("both","usual","admissible"): 收敛参数空间类型,"usual" 表示所有参数都必须指定上限和下限之间,“"admissible"表示参数必须位于允许的空间,”"both"(默认)的交叉点这些区域。
ic=c("aic","aicc","bic"):在模型选择要使用的信息准则。
restrict=TRUE:如果是TRUE,无限方差模型将不会被允许
3. 预测准确性度量
- 平均误差和平均百分比误差:一般来说,平均误差和平均百分比误差用处不大,因为正向和负向的误差会抵消掉。
- RMSE:给出了平均误差平方和的平方根,本例中即1.13°F。
- 平均绝对百分误差:给出了误差在真实值中的占比,它没有单位,因此可以用于比较不同时序间的预测准确性;但它同时假定测量尺度中存在一个真实为零的点(比如每天的游客数量),但华氏温度中并没有一个真实为零(即不存在分子运动动能)的点,因此这里不能用这个统计量。
- 平均绝对标准化误差:是最新的一种准确度测量,通常用于比较不同尺度的时序间的预测准确性。这几种预测准确性度量中,并不存在某种最优度量,不过RMSE相对最有名、最常用。
时间序列预测之一:指数平滑法(二)R语言——代码实现相关推荐
- 时间序列预测:指数平滑法及python实现
1. 移动平均 from sklearn.metrics import r2_score, mean_absolute_error, median_absolute_error# 滑动窗口估计,发现数 ...
- 预测算法——指数平滑法
目录 •1.指数平滑定义及公式 •2.一次指数平滑 •3二次指数平滑 •4.三次指数平滑 •5指数平滑系数α的确定 1.指数平滑的定义及公式 产生背景:指数平滑由布朗提出.他认为时间序列的态势具有稳定 ...
- 一文速学数模-时序预测模型(四)二次指数平滑法和三次指数平滑法详解+Python代码实现
目录 前言 二次指数平滑法(Holt's linear trend method) 1.定义 2.公式 二次指数平滑值: 二次指数平滑数学模型: 3.案例实现 三次指数平滑法(Holt-Winters ...
- python 时间序列预测 指数平滑_时间序列分析之指数平滑法(holt-winters及代码)...
在做时序预测时,一个显然的思路是:认为离着预测点越近的点,作用越大.比如我这个月体重100斤,去年某个月120斤,显然对于预测下个月体重而言,这个月的数据影响力更大些.假设随着时间变化权重以指数方式下 ...
- 时序预测方法——指数平滑法(Holt-Winters)
一.时间序列: 时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列. 举个比较简单的例子,一个人如果一年每天都量体重,这个每天记录的体重信息就是一个时间序列. 二.时 ...
- 数据预测算法-指数平滑法-2
一次.二次.三次指数平滑计算思想及代码 概述 一般常用到的指数平滑法为一次指数平滑.二次指数平滑和三次指数平滑,高次指数平滑一般比较难见到,因此本文着重介绍了一次.二次和三次指数平滑的特点与不同. 一 ...
- Holt两参数指数平滑法的R实现
指数平滑法是一种简单的高效的时间序列预测方法之一,简单指数平滑法只适合预测没有长期趋势和季节效应的时间序列,并且只能预测未来一期的值. 对于具有长期趋势的,但是没有季节效应的时间序列,就比较适合利用H ...
- 时间序列分析之指数平滑法(holt-winters及代码)
在做时序预测时,一个显然的思路是:认为离着预测点越近的点,作用越大.比如我这个月体重100斤,去年某个月120斤,显然对于预测下个月体重而言,这个月的数据影响力更大些.假设随着时间变化权重以指数方式下 ...
- 一文速学数模-时序预测模型(五)指数平滑法详解+Python代码实现
目录 前言 一.指数平滑法 1.简介 2.特点 3.基本原理 4.优缺点 优点 缺点</
- 【时序】M4竞赛冠军方案:一种用于时间序列预测的指数平滑和递归神经网络的混合方法
论文名称:A hybrid method of exponential smoothing and recurrent neural networks for time series forecast ...
最新文章
- Xcode7 (Xcode setting ENABLE_BITCODE)
- Kafka如何实现每秒上百万的超高并发写入?
- FFLIb Demo CQRS
- mapping数据列表
- Winform—C#读写config配置文件
- 《node.js开发指南》读后感
- 在IPCAM上实现RTSP协议直播-live555 转
- linux内存源码分析 - 内存池
- ue4是什么意思_UE4 C++基础教程 - 资源常见名词解释
- 九、ISO 27000 术语定义及相关资料
- 『已解决』IIS启动 服务无法在此时接受控制信息
- 惯量比多少合适_惯量比计算公式
- 报道|香港科大校友“盐马行”活动成功举办
- SpringBoot整合IoTDB
- oracle远程投毒漏洞复现,oracle TNS Listener远程投毒(CVE-2012-1675)漏洞分析、复现...
- WEB 视频开发-视频播放器
- 【正点原子Linux连载】第二十五章 语音识别项目 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 行业分析-全球与中国船用废气解决方案市场现状及未来发展趋势
- idea 彩虹屁合并语音包,语音包无法使用 解决教程
- 【Java SE】封装的详解
热门文章
- php 数组交集函数,PHP array_intersect_uassoc 函数
- property field java_Java 中 field 和 variable 区别及相关术语解释
- 魅族升级鸿蒙,魅族要“弯道超车”?率先升级鸿蒙OS,挥别安卓系统
- python的setting怎么找_python-DJANGO_SETTINGS_MODULE如何配置
- c#程序设计语言杜松江版_当前最流行的10款编程语言,你会哪种?
- 浅谈数据中心IT机房的空气调节(上篇)-气流遏制
- 综合布线成数据中心建设和运营的重要课题
- 数据中心的未来:低成本、更清洁、更高效
- 抛弃市电!微软建成世界首座天然气数据机房:能耗大减
- 成功解决pandas.core.indexing.IndexingError: Too many indexers