精华内容
下载资源
问答
  • 时间序列模型 (七): 时间序列建模的基本步骤

    万次阅读 多人点赞 2019-04-22 12:21:50
    时间序列建模的基本步骤 时间序列建模的基本步骤 习题 时间序列经典教材推荐 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 时间序列模型 (四):差分...

    时间序列建模的基本步骤

    时间序列建模的基本步骤

    习题

    时间序列经典教材推荐

     


    时间序列模型 (一):模型概述

    时间序列模型 (二):移动平均法

    时间序列模型 (三):指数平滑法

    时间序列模型 (四):差分指数平滑法、 自适应滤波法v

    时间序列模型 (五): 趋势外推预测方法

    时间序列模型 (六):平稳时间序列模型 :自回归AR 、移动平均 MA 、ARMA 模型

    时间序列模型 (七): 时间序列建模的基本步骤


    上面我们介绍了时间序列的一些基本概念,下面我们初步给出时间序列建模的基 本步骤,有兴趣的读者可以去查阅相关的参考资料。

     

    时间序列建模的基本步骤如下:

    习题

    1 .我国 1974~1981 年布的产量如表 11 所示。 

    2 .1960~1982 年全国社会商品零售额如表 12 所示(单位:亿元)。 试用三次指数平滑法预测 1983 年和 1985 年全国社会商品零售额。

    3.某地区粮食产量(亿千克),从 1969~1983 年顺次为:3.78,4.19,4.83,5.46, 6.71,7.99,8.60,9.24,9.67,9.87,10.49,10.92,10.93,12.39,12.59,试选用 2~3 种适当的曲线预测模型,预测 1985 年和 1990 年的粮食产量。 
     

    时间序列经典教材推荐

    ( 1 )时间序列分析:预测与控制(第4版),(美)博克斯,机械工业出版社.(偏理论,强烈推荐)

    ( 2 )时间序列分析及应用(R语言)(原书第2版)

    ( 3 )时间序列分析(经济科学译丛;“十一五”国家重点图书出版规划项目)(上下册)

    ( 4 )金融时间序列分析(第3版) ;

    ( 5)高级时间序列经济计量学;( 6 )现代时间序列分析导论(第二版)(经济科学译丛)

    ( 7 )协整理论与波动模型:金融时间序列分析及应用(第3版)(数量经济学系列丛书)

    ( 8 )时间序列分析:方法与应用(高等院校研究生用书);

     

        时间序列分析及应用(R语言)(原书第2版)  时间序列分析(经济科学译丛;“十一五”国家重点图书出版规划项目)(上下册)  金融时间序列分析(第3版) 

    高级时间序列经济计量学 现代时间序列分析导论(第二版)(经济科学译丛;“十一五”国家重点图书出版规划项目) 协整理论与波动模型:金融时间序列分析及应用(第3版)(数量经济学系列丛书) 时间序列分析:方法与应用(高等院校研究生用书)

     

    时间序列的其它博文系列:

    时间序列模型 (一):模型概述

    时间序列模型 (二):移动平均法

    时间序列模型 (三):指数平滑法

    时间序列模型 (四):差分指数平滑法、 自适应滤波法v

    时间序列模型 (五): 趋势外推预测方法

    时间序列模型 (六):平稳时间序列模型 :自回归AR 、移动平均 MA 、ARMA 模型

    时间序列模型 (七): 时间序列建模的基本步骤

     

     

     

    展开全文
  • 初步回归法matlab代码 真棒数据科学 一个开源数据科学存储库,用于学习和应用于解决现实世界中问题。 这是开始研究数据科学捷径。 只需按照以下步骤回答以下问题:“什么是数据科学?我应该学习什么才能学习...
  • 回归VS回溯

    2021-05-04 17:30:59
    建立变量之间的回归方程,并将回归方程作为预测模型,根据自变量在预测期数量变化来预测因变量关系大多表现为相关关系,因此,回归分析预测法是一种重要市场预测方法。 分类 回归分析预测法有多种类型。依据相关...

    回归

    定义

    回归分析预测法(Regression Analysis Prediction Method)是在分析市场现象自变量和因变量之间相关关系的基础上,建立变量之间的回归方程,并将回归方程作为预测模型,根据自变量在预测期的数量变化来预测因变量关系大多表现为相关关系,因此,回归分析预测法是一种重要的市场预测方法。

    分类

    回归分析预测法有多种类型。依据相关关系中自变量的个数不同分类,可分为一元回归分析预测法和多元回归分析预测法。在一元回归分析预测法中,自变量只有一个,而在多元回归分析预测法中,自变量有两个以上。依据自变量和因变量之间的相关关系不同,可分为线性回归预测和非线性回归预测。

    步骤

    1.根据预测目标,确定自变量和因变量
    2.建立回归预测模型
    3.进行相关分析
    4.检验回归预测模型,计算预测误差
    5.计算并确定预测值

    回溯

    定义

    回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

    基本思想

    在回溯法中,每次扩大当前部分解时,都面临一个可选的状态集合,新的部分解就通过在该集合中选择构造而成。这样的状态集合,其结构是一棵多叉树,每个树结点代表一个可能的部分解,它的儿子是在它的基础上生成的其他部分解。树根为初始状态,这样的状态集合称为状态空间树。
    回溯法对任一解的生成,一般都采用逐步扩大解的方式。每前进一步,都试图在当前部分解的基础上扩大该部分解。它在问题的状态空间树中,从开始结点(根结点)出发,以深度优先搜索整个状态空间。这个开始结点成为活结点,同时也成为当前的扩展结点。在当前扩展结点处,搜索向纵深方向移至一个新结点。这个新结点成为新的活结点,并成为当前扩展结点。如果在当前扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)至最近的活结点处,并使这个活结点成为当前扩展结点。回溯法以这种工作方式递归地在状态空间中搜索,直到找到所要求的解或解空间中已无活结点时为止。
    回溯法与穷举法有某些联系,它们都是基于试探的。穷举法要将一个解的各个部分全部生成后,才检查是否满足条件,若不满足,则直接放弃该完整解,然后再尝试另一个可能的完整解,它并没有沿着一个可能的完整解的各个部分逐步回退生成解的过程。而对于回溯法,一个解的各个部分是逐步生成的,当发现当前生成的某部分不满足约束条件时,就放弃该步所做的工作,退到上一步进行新的尝试,而不是放弃整个解重来。

    展开全文
  • 初步回归法matlab代码 真棒数据科学 一个开源数据科学存储库,用于学习和应用于解决现实世界中问题。 这是开始研究数据科学捷径。 只需按照以下步骤回答以下问题:“什么是数据科学?我应该学习什么才能学习...
  • 数据挖掘技术是信息时代宠儿,而分类和预测是数据分析两种基本形式,能预测未知数据趋势。本文主要介绍了何为数据分类和预测,并且通过判定树归纳细化了数据分类划分步骤;通过介绍线性回归、多元回归以及非...
  • 时间序列预测背景知识

    千次阅读 2019-01-19 19:01:39
    时间序列预测背景知识1、时间序列预测简介(introduction)2、时间序列可视化3、判断预测法4、线性回归模型5、时间序列分解1、时间序列预测简介(introduction)1、1 什么是可以被预测1、2预测,计划和目标1、3预测...


    本文一共介绍以下五块内容,分别为:

    1、时间序列预测简介(introduction)

    2、时间序列可视化

    3、判断预测法

    4、线性回归模型

    5、时间序列分解

    1、时间序列预测简介(introduction)

    1、1 什么是可以被预测的

    预测三要素
    (1)因素如何影响我们的结果
    (2)我们拥有多少数据
    (3)我们的预测是否会影响我们的预测结果
    例子
    我们可以很好的预测我们的用电情况,因为这三个条件是可以较好的满足的,用电需求往往由温度,节假日和经济条件等决定,所以我们可以找到绝大部分影响我们预测结果的因素(第一条满足);我们拥有较大量的历史用电数据和天气等数据(第二条满足);我们有足够的能力开发一个好的模型将用电需求和关键的因素相结合,而且我们的预测结果对于我们的模型影响不大(第三条满足),所以最终我们的预测结果可以非常的好.
    但是也有反例,例如大家天天讨论的股票的预测,虽然我们拥有较多的历史股票数据(第二条满足);但是我们对于每个因素对于股票价格的影响的贡献却是未知的,同样的我们对于股票的预测也会影响未来的股票的价格,例如有很多人预测股票价格会上涨,就会有很多人选择购入对应股票,而此时的股票的价格毫无疑问会受到很大的冲击,所以我们的模型的预测结果往往并不是总是很好.
    观点
    (1)只要模型预测的结果比随机猜测的结果好,我们就认为该事件是可以预测的。
    (2)很多人错误的认为在环境变化的情况的预测是不可能的,实际上,一个好的预测模型能较好的抓住事物变化的本质,抓获事物变化的规律。所以现在很多模型假设环境的变化规律会延续到未来。
    挑战
    预测结果在时间轴上变化会比较大,决定时序预测结果的因素有很多,比如数据类型等,目前也没有唯一的预测模型。有简单的直接根据最近数据对未来结果进行预测的模型(Naive Methods);有利用历史所有数据的复杂神经网络;有的时候还会出现没有任何历史数据的情况等。预测模型与方法的选择往往依赖于我们可获得的数据以及我们预测的质量。

    1、2预测,计划和目标

    预测,计划和目标的解释
    预测:使用所有可获得的信息,包括历史信息以及未来可能影响预测结果的信息来尽最大可能地预测未来我们所需的信息。
    目标:希望看到发生的效果,与预测和计划相关。
    计划:是预测和目标的一个响应,计划包含决定正确的行动来使你的预测来满足你的目标。
    预测在整个过程中是不可或缺的一部分,它影响我们的重要决策,所以在很多公司或者机构都存在预测模型.从预测的时间跨度来看的话,我们可以将我们的预测模型初步划分为:短期,中期和长期预测 其中短期预测常常用来安排人员调度,交通等;中期预测则往往被用来确定下一阶段的资源需求,例如是否需要购买原材料机器设备等.而长期预测更多的出现在公司的策略决定当中,这样的决定经常要考虑市场的机会环境因素以及内部资源等各种因素.
    明确预测的目标,是长期预测还是短期预测,是所有的产品预测还是单个产品预测.多久需要进行预测。一旦决定要预测什么,然后就可以针对性的进行数据的收集。一言以蔽之,理解需求。

    1、3预测数据和方法

    ==方法与数据之间的关系: ==数据和方法是密切相关的,拥有什么样的数据往往决定我们采用什么样的预测方法。

    • 如果没有数据或者拥有的数据和需要预测的目标相关性不大,则定量的方法较为合适。

    • 定性预测可以在两大条件满足时进行使用。(1)以往的历史数据可以获得(2)以往的模式会被传递到后面
      ==时间数据类型:==在定性预测的时候我们收集到的时间序列数据往往分为两类:

    • 时间序列数据是定期收集的,例如商店以往每天的销量;

    • 剖面数据(在时间的某一个点上收集得到).
      在这里我们仅仅探讨在规定时间节点观测到的时间序列问题,例如每小时,每天,每周每月等等.
      ==三类时间预测模型:==假设我们需要预测夏天某一个区域下一个小时的用电需求,一个最简单的带有预测变量的模型的形式为:

    • ED=f(currenttemperature,strengthofeconomy,population,timeofday,dayofweek,error)ED = f(current temperature,strength of economy,population,time of day,day of week,error)该定义中关系的定义较为明确,也较易解释,所以我们称此模型为解释模型(explanatory model),虽然这样的定义并不是百分百准确,在预测变量中有很多用电需求无法被解释,所以我们采用error项来表示这样的变动.

    • EDt+1=f(EDt,EDt1,EDt2,...,error)ED_{t+1} = f(ED_t,ED_{t-1},ED_{t-2},...,error),其中tt表示当前时间,t+1t+1表示下一时间… 此处下一时刻的预测完全依赖于历史上的单变量的数据,不依赖于其他的变量,同样的,此处我们用errorerror项来表示随机波动以及相关变量的影响.

    • EDt+1=f(EDt,currenttemperature,timeofday,dayofweek,error)ED_{t+1} = f(ED_t,current temperature, time of day, day of week, error),此类模型则被称为是动态回归模型,还有很多其他的名称(dynamic regression models, panel data models, longitudinal models, transfer function models, and linear system models).

    三类时间预测模型的选择:

    • 解释模型是首选,因为它融入了大量的信息,而不仅仅是需要预测的历史变量的信息.
    • 当系统无法解释时或者即使可以解释但是内在关系却极其复杂较难刻画,同时我们较为关心下一步会发生什么,而不是为什么它会发生,该时刻可以考虑第二种模型或者第三种模型

    1、4一些案例研究

    案例1 客户是一个生产一次性产品的大公司,例如餐巾纸,一次性盘子等.希望预测每个月的上百个产品的销量,一些产品的时间序列展示了一定的特定模式,带有一定的趋势同时有一些周期性质还有一些什么规律都没有.公司采用的模型有:

    • 过去12个月的数据的均值;
    • 过去6个月数据的均值;
    • 过去12个月的线性回归预测;
    • 过去6个月的线性回归预测;
      预测结果依赖于去年与今年的销量的斜率以及上一个观测值的结果.

    案例2 客户是澳大利亚联邦政府,希望预测每年在药品福利计划上的开支,药品福利计划(PBS)会对在澳大利亚贩卖的许多药品提供补贴,所以开支往往由人们购买了什么来决定.在2009年该方面的支出为7billion,后面略有波动,为了能很好的预测出总的支出,有必要对每一类药物产品的月销量进行预测,我们发现几乎每一类的药品销售都有一定的趋势和周期性,虽然有时候会因为同类的竞争药物而出现较大的短时波动.
    所以此处我们的模型需要能捕获趋势和周期性,并且需要对突然的因为潜在因素的变化而引起的突变具有较好的鲁棒性.此外,最好还能较好地扩展到时间序列数据较大的情况(大数据).

    案例3 大的汽车公司要求我们帮助预测汽车再销售价值,这类公司购入新的交通工具并且将该工具租售三年,然后在卖掉.对于再销售价值的预测能更好的帮助控制利用,同时能更好的制定租售的价格以最大化价值.在该时候,
    该类问题在公司往往由一些专家来完成,不幸的是他们看到统计模型对他们造成了威胁,所以不愿意合作,最后公司提供了之前汽车的大量数据以及他们最终的在销售价格.

    案例4 我们需要预测主要航线的每周的飞机乘客数量以及不同类的乘客的情况(经济舱,商务舱等),公司提供了过去6年每周的情况.飞机乘客的数量会受到学校假期,主要的体育活动等影响,而且不同的城市不一样,同时体育活动会从A城市转移到B城市,同时历史数据上还有一段数据因为飞行员罢工而出现一段时间没有航班,同时在数据的后半段,航班对不同的舱进行重新分配,经济舱和商务舱等的位置都有变化.

    1、5预测任务中的基本步骤

    预测任务中的5个基本步骤:

    • 问题定义 :需要业务理解以及对于客户需求的充分理解。
    • 信息收集: 两类信息,(a).统计数据;(b).累积的专业知识.通常较难收集到足够的历史数据,但是同时,越老的数据的价值往往也越小。
    • 探索分析:通过对数据的可视化,是够有较为一致的模态,是否有较强的趋势,是否有周期性的影响,是否存在奇异值,分析的特征与label的关系。
    • 选择模型并且拟合模型:模型的选择往往依赖于历史数据,预测变量与我们特征的关系以及预测的用意,通常我们会比较多个预测模型。
    • 使用并且评估模型。

    1、6统计预测的角度

    我们预测的变量也是一个随机变量:我们预测的东西往往是未知的,所以我们往往会将其看作是一个随机变量,例如下一个月的总的销量会有很多值,直到下个月我们才会知道.如果预测的是明年该月的销量,则销量可能的空间会更大,则预测将更为不确定.

    2、时间序列可视化

    数据分析最重要的一步是做EDA(Exploratory Data Analysis),对数据进行探索与分析,而这一步中数据可视化的作用不言而喻,通过合理的可视化技术,我们可以发现我们数据的周期性,随时间变化的规律,以及变量之间的相关性等,方便我们更好的理解数据同时可以辅助我们构建更好的模型.这一章我们会重点探讨对于时间序列的可视化技术.

    2、1 ts对象

    时间序列的理解之一:时间序列可以认为是一列数字或者数组,其中每一个元素都是在特定时间所记录,包含有在特定时间的信息.
    所谓的ts Object是R语言中用来处理时间序列的一个工具包.

    2、2 时序绘图(数据初探)

    绘图1:全局:先对整个时间序列进行绘制,给自己一个大致的感受(就和数据处理中的pd.head()一样),此处我们需要重点观察如下信息:

    • 时序是否出现断层,中间是否有一段时间没有记录,调查原因
    • 序列是否存在较大的波动,是否存在突变
    • 序列是否存在周期性
    • 序列近期表现出什么趋势

    2、3 时序模式(数据模式观测)

    时间序列的几大模式:

    • 趋势:明显的趋势是当数据存在长期的的增长或者下降,不仅仅局限于线性的增长或者下降,也可能是周期的上升等。
    • 季节性:时序被周期性的模式影响例如年份,或者每周(例如周末超市消费就会比较高,周中就偏低),季节性或者周期性往往是一种固定的已知的频率。
    • 循环性:循环性的发生往往指数据不以固定的频率展现出上升以及下降的趋势,这些波动往往受到经济的影响,并且经常和商业周期有关,波动的时间往往较长。

    2、4 绘图

    (1)季节性绘图:因为季节性的数据的周期较为稳定,所以我们可以设定周期,然后在同一张表上进行多个周期的绘制。
    (2)散点图:

    • 双变量之间的关系探索:
      在这里插入图片描述
    • 多变量(两两变量之间)的关系探索:当我们变量较多的时候,我们不太可能一一去绘制散点图,效率较为低下,此时我们可以通过成对绘制散点图的形式来进行观测比较,具体的例子如下:
    • 在这里插入图片描述
      (3)Lag图
      Lag图:Lag图显示了对于不同的kk值,yty_tytky_{t-k}之间的关系,具体的例子参考如下:
      在这里插入图片描述
      由上图我们可以发现:
      lags4和8的关系是严格正的,在数据上显示了较强的季节性,而lags2和lags6则显示出了较强的negative相关性.

    2、5 自相关性

    时间序列中的自相关系数数学定义

    在时间序列里面存在一些自相关系数,例如,r1r_1可以用来评估yty_tyt1y_{t-1}之间的关系,r2r_2可以用来评估yty_tyt2y_{t-2}之间的关系,其中rkr_k的计算公式如下:
    Alt
    其中TT为时间序列的长度.
    例子:
    在这里插入图片描述
    在上表中,我们发现:
    r4r_4 相对较大,可能是因为周期为4的原因.
    r2r_2相对较小,可能是因为周期为4的,而2恰好在峰值之后的中间.
    ③ 蓝色的虚线表示相关性是否和0严格不同.

    季节性和趋势给自相关系数带来的影响

    • 当数据是季节性的(周期性的),自相关系数会在季节性的位置(lag=k,2k,3k,…)获得较大的值;
      如果我们的时间序列的以为kk周期的话,那么我们的rkr_k值就会较大.
    • 当数据存在趋势,则对于小的lag(例如lag=1,2)的自相关系数就会变得较大,但是当把lag设置大一点的时候,就会得到缓解.

    2、6 白噪音

    白噪音:当时间序列没有显示出自相关性时,我们将这种时间序列称之为白噪音
    在这里插入图片描述
    在这里插入图片描述
    白噪音检测:
    关于白噪音的检测,我们认为ACF中有95%的spikes在±2T\frac{2}{\sqrt{T}}里面的时间序列称之为白噪声,其中TT为时间序列的长度.但是如果有一个或者多个的spikes在这两个bounds(蓝色虚线)的外面,或者超过5%的spikes在这些bounds外面,那么这些时间序列可能就不是白噪音.

    3、判断预测法

    ==需求:==当我们的历史数据几乎完全缺失,当有全新的产品上线,当一个竞争对象刚刚进入市场,我们几乎没有什么历史数据,但是我们有需要进行预测的时候,我们无法直接使用传统的统计模型,而此时判断预测发将会成为目前唯一的选择。
    判断预测法两大关键因素:
    因为严重缺失的历史数据,判断预测法的提升更多的依赖两大关键因素:

    • 重要的行业知识
    • 更多的实时的,最新的信息
      判断预测法三大设定:
    • 没有可获得的数据,统计模型不再有效
    • 可以获得数据,统计模型生效,然后对统计模型在使用判断进行调整
    • 可以获得数据,统计模型和判断预测法同时独立的生成,然后在进行组合。

    3、1 判断预测法的局限性

    判断预测法的缺陷:

    • 判断预测法是不一致的,它严重依赖于我们的认知,所以较为受限,举例来说,我们的认知会忽略很久之前发生的事情;对事物错误的理解与会严重误导我们的模型。
    • 判断预测法是主观的,存在个人的观点;很多时候也会受到我们个人情感或者周围因素的影响,从而较大的影响我们的判断预测。
    • 锚定anchoring的影响,在预测的时候我们的预测往往会受到熟悉的参考点的影响,比如价格预测的时候,我们往往会选取最近的点作为参考点,因此在预测的时候会给予其更大的权重。锚定可能会导致保守和低估新的和更多的最新信息,从而存在系统性偏差。

    3、2 关键原则

    因为判断预测法的种种缺陷,需要有一个好的判断预测法,我们往往需要遵循以下的一些原则.
    判断预测法的关键原则:

    • 将预测任务设定清晰:尽量使所有人都能明白任务,所有的定义都应该是清晰易于理解的,避免模糊不清的表述,同时需要避免在预测的时候融入情感的因素和不相关的其他因素等.
    • 实施系统的方法:预测的准确率可以通过系统的方法来提高,例如对信息中相关的类别变量进行处理,类似于数据探索寻找最能影响我们目标的变量,并探索关系.
    • 文档和证明:成列记录系统方法下的决策规则和假设.
    • 系统的评估预测:系统地监测预测过程可以识别不可预见的违规行为,用预测结果和真实结果进行对比获得反馈,反馈的评估结果能帮助我们更好的改善预测的准确率等.

    3、3 德尔菲法

    德尔菲法的假设:由集体做出的预测往往比个体做出的预测更加准确.
    德尔菲法的目的:以迭代的方法从一群专家那里构建一个一致性的预测.
    德尔菲法的步骤:
    ① 汇集一群专家;
    ② 设定预测任务并且分配给每一个专家;
    ③ 专家返回初始的预测和理由,为了给与反馈这些都会被汇编(compiled)和总结;
    ④ 反馈到达专家手中,然后专家根据反馈回顾他们的预测,这一步会被迭代进行直到令人满意的共识达成;
    ⑤ 最终的预测由这些专家的预测所组成.
    德尔菲法的讨论和一些建议:
    专家和匿名(尽可能令专家独立的不受到影响的做出自己的预测)
    ① 确定一组能为预测任务做出贡献的专家 ----- 大概5-20个拥有丰富专业知识的专家.
    ② 参与的专家需要全程匿名,这样专家在预测过程中就会不被政治或者社会压力所影响.
    ③ 所有专家都有平等的发言权,所有人都对自己的预测负责.

    • 在Delphi中设置预测任务:在设定预测任务之前,从专家那里进行初步的信息收集,或者,当专家提交他们最初的预测和理由后,在提供反馈前,有价值的未被共享的信息可以被识别.
    • 反馈:反馈的信息应当包含预测的汇总统计和定性的证据,数值类的总结和图形的表示可以被用来总结专家的预测. As the feedbackis controlled by the facilitator, there may be scope todirect attention and information from the experts to areas where it is most required. For example, the facilitator may direct the experts’ attention to responses that fall outside the interquartile range, and the qualitative justification for such forecasts.
    • 迭代: 专家提交预测,收到反馈然后审视自己的预测并且再提交,这个过程持续迭代,直到达到某一种满意的程度.(该程度往往指:反馈的变动性降低到令人满意的程度the variability of the responses has decreased to a satisfactory level),在此过程中因为迭代次数的增多会使得专家厌烦,所以一般的迭代次数为3次左右即可.
    • 最终预测: 最终的预测往往是由所有专家的预测的加权得到(每个专家的权重是相等的),记住可能会存在极端情况.
    • 约束和变动:直接使用Delphi方法可能会很耗时,在一个小组会议中,最终的预测可能会在数小时内获得,如果时间太长的话,小组可能会失去兴趣和凝聚力.
    • 主持人:主持人的角色是最重要的,主持人主要负责德尔菲法的设计,管理;同时还得给专家提供反馈并且生成最后的预测.此外,主持人的高效性也很大程度上决定了德尔菲法的成功性.所以必须得有很好的经验.

    3、4 类比预测

    类比预测,故名思议就是用类似的物品或者事物来对眼前的任务进行预测.
    类比预测的例子:
    假设我们需要预测在某个国家设计一个较为完善的学校课程表的耗时,假设我们已经收集大量其他国家课程表设计耗时的例子,然后研究发现60%类似的小组都耗费了7-10年的时间,而40%其他的小组甚至都未能完成课程表的设计.此时我们很可能就可以类比猜测该国家的课程表的设计大致需要8-9年左右的时间.而并非随意的猜测.

    3、5 情景预测

    情景预测: 基于合情合理的场景生成预测.
    与Delphi以及类比预测的比较: 和之前的Delphi方法以及类比预测不同,他们经常会生成一些相近的结果,而情景预测发生的概率往往较低, 情景由所有可能发生的因子,因子之间的交互以及需要预测的目标所生成.
    情景预测的优点以及缺点:

    • 优点:情景预测的预测结果的范围很广,一些极端的值也可以被预测到,对于这些情况的预测可以更好的帮助我们进行决策同时加深对事物的理解.
    • 缺点:情景预测的结果涵盖范围广,所以自然而然的就会存在较大的偏差.

    3、6 新产品预测

    新产品:

    • 全新的之前市场上没有的产品
    • 对现有的产品进行价格机制的改变
    • 对新产品进行升级或者变动.
      针对全新的产品,对于销量或者售价的预测我们常常会有如下的三种方法:
      三类处理方法:
    • 销售人员组合:在该方法中国,每个产品的预测由销售人员所组成,而且通常包括销售经理预测他们管理的出口的需求等.销售人员通常和销售员以及产品更加接近,并且拥有购买意向的感觉,他们可以对预测带来十分有价值的经验.不过这违背了预测者与用户独立的假设,往往会对预测带来一定的偏差.
    • 实施意见:和销售人员组合不同,该方法涉及管理层顶部的员工,该类的预测往往由在一个群会议中产生,管理人员从自己在公司中的领域提供信息.该方法最大的缺点就是需要从会议中进行决策,而这违背了独立性的原则.所以需要记录预测过程,同时执行者需要对此负责,这样用来减少群会议中的偏差.
    • 客户意图:客户的意图可以用来预测一个新的产品的需求或者一个现有产品的波动,为了统计用户的需求往往需要设计用户调查问卷,涉及每个产品的喜欢程度等.该方法中我们需要注意用户的购买意向以及用户的购买行为,因为用户往往不会按照他们说的做.
      不管是哪一类的方法,我们都需要注意对预测的过程进行详细的记录以及背后的原因和理由.( it is important to thoroughly document the forecasts made, and the reasoning behind them, in order to be able to evaluate them when data become available.)

    3、7 判断调整

    使用上面的方法可以对我们很多传统的统计模型进行调整,因为上述的很多方法考虑了很多统计模型所没有的因素,或者历史数据所不能反映的一些因素.
    保守使用调整:
    判断调整尽量不要尝试去纠正统计模型中缺失的数据系统模式,这已经被证明是无效的,很多时候预测者经常会被带有噪音的序列所影响,所以带来的纠正往往很差.相反地,我们更多地应该认为统计模型是可以更好地捕获这种模式的,而主观的调整往往只会影响准确率. 只有当我们手中的额外信息尚未融入模型,此时利用这些额外信息对模型进行调整往往才是高效的
    在这里插入图片描述

    • 黑色的是实际情况,蓝色的是统计模型的预测结果,橘黄色的是技术委员会专家的预测结果,而紫色的是最后调整之后的结果.很明显调整之后的结果相比于两者都取得了更好的结果,关于该例子的具体描述可以参考链接:http://otexts.org/fpp2/judgmental-adjustments.html

    4 、线性回归模型

    基本假设:此处最基本的假设就是:我们假设我们感兴趣的变量y是和我们的时间序列呈线性关系的
    例子:

    • 根据广告支出来预测每个月的销量
    • 根据温度x1x_1,和周中的某一天x2x_2来预测每月的用电量yy

    4、1 简单的线性回归

    基本假设:
    在这里插入图片描述
    我们认为每一个观测变量yty_t都是由β0+β1xt\beta_0+\beta_1x_t加上一个随机误差 ϵt\epsilon_t所组成, 误差项不是一个错误,而是在潜在线性模型周围的一个扰动.它表示除了xtx_t的所有影响yty_t的因素.
    多元线性回归:
    当存在两个或者多个变量时,我们称该模型为多元回归模型,它的数学形式为:
    yty_t=β0\beta_0+β1x1,t\beta_1x_1,t+β2x2,t\beta_2x_2,t+…+βnx1n,t\beta_nx_1n,t+ϵt\epsilon_t
    线性模型假设:
    注意下面的假设和很多书籍中存在一定的不同,大家以自己的理解为主即可.:
    (1).模型对于现实是一种合理的近似,也就是说我们预测的变量(label)和我们的特征之间满足线性的关系.
    (2).我们对于误差(ϵ\epsilon)做如下假设:

    • 它们之间的均值是0,否则预测的结果将会被系统性的biased.
    • 它们之间不能自相关,否则,预测将会是无效的,因为数据中存在更多的信息可以被探索(噪音之间的相关性).
    • 噪音和我们的特征是无关的,否则,应当将更多的信息被引入我们的模型.
      (3).每个特征变量不是随机的.

    4、2 最小平方估计

    我们拥有较多的观测到的特征,但是每个特征对应的系数却是未知的,而最小平方估计可以很好的帮助我们获得我们需要的系数β0,β1,...,βk\beta_0,\beta_1,...,\beta_k而求解的方法就是通过去求解下面的式子:
    mint=1Tϵ2=t=1T(ytβ0β1x1,tβ2x2,t......βnxn,t)2min\sum_{t=1}^T{\epsilon^2}=\sum_{t=1}^T{(y_t-\beta_0-\beta_1x_1,t-\beta_2x_2,t-......-\beta_nx_n,t)^2}

    4、3 一些有用的预测因子

    在使用回归模型处理时序问题的时候存在很多有用的预测因子.
    趋势:
    时间序列里面最常见的就是趋势,线性模型可以简单的使用x1,t=tx_{1,t} = t作为一个特征,此时
    yt=β0+β1t+ϵt,t=1,2,3.....Ty_t = \beta_0+\beta_1t+\epsilon_t,t=1,2,3.....T
    哑变量:
    通常我们会假设我们的特征都是数值型的.(下面是类别为2的情况)

    • 传统用途:最常见的例如销量预测中是否为节假日.此时我们可以用0,1来替换该信息;
    • 特殊用途:哑变量还可以用来处理奇异值,例如销量预测中总会出现一些奇异的事情,例如演唱会,运动会等等都会使得某类产品的销量大增,这个时候我们可以用哑变量来表示该类奇异值的情况.而不是直接删除数据.
      如果类别多于2个,采用类似的编码操作即可.
      季节性(周期性)哑变量:
      例如我们希望预测每天的用电需求,因为每天的用电需求和周几的关系很大,而且呈现周期性的特性,此时我们经常会选择用哑变量来表示该类特性,例如一周七天我们会用下面的方式表示.
      在这里插入图片描述
      注意七个类别变量我们只需要6个哑变量,因为第七个变量当其他六个已经确定的时候基本已经定了,剩余一个哑变量带来的影响会被intercept所捕获.
      傅里叶序列:
      季节性哑变量的一个替代方法就是傅里叶序列,尤其是关于长期的周期性,如果mm是季节性周期,则第一个少量的傅里叶项将会由下述形式所给出:
      在这里插入图片描述
      如果呈现月的周期性,我们使用11个特征变量,然后我们将会获得和11个哑变量一样的特征.
      使用傅里叶项的优势在于我们经常可以使用更少的特征变量,尤其是当mm特别大的时候,例如当m=52m=52的时候,对于较短的周期性,例如季节性的数据,使用傅里叶变换相比于哑变量的优势并不会十分明显.
      傅里叶变换可以直接使用工具包获得. 含有傅里叶项的回归经常被称作是谐波回归,因为连续的傅里叶项表示前两个傅立叶项的谐波.
      干预变量:
      对于可能对预测结果带来影响的干预进行建模,例如,广告支出,工业行动等等.
      当影响只回持续某一个周期的时候,我们会使用一个穗变量来表示**.穗变量在干预的周期内是1,在其他地方是0**,穗变量在处理奇异值的时候等价于哑变量.
      其他的干预如果有一个立即的持续的影响的话,我们用一个步变量来表示,步变量在干预之前都是0,在干预之后都是1.
      另外一种持久的影响是斜面坡度的影响,次数干预将会使用分段的线性趋势来表示.(具体的会在后面继续讨论)
      交易日:
      一个月内的交易日可能会对当月的交易带来非常大的影响,所以为了表示带来的影响,可以将每个月内交易日的个数包含为一个特征.例子如下:
      在这里插入图片描述

    4、4 回归模型的评估

    残差:
    观测变量yy与对应的预测变量 yˉ\bar{y}的差,我们称之为残差: et=ytyˉte_t = y_t - \bar{y}_t,每个残差是相关的观测变量的不可预测的部分.
    残差的一些有用的属性:
    t=1Tet=0andt=1Txk,tet=0forallk\sum_{t=1}^T{e_t}=0 and \sum_{t=1}^T{x_k,te_t} = 0 for all k
    残差直方图:
    检测残差是否是正态分布的总是一个比较好的想法.例如下图中2004年的预测我们发现有比较大的偏差,此时可以就需要进一步研究究竟在那一年发生了什么不寻常的事情来帮助我们进行后续的建模.
    在这里插入图片描述
    残差预测图:
    我们希望残差的分布是随机的,没有任何的模式,而这样最简单的方式就是直接采用scatterplot的方式画出散点图.如果绘制的散点图存在某种模式,那么说明存在一些非线性的关系需要进一步进行挖掘.
    奇异值和影响点:
    对回归模型的预测结果有较大影响的被称作影响点(influential observations),和大多数数据极端不一样的被称作是离群点(outliers).

    • 对于可能是奇异值的处理:①如果有十足的把握判断是奇异值,建议直接删除;②研究奇异值的产生原因并且好好利用它;③如果无法研究原因,则分别记录带有该奇异值的结果和不带有该奇异值的结果,然后进行比较.
    • label为离群点或者影响点给线性回归带来的影响可以参考下图.红色的是去除影响点的,而黑色是没有去除影响点的.
    • 在这里插入图片描述
      拟合良度(Goodness-of-fit):
      我们常常会使用R2R^2来判断模型的拟合良度.
      在这里插入图片描述
      如果模型的预测结果和真实结果很接近,那么R2R^2就比较接近于1,另一方面,如果预测结果和真是结果是无关的,则R2R^2往往会趋于0.在所有的例子中,R2R^2介于0和1之间.
      还有一种关于R2R^2数学形式如下.
      在这里插入图片描述
      回归的标准误:
      除了R2R^2可以较好的对模型的拟合效果进行评估之外,另外一种评估模型拟合好坏的方法就是残差的标准差.经常也被称作"residual standard error",可以通过下面的式子进行计算得到:
      在这里插入图片描述
      此处除以Tk1T-k-1是为了解释计算残差时的估计参数的个数.(k+1k+1指的是k+1k+1)
      参数 (the intercept and a coefficient for each predictor variable) ))
      伪回归(Spurious regression)
      时间序列数据经常是不稳定的,也就是说不会再某一个常数值附近上下波动,具体的处理该类数据的方法会在后续讨论.

    4、5 变量选择

    Naive的方法

    • 绘制每一个特征与label之间的图,通过观察二者之间有无明确的关系来判定.(很难直接通过散点图等形式直接观测变量之间的潜在关系)
    • 对所有的特征变量做多元线性回归,然后将pp值大于0.05的全部丢弃.(统计重要性并不意味着预测值的准确性,当两个或者多个预测变量存在的时候pp值可能会带来误导)
      特征选择的指标
      上述的方法比较适合特征维度较低,同时特征与label之间的关系较为明显的时候,却不太适用于特征维度较高的时候,在实践中,我们也很少会选择这么做.此处我们介绍一些现在大家用的较多的指标和方法.
    • 调整的R2R^2
      在这里插入图片描述
    • 交叉验证:交叉验证的思路很简单,就不再叙述,最直观的理解可以参考下图.因为交叉验证可以近似我们的预测指标,所以在很多比赛中,我们往往通过线下的交叉验证的结果来近似线上的成绩.因此交叉验证也成为了很多比赛选手最常用的指标之一.
    • 在这里插入图片描述
    • Akaike信息准则(Akaike’s Information Criterion): 也就是我们常说的AIC指标,AIC=Tlog(SSET)+2(k+2)AIC =Tlog(\frac{SSE}{T}) + 2(k+2), 同样的,TT是观测样本的个数,kk是特征维度的个数.k+2k+2是因为一共有kk个系数加上一个intercept,bb,再加上一个噪声项.我们防线当样本TT足够大的时候,最小化AIC本等价于最小化CV值;
    • 纠正的AIC:AICc=AIC+2(k+2)(k+3)Tk3AIC_c = AIC +\frac{2(k+2)(k+3)}{T-k-3},上面的AICAIC在当样本个数较少的时候,往往会为了最小化前一项而使得我们的特征维度偏高(参数个数偏多),为了对此进行纠正,我们决定加大对于参数个数的惩罚,所以就有了我们的AICcAIC_c;
    • 施瓦茨的贝叶斯信息准则(Schwarz’s Bayesian Information Criterion):BIC=Tlog(SSET)+(k+2)log(T)BIC =Tlog(\frac{SSE}{T}) +(k+2)log(T),和AICAIC一样,最小化BICBIC也是为了给出最好的模型,BICBIC选出来的模型和AICAIC很像,但是我们也看到了,BICBIC对于模型的系数的个数惩罚相对较大,所以最终BICBIC所选出的模型的系数的个数往往也较少.
      特征选择的模型构建方法
      **最佳子集回归:**在资源许可的情况下,所有潜在的模型都应当被拟合回归,并且最好的模型应该基于上述讨论的指标而选出,我们知道,只要当我们的观测样本个数TT足够大,最终我们选出的模型很有可能是同一个.
      逐步回归: 当我们的特征维度足够大的时候,是不太可能拟合所有的模型再做评估的,此时我们往往会采用两种方法,前向逐步回归和后向逐步回归

    4、6 回归预测

    事前事后预测

    • 事前预测:事前预测指的是仅仅只使用预测变量之前的信息,例如我们要预测2017.12月份的销量,那么我们就只能使用2017.11月份及之前的数据;
    • 事后预测: 事后预测指那些会使用到未来信息的预测,例如我要预测12月份的销量,我在预测的时候就使用到了12月份以及之后的天气,超市产品的进货信息等这些未来信息,注意事后预测一般指我们可以获得未来的特征变量,而非未来的label.
    • 事情预测和事后预测可以帮助我们分离预测不确定性的来源.这可以帮助我们理解我们的预测差的原因是来源于模型还是来源于我们的特征.
      基于场景的预测
      在该设定中,预测员假设所有感兴趣的特征可以预见,例如,美国政府想要预测未来的消费量,在预测的时候我们已经知道人们的收入和就业的指数近期呈现常数增长(该增长长期不变),这样我们在模型预测的时候就已经知道了我们的未来特征without uncertainty.
      构建预测回归模型
      在这里插入图片描述
      回归模型的最大优势在于它可以捕获特征变量和我们的label之间的关系.而最大的挑战则在于为了进行事前预测,模型需要未来特征,从我们的模型中我们就可以发现,预测tt时刻的yy我们需要知道tt时刻的xx,如果是基于场景的预测,那么该问题还相对简单很多,所以我们需要对该公式进行变形.
      在这里插入图片描述
      经过变形之后,我们在预测t+ht+h时的label时,我们仅仅只需要知道在tt时刻的特征即可. 增加的误差变量不仅仅使得我们的模型更加易于操作,同时还使得我们的模型更加易于理解.
      预测区间
      预测区间的计算会在下一小节进行讨论,此处我们仅仅给出预测区间的简单公式以及它的直观的解释,假设我们使用简单的回归yˉ=β0+β1x\bar{y} = \beta_0 + \beta_1 x模型进行预测,并且回归模型的误差是正太分布的,那么我们的95%的预测区间可以通过如下公式计算得到:
      在这里插入图片描述
      其中TT是我们的观测样本个数,xˉ\bar{x}是我们的观测样本特征的均值,sxs_xxx的标准差.
      我们发现: 当我们的特征值 xx与我们的均值xˉ\bar{x}相距越远的时候,我们的预测区间也会越大.

    4、7 矩阵形式

    这一节涉及到使用最小平方算法求解线性模型的一些数学知识,因为每一本介绍机器学习的书籍在线性模型模块都会有所介绍,所以此处我们省略具体的数学推导,仅仅给出重要的结论.
    多元线性回归的向量形式
    在这里插入图片描述
    最小平方估计
    在这里插入图片描述
    拟合值与交叉验证
    在这里插入图片描述
    在这里插入图片描述

    4、8 非线性回归

    因为很多时候变量之间的关系往往是非线性的,所以我们需要进行非线性建模,本节在之前线性模型的基础之上介绍几种简单的将线性模型转化为非线性模型的技巧.
    几种线性回归转非线性回归的技巧

    • log-log函数形式:将x和y都进行log处理,举例如:
      在这里插入图片描述
    • linear-log形式:将x进行log处理.
    • 分段线性转化:例如x=(xc)+x=(x-c)_+,x<cx < c的全部转为0,大于cc的转化为xcx-c.
      非线性趋势预测
      在这里插入图片描述
      下图是三种不同转换的对比.
      在这里插入图片描述
      我们发现label的log转换和我们的简单线性拟合类似,但是分段线性转换的效果却好了很多.

    4、9 相关性,因果性和预测

    这一节主要介绍几个易错的概念,相关性,因果性以及预测.
    相关性与因果性

    • 相关性:如果一个特征变量xx能对我们预测label带来非常大的帮助,那么我们往往称该特征变量与我们的label有着较强的相关性.
    • 因果性:如果有B发生了,那么100%是AA造成的,此时我们称之为因果性.

    相关性,因果性与预测的关系可以用下面的语句来阐述:相关性能为我们的预测带来非常大的帮助,即使这二者不存在因果关系; 当然,如果能确定某些因果关系,那么我们就会有更大的希望构建一个好的模型.
    混淆特征变量
    混淆特征变量:如果两个特征变量给label带来的影响是无法分开的时候,我们称之为混淆变量. 平时我们一般将两个线性相关系数较高的变量称之为一对混淆变量.
    混淆特征变量在我们做模型预测的时候带来的影响往往不是很大,很多时候我们仅仅只需要将两个全部放入模型即可.但是如果我们需要进行场景预测的时候,我们就需要分析特征变量之间的关系,另外,我们希望统计混淆变量在历史数据上对label带来的影响时,这也会成为一大问题.
    共线性和预测
    共线性:如果两个特征变量之间的相关性近似为1或者-1,我们认为这两个变量具有共线性.较为典型的例子就是dummy variable trap,例如我们有季节性的哑变量d1,d2,d3,d4d_1,d_2,d_3,d_4并且d1+d2+d3+d4=1d_1+d_2+d_3+d_4 = 1,那么我们为1的那一列就和我们这四个变量的和是共线的.
    共线性的变量对于线性模型的预测会带来非常大的损害,尤其是回归系数的计算将会变得非常困难.具体的细节大家可以搜索线性回归方面的论文.

    5 、时间序列分解

    时间序列数据可以呈现大量的形式,将时间序列数据分成诸多模块对于时间序列问题的分析十分有帮助.
    在第二章中,我们将时间序列分割成趋势,季节性,和周期性,平时我们经常将趋势和周期组合成"trend-cycle"成分,所以我们也可以将时间序列分割为三大块:"trend-cycle"模块,季节性模块和剩余组件(包含时间序列中的任何其他内容).
    这一章,我们考虑从时间序列中提取这些成份的一些方法,通常这是为了帮助我们更好的理解时间序列,但是它也可以被用来提升我们的预测准确率.

    5、1 时间序列成份

    这一节主要介绍两种将时间成份的建模形式,加法模式和乘法模式.
    两种时序模型
    假设yty_t是在时间段tt处的数据,StS_t为在时间段tt处的季节性成份,TtT_t为趋势周期成份,RtR_t为在时间段tt处的剩余成份.那么

    • 加法模型:yt=St+Tt+Rty_t = S_t + T_t + R_t,如果季节性波动是在周期趋势上下进行,那么加法模型是一个不错的选择.
    • 乘法模型:yt=StTtRty_t = S_t * T_t * R_t.如果波动和时间序列的level成比例相关,那么乘法模型会比较好.
      加法模型和乘法模型的联系:yt=StTtRty_t = S_t * T_t * R_t = logyt=logSt+logTt+logRtlogy_t = logS_t + logT_t + logR_t
      例子
      在这里插入图片描述
      上图中TtT_t为趋势周期成份,yty_t为原始数据成份,趋势周期展示了时间序列的整体运动(忽略季节性和任何小的波动).我们将加法模型的成份展开得到下图:
      在这里插入图片描述
      经季节性因素调整后的数据
    • 定义:
      经季节性因素调整后的数据: 如果我们将原始数据中的季节性因素移除,那么最终剩下的数据就被称作是季节性调整后的数据.对于加法模型,季节性调整后的数据可以通过ytSty_t - S_t得到,对于乘法模型,可以通过yt/Sty_t / S_t得到.
    • 使用场景
      如果季节性带来的波动不是我们感兴趣的,那么就可以对经季节性因素调整后的数据进行分析,例如,我们对于每个月的失业率非常感兴趣,但是因为每年的毕业季就会出现大量的失业,这种季节性带来的影响往往会阻碍我们发觉真正的潜在带来失业的原因,所以使用经季节性因素调整后的数据往往会更好.

    5、2 移动平均值

    在经典的分解模型中,第一步往往是使用移动平均值来估计趋势和周期(trend-cycle),所以这一节我们介绍最经典的移动平均值.
    移动平均平滑
    m-MA:一个阶数为mm的移动平均可以被表示为, Tˉt=1mΣj=kkyt+j\bar{T}_t = \frac{1}{m} \Sigma_{j=-k}^{k} y_{t+j}, 其中 m=2k+1m=2k+1, 也就是说我们希望利用均值来删除数据的随机扰动,使得我们的趋势周期(trend-cycle)能够更加平滑.当mm越大,我们的移动均值就平滑.

    • 使用季节性的数据估计趋势周期
      在这里插入图片描述
      注意:移动均值法没有在tt趋近于时间序列末尾的时候还给出估计Tˉt\bar{T}_t,以你为红色的线没有延伸到边角.
      移动平均的移动平均
    • 移动平均的移动平均可以看做是二阶信息.
    • 中心移动平均线,当一个2-MA在一个偶数阶移动均值(例如4)之后的平均,我们就称之为:阶为4的中心移动平均. 可以表示为:
      在这里插入图片描述
      使用季节性的数据来估计趋势周期
      使用上面24MA2*4-MA的图,我们有:
      在这里插入图片描述
      我们发现,当使用季度性的数据时,每年的每个季度会给第一个最后一个数据相同的权重,因为他们在一年中是连续的(今年的季末和明年的季初),所以最终结果带来的影响可以认为是没有季节性的波动存在的.
      加权移动平均
      在这里插入图片描述
      Σj=kkaj=1\Sigma_{j=-k}^k a_j = 1 同时 aj=aja_j = a_{-j},
      **优势:**主要的优势在于加权移动平均可以获得一个平滑的趋势周期估计.
      常用的一些权重:
      在这里插入图片描述

    5、3 经典的分解

    时间序列的分解是非常经典的一种思路,包括现在的Facebook的Prophet方法等,都是采用分解的形式建模,可解释性强,调参也方便.这一节我们假设季节性的成份年年都是一个常数,分解形式.
    加法分解
    步骤1:如果mm是一个偶数,那么我们就使用2mMA2*m-MA来计算趋势周期成份Tˉt\bar{T}_t,如果mm是一个奇数,那么我们就使用mMAm-MA来计算趋势周期成份Tˉt\bar{T}_t.
    步骤2:计算去趋势序列ytTˉty_t - \bar{T}_t.
    步骤3:为了估计每个季节的季节成份,我们直接对去趋势的数据求均值,例如,计算三月的季节成份,我们就对所有历史上去趋势的三月的数据求均值.季节性的成份可以通过将数据每一年的的值链接起来获得.这样我们就可以得到Sˉt\bar{S}_t.
    步骤4:我们将数据减去趋势周期值和季节值得到我们的剩余部分,Rˉt=ytTˉtSˉt\bar{R}_t = y_t - \bar{T}_t - \bar{S}_t.
    乘法分解
    乘法分解和加法分解较大的区别就是将减替换为除即可.
    在这里插入图片描述
    经典分解评论
    虽然经典的分解方法还常常被使用,但是它却存在非常多的缺点。

    • 趋势周期的估计在一些地方无法估计,例如时间序列的开始和时间序列的结尾处都无法计算,所以相应的,这些点的剩余成份和季节性成份都无法计算.
    • 趋势周的估计很容易太过平滑.
    • 经典的分解假设季节性的成份年年会重复,这对于很多长的时间序列并不是一个非常好的假设.

    5、4 X11分解

    上一节介绍的经典分解模型非常简单易懂,同时也有很多缺点,针对这些缺点,这一节我们介绍X11算法,X11算法再很多层面都解决了上述经典分解算法出现的问题.
    X11 分解是基于经典的分解思路,但是却包含了更多的额外步骤和特征,在X11算法中,趋势周期估计在样本的开始和结尾都可以得到,季节性的成份也可以是随着时间缓慢变化的,此外X11还可以解决交易日的波动,节假日的影响以及一些其他因素的影响.
    在这里插入图片描述
    1、相比于STL以及传统分解的方法,X11趋势周期部分很好的抓住了数据在2009年的突然下降的情况.
    2、在2009年末不同寻常的样本点在剩余成份也越加清晰.

    5、5 STL分解

    STL(Seasonal and Trend decomposition using Loess)是一个分解时间序列的多功能并且鲁棒的方法,相比于SEATS和X11分解方法,STL方法拥有如下的优势和缺点:
    优点 :

    • 不像SEATS和X11方法,STL可以处理任意类型的季节性性,不仅仅是月和季度的数据;
    • 季节性的成份可以随时间变化,变化率也可以被用户所控制;
    • 趋势周期的平滑性可以被用户所控制;
    • 对奇异值鲁棒(i.e. 用户可以指定一个鲁棒的分解),因此偶尔的不寻常的样本点不会影响趋势周期和季节性的成份,但是还是会影响剩余成份.
      缺点:
    • 无法自动处理交易日和日历波动;
    • 仅提供对于加法分解的形式(虽然可以通过对数据进行log处理来获取乘法分解)
    • 当使用STL时,两个需要被选择,一个是趋势周期窗口,另外一个是季节性窗口,这两个窗口控制了趋势周几和季节性乘法的变化快慢.(窗口越小,变化越快).

    原文链接:
    https://mp.weixin.qq.com/s/ICbZK8BNWDr6Oqr_Vf_RYw
    https://mp.weixin.qq.com/s/XAiTHei67BCc3OIguSFVnw
    https://mp.weixin.qq.com/s/ub3M8GWUt0sRtAIBSdrSxw
    https://mp.weixin.qq.com/s/CPMybO8n62dqVMdpBdh8wQ
    https://mp.weixin.qq.com/s/AEZFJynaE214v9BH_-ZgoQ

    展开全文
  • 在多类回归模型中,基于自变量和因变量类型,数据维数以及数据其它基本特征情况下,选择最合适技术非常重要。 以下是你要选择正确的回归模型关键因素: 1. 数据探索是构建预测模型必然组成部分...
  • 线性回归模型 基本要素 模型 ... 模型训练及其三要素 ... 优化算法(梯度下降) ... 模型预测 ...线性回归的实现 实现简单步骤:生成数据集->读取数据->定义模型->初始化模型参数-...

    线性回归模型


    基本要素

    • 模型

    https://blog.csdn.net/u014606206/article/details/80201658

    • 模型训练及其三要素

    1. 训练数据
    2. 损失函数(loss function)
    3. 优化算法(梯度下降法)
    • 模型预测


       

    线性回归的实现

    • 实现简单步骤:生成数据集->读取数据->定义模型->初始化模型参数->定义损失函数->定义优化算法->训练模型;

    import tensorflow as tf
    import numpy as np
    import matplotlib.pyplot as plt
    
    #使用numpy生成200个随机点
    x_data = np.linspace(-0.5,0.5,200)[:,np.newaxis]
    noise = np.random.normal(0,0.02,x_data.shape) #干扰项
    y_data = np.square(x_data) + noise
    
    #定义两个placeholder
    x = tf.placeholder(tf.float32,[None,1]) #行数不确定,一列
    y = tf.placeholder(tf.float32,[None,1])
    
    #输入层1,输出层1,中间层10
    #定义神经网络中间层
    Weights_L1 = tf.Variable(tf.random_normal([1,10])) #1行10列
    biases_L1 = tf.Variable(tf.zeros([1,10]))
    Wx_plus_b_L1 = tf.matmul(x,Weights_L1) + biases_L1
    L1 = tf.nn.tanh(Wx_plus_b_L1)    #激活函数
    
    #定义输出层
    Weights_L2 = tf.Variable(tf.random_normal([10,1]))
    biases_L2 = tf.Variable(tf.zeros([1,1]))
    #输出层的输入相当于中间层的输出
    Wx_plus_b_L2 = tf.matmul(L1,Weights_L2)+ biases_L2
    prediction = tf.nn.tanh(Wx_plus_b_L2)
    
    #二次代价函数
    loss = tf.reduce_mean(tf.square(y-prediction))
    #使用梯度下降法训练
    train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
    
    with tf.Session() as sess:
        #变量初始化
        sess.run(tf.global_variables_initializer())
        for _ in range(2000):
            sess.run(train_step,feed_dict={x:x_data,y:y_data})
        #获得预测值
        prediction_value = sess.run(prediction,feed_dict={x:x_data})
        #画图
        plt.figure()
        plt.scatter(x_data,y_data)
        plt.plot(x_data,prediction_value,'r-',lw=5)
        plt.show()
    

    输出结果为


    MNIST数据集

    MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28x28像素),其值为0到1。为简单起见,每个图像都被平展并转换为784(28 * 28)个特征的一维numpy数组。

    概览

    识别代码如下

    import tensorflow as tf
    from tensorflow.examples.tutorials.mnist import input_data
    
    #载入数据集
    mnist = input_data.read_data_sets("MNIST_data",one_hot=True)
    
    #每个批次的大小
    batch_size = 100
    #计算一共有多少个批次
    n_batch = mnist.train.num_examples // batch_size
    
    #定义两个placeholder
    x = tf.placeholder(tf.float32,[None,784])
    y = tf.placeholder(tf.float32,[None,10])
    
    #创建一个简单的神经网络
    W = tf.Variable(tf.zeros([784,10]))
    b = tf.Variable(tf.zeros([10]))
    prediction = tf.nn.softmax(tf.matmul(x,W)+b)
    
    #二次代价函数
    loss = tf.reduce_mean(tf.square(y-prediction))
    #使用梯度下降法
    train_step = tf.train.GradientDescentOptimizer(0.2).minimize(loss)
    
    #初始化变量
    init = tf.global_variables_initializer()
    
    #结果存放在一个布尔型列表中
    correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))#argmax返回一维张量中最大的值所在的位置
    #求准确率
    accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    
    with tf.Session() as sess:
        sess.run(init)
        #把所有图片训练21次
        for epoch in range(21):
            #把所有的图片训练一次
            for batch in range(n_batch):
                batch_xs,batch_ys =  mnist.train.next_batch(batch_size)
                sess.run(train_step,feed_dict={x:batch_xs,y:batch_ys})
            
            acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
            print("Iter " + str(epoch) + ",Testing Accuracy " + str(acc))

    运行结果如下

    • 把mnist数据集保存在文件夹“MNIST_data”存放在当前路径便可直接引用
    • 下面方法为快捷查找出默认存储文件的路径
      import os
      print(os.path.abspath('.'))

       

    展开全文
  • 逻辑回归一、题目二、目的三、平台四、基本原理1. 逻辑回归2. 损失函数五、实验步骤1. 数据可视化2. 将线性回归参数初始化为0,计算代价函数(cost function)初始值3. 选择一种优化方法求解逻辑回归参数3.1. 梯度...
  • 时间序列模型 (五): 趋势外推预测方法

    万次阅读 多人点赞 2019-04-22 11:39:29
    时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 ...时间序列模型 (七): 时间序列建模的基本步骤 趋势外推是根据事物的...
  • 时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 ...时间序列模型 (七): 时间序列建模的基本步骤 目录 差分指数平滑...
  • 时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 ...时间序列模型 (七): 时间序列建模的基本步骤 这里的平稳是指宽平稳,...
  • 文章目录 机器学习系统 一、监督式学习基本概念 ...二、使用TensorFlow进行算法设计与训练核心步骤 1、准备数据 2、构建模型 3、训练模型 4、进行预测 三、案例演示——单变量线性回归 ...
  • 时间序列模型 (二):移动平均

    万次阅读 多人点赞 2019-04-21 22:18:52
    时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 ...时间序列模型 (七): 时间序列建模的基本步骤 目录 移动平均 ...
  • K近邻

    2018-05-10 21:00:04
     k紧邻法的三个基本要素:k值的选择、距离度量、分类决策规则。一、k近邻算法 输入:训练数据集T,要预测的特征向量x。 输出:特征向量x对应实例的类别y。 步骤:1.根据给定的距离度量,在训练集T中找出与x最近...
  • 时间序列模型 (三):指数平滑

    万次阅读 多人点赞 2019-04-21 22:39:38
    时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 ...时间序列模型 (七): 时间序列建模的基本步骤 一次移动平均实际上认为...
  • 时间序列matlab实现

    万次阅读 多人点赞 2019-08-23 11:14:45
    时间序列预测法其实是一种回归预测方法,属于定量预测,其基本原理是:一方面承认事物发展延续性,运用过去时间序列数据进行统计分析,推测出事物发展趋势;另一方面充分考虑到由于偶然因素影响而产生随机性...
  • 实现步骤:假设给定一个训练数据集(带标签),根据其k个最近邻训练实例类别,通过多数表决等方式进行预测。 k近邻实际上利用训练数据集对特征向量空间进行划分,并作为分类模型。 三个基本要素:k值选择...
  • 统计常识

    2020-03-04 23:05:13
    3.回归预测法中包含哪些基本步骤?4.选择预测方法时应考虑哪些因素?5.经典线性回归模型假定有哪些?6.什么是完全信息价值?分析信息价值意义?7.简述贝叶斯决策方法中预后验分析内容和作用?8.影响时间序列...
  • k近邻算法是一种基本分类和回归方法。本篇文章只讨论分类问题k近邻。 算法步骤概述 给定一个测试样本 计算测试样本中每个点到训练样本中每个点距离 取离测试样本最近k个训练样本 “投票”选出在这k个...
  • 总结sklearn中常用机器学习算法

    千次阅读 2019-03-31 09:26:44
    若为回归问题,则采用平均值方法决定最终预测值。决策树算法带有剪枝过程,但RF算法没有此步骤。根据回归问题和分类问题,sklearn将RF算法分为:分类RF和回归RF。主要是依据样本特征而确定。可以直接利用RF进行多...
  • 时间序列模型 (一):模型概述

    万次阅读 多人点赞 2019-04-21 21:47:12
    时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均 时间序列模型 (三):指数平滑 ...时间序列模型 (七): 时间序列建模的基本步骤 目录 时间序列的不同...
  • k近邻算法 k近邻是一种基本分类与回归方法...算法的基本步骤如下: 1)计算已知类别数据集中的点与当前点之间的距离; 2)按照距离递增次序排序; 3)选取与当前点距离最小的k个点; 4)确定前k个点所在类别的出现...
  • 文章目录算法原理算法步骤KNN三要素KNN算法实现方式KD Tree构建KD tree查找最近邻 ...KNN在做回归和分类主要区别在于最后做预测的时候决策方式不同。KNN在分类预测时,一般采用多数表决;而在做回归预...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

回归预测法的基本步骤