Forecasting: Principles and Practice读书笔记Chapter 3
1. 一些简单的预测方法
- 平均值预测法:所有预测值都等于历史数据的均值。
- 朴素预测法:所有预测值都等于数据中最后一个观测值。
- 季节朴素预测法:对于季节性数据,预测值等于同一季度的最后一个观测值。比如,假设数据是以月份为间隔,那么未来所有1月份的预测值都等于历史数据中最后一个1月份的值。
- 趋势预测法:在y1y_1y1和yTy_TyT之间画一条直线,未来所有预测值都落在这条直线上,即:
在某些场景下,这些预测方法还真的管用。但我们常把它们作为评价其他方法的benchmark。
2. 变换与调整
变换与调整可以使得历史数据中的模式更加简单,从而可以使用更简单的预测模型,获得更准确的预测结果。
日历调整(Calendar adjustments)
有时候数据的差异是由于日历因素造成的。比如,我们的数据是每月的牛奶产量,而一年有12个月,每个月的天数不一样。如果能消除掉这个影响,比如把数据转化为以天为单位,我们会得到更简单的pattern。示例:
人口调整(Population adjustments)
当数据受到人口变化的影响时,我们应当将数据转化为per-capita的数据,也就是说,考虑每人、每一百人或每一千人的data,而非总的data。
通胀调整(Inflation adjustments)
如果数据受到货币价值的影响,我们应当对其调整。20年前一套20万的房子与现在一套20万的房子没法比。因此,financial相关的时间序列通常基于某一年美元价格进行调整。
数学变换
有时候, 数据的方差随时间变化。这时候,可以使用对数变换。假如我们以10为底,则原始数据变化10倍,在对数域上仅增减1,因此对数起到压缩变化范围的作用。
也可以使用幂变换,比如平方根也能起到压缩的作用。
一般地,有Box-Cox变换:
λ\lambdaλ是一个可调的参数,可以根据需要选择对数变换或幂变换。
我们使用变换后的数据进行预测,预测完成后,要进行反变换:
3. 残差诊断
残差
残差是指观测值与拟合值的差:
et=yt−y^te_t=y_t-{\hat y}_tet=yt−y^t
其中,y^t{\hat y}_ty^t是对观测值预测的结果。一个好的预测方法的残差应该满足:
- 残差是不相关的。否则,残差中包含未被利用的信息。
- 残差是0均值的。否则,我们的预测是有偏的。
如果一个预测算法不满足以上二点,则它有提升的空间。若残差均值为m(m≠0)m(m\neq0)m(m̸=0),我们只需要给预测值加上m即可。检查上述两个条件有助于知道我们的model是否充分利用了可用的信息,但不应该作为选择模型的标准。此外,如果残差满足下面2个性质,则预测区间的计算会更加容易:
- 残差的方差一致。
- 残差服从正态分布。
portmanteau test
除了观察残差的自相关,我们可以做portmanteau test来检验残差自相关的前h个值是否显著区别于白噪声。一种portmanteau test为Box-Pierce test:
另一种是Box-Pierce test:
太大的Q或Q∗Q^*Q∗意味着此自相关不是来自白噪声。
4. 评价预测准确度
训练集与测试集
对于预测问题,我们也需要划分训练集与测试集。训练集用于估计模型参数,测试集用于评估预测准确度,这样才能反映模型对于新数据的预测能力。
预测误差
预测误差指观测值与预测值的差。注意,误差是在测试集上算的,而残差是在训练集上算的,这两个概念要分清。
Scale-dependent errors
Scale-depentent就是指误差的值与数据的值的单位一样,也就是一个绝对的误差,不能用来比较不同单位(尺度)的数据。两种常用的Scale-depentent误差为:
百分比误差
上面的ete_tet为绝对误差,我们可以定义百分比误差(也就是相对误差)pt=100et/ytp_t=100e_t/y_tpt=100et/yt,ptp_tpt自然就和数据的单位无关了。定义:
百分比误差的问题在于,当yty_tyt为0或接近0时,会产生不稳定的值。同时,它仅对定比变量(ratio scale)有意义,而对定距变量(interval scale)没有意义。关于定比变量和定距变量可以参考。
Scaled errors
另一种衡量相对误差的方法是scaled errors,它是基于采用一个简单预测方法时的训练MAE对预测误差进行scale。
对于非季节性数据,scaled error可以定义为:
其中,分母是采用朴素预测法时在训练集上的MAE。
对于季节性数据,scaled error可以定义为:
分母是采用季节朴素预测法时在训练集上的MAE。
Forecasting: Principles and Practice读书笔记Chapter 3相关推荐
- 《C++捷径教程》读书笔记--Chapter 16--模板(完结)
//--<C++捷径教程>读书笔记--Chapter 16--模板(完结) //--Chapter 16--模板 //--04/16/2006 Sun. //--Computer Lab ...
- 《C++捷径教程》读书笔记--Chapter 14--继承(完结)
//--<C++捷径教程>读书笔记--Chapter 14--继承(完结) //--Chapter 14--继承 //--04/14/2006 Friday //--Computer La ...
- 《C++捷径教程》读书笔记--Chapter 10--结构与联合
//--<C++捷径教程>读书笔记--Chapter 10--结构与联合 //--Chapter 10--结构与联合 //--11/24/2005 Thurs. //--Computer ...
- [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 3
<Volatility Trading> by Euan Sinclair Chapter 3 收益率和波动率的典型事实 典型事实列表 波动率并非常数 收益率分布 成交量和波动率 波动率分 ...
- [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 4
<Volatility Trading> by Euan Sinclair Chapter 4 预测波动率 波动率是否可以被预测? 无摩擦交易市场(交易费用为零) 信息有效(完美信息流) ...
- 判断性预测(Forecasting: Principles and practice第五章)
使用判断预测三种情况: 没有可用的数据:此时统计方法不适用,判断预测是唯一可行的方法 可获得数据,生成统计预测,然后用判断对其进行调整 可获得数据,并独立生成统计和判断性预测,然后进行合并 ...
- 面向对象设计原则-Principles and Patterns读书笔记三
原作者 Robert C. Martin 原文:http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf 引 ...
- 什么是需求预测(Forecasting: Principles and practice第一章)
getting started 1.1 what can be forecast? 事件或数量的可预测性取决于 我们对造成这种情况的因素了解程度如何 有多少数据可用 预测是否会影响我们要预测的事物 1 ...
- 温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 2 Kotlin语法
第二章:探究新语言,快速入门Kotlin编程 Google在2017年的I/O大会上宣布Kotlin为Android的一级开发语言,之后又在2019年的I/O大会上宣布其成为Android第一开发语言 ...
最新文章
- 注入游戏没有焦点_不戴眼镜看3D电影、玩3D游戏,这项技术能焕发端游市场第二春吗?...
- python代码规范链接
- Angular2学习笔记——NgModule
- 使用python简单连接并操作数据库
- python廖雪峰教程 学习笔记
- Magoshare Data Recovery使用教程:在mac上恢复找回删除的丢失文件
- 伟大的Redis:Redis学习资料荟萃
- 降维系列之 MDS多维缩放 与 ISOMAP 等度量映射
- 聊聊编码那些事——Unicode,gb2312,cp936,GBK,GB18030
- HDU 1097 JAVA
- Win10 - 使用‘Alt+Tab’不能切换窗口及更改切换风格
- ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
- java大作穿越arpg_动作与角色扮演完美结合 精品ARPG游戏盘点
- Latex 中如何使插图的位置不跑到开头而紧跟插入的文字后
- 转载 总结了一下十几年来的经验教训
- Link-添加网页图标
- 锐捷 Smartweb管理系统 密码信息泄露漏洞
- 如何理解视频会议体统中的GK?
- 前端 table列表自行排序
- 51单片机8×8LED点阵屏动态显示取模汉字+ Proteus仿真