预测:在现时对事物将要发生的结果进行探讨和研究,简单地说就是指从已知事件测定未知事件。
预测的总的原则:认识事物的发展变化规律,利用规律的必然性,是进行科学预测所应遵循的总的原则。这个总原则实际上就是事物发展的
1-“惯性”原则——事物变化发展的延续性;
2-“类推”原则——事物发展的类似性;
3-“相关”原则——事物的变化发展是相互联系的;
4-“概率”原则——事物发展的推断预测结果能以较大概率出现,则结果成立、可用。
什么是时间序列?
时间序列是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。它是现实的、真实的一组动态数据,而不是数理统计中做实验得到的。时间序列背后是某一现象的变化规律。
什么是时间序列模型?
时间序列分析面临的问题
时序应该在现实生活中应用的很广,但是为什么不常用这个模型呢?
时间序列建模基本步骤
1、用观测、调查、统计、抽样等方法取得被观测系统时间序列动态数据。
2、根据动态数据作相关图,进行相关分析,求自相关函数。相关图能显示出变化的趋势和周期,并能发现跳点和拐点。跳点是指与其他数据不一致的观测值。如果跳点是正确的观测值,在建模时应考虑进去,如果是反常现象,则应把跳点调整到期望值。拐点则是指时间序列从上升趋势突然变为下降趋势的点。如果存在拐点,则在建模时必须用不同的模型去分段拟合该时间序列,例如采用门限回归模型。
3、辨识合适的随机模型,进行曲线拟合,即用通用随机模型去拟合时间序列的观测数据。
时间序列主要考虑的因素是:
指一种长期的变化趋势。它采取一种全局的视角,不考虑序列局部的波动
时间序列趋势一般为线性的(linear),二次方程式的 (quadratic)或指数函数(exponential function)。
如图,整体呈下降趋势反映一种周期性的短期波动,一般在一年中完成。
虽然称作“季节”,但是周期并不一定是季度,也可以是月、周等其它能在一年内完成的周期。因为,大多数的周期都以季节的形式出现,所以称作季节变化
比较典型的季节变化例子:圣诞节效应;冷饮的销售情况
指一种较长时间的周期性起伏。一般来说循环时间为2-15年。周期性变动一般会出现波峰和波谷,呈现一种循环往复的现象。
周期性变动通常是因为经济变动,比如:经济危机
指时间序列中无法预计的部分,也可以理解为误差,一般为突发事件导致。在分析中往往又将其称为白噪声,它是时间序列中除去趋势、季节变化和自相关性之后的剩余随机扰动。由于时间序列存在不确定性,随机噪声总是夹杂在时间序列中,致使时间序列表现出某种震荡式的无规律运动。
从数据分析的角度来考虑,我们需要研究:
对于时间序列问题有哪些基本分析思路?
描述时间序列数据的变化规律和行为,不去试图解释和理解这种变化的原因。例如:您可能发现在过去的一年里,三月和九月都会出现销售的高峰,您可能希望继续保持这样,尽管您不知道为什么。
如果在序列分析中我们考虑到自变量的话,根据历史数据建立相应的回归模型用于预测。甚至来说可以直接把时间当做自变量用于预测,当然我们知道回归时候要求残差是独立的,假如检验出来是非独立的话,我们可以去建一个自回归模型
描述时间序列数据的变化规律和行为,它允许模型中包含趋势变动、季节变动、循环变动和随机波动等综合因素影响。具有较高的预测精度,可以把握过去数据变动模式,有助于解释预测变动规律,回答为什么这样。
时间序列分析对长度的要求
——————————————————————————————————————
问题描述
美国1947年1月到1969年12月住宅建筑的数据,分析目的是希望能过通过历史数据来预测1970年全年的情况。
1、首先检查有没有缺失数据,一般用临近点的均值或中位数替补
2、在图表构建器中观察销售额随时间变化趋势
在操作之前需要先对数据进行定义日期,让spss知道其为序列数据
定义了时间序列的时间标记后,数据集自动生成四个新的变量:YEAR、QUARTER、MONTH和DATE(时间标签)
接下来:为了帮我们找到适当的模型,最好先绘制时间序列。时间序列的可视化检查通常可以很好地指导并帮助我们进行选择。另外,我们需要弄清以下几点:
转换:如果选择差分或季节性差分,在旁边的文本框中输入差分度。该数字必须为正整数。当前周期性显示在这些选项下方。这些选项仅对时间序列或类似数据才有意义。
单击时间线以定义时间轴的参考线。
单击格式以定义哪条轴显示时间、图表是线图还是面积图,并在序列平均值处显示参考线。
我们看到:此序列显示整体上升趋势,即序列值随时间而增加。上升趋势似乎将持续,即为线性趋势。此序列还有一个明显的季节特征,即年度高点在十二月。季节变化显示随上升序列而增长的趋势,表明是乘法季节模型而不是加法季节模型。 一次差分(假如序列匀速上升的话,一次差分序列后应该是平的) 发现序列变平了,但是随着时间增加季节变换还是存在的。季节差分(把周期性也去掉看看) 看到上面的序列,无长期趋势、无季节变换,可认为是一个比较平稳的序列了。但是刚才上面在做一次差分后的序列,可以看出其序列随着时间增长离散程度会慢慢变大,后续分析可以考虑这一点,可以做变量变换。时间序列趋势的图形化观察
1.序列图。实际上就是一种特殊的线图
2.自相关和偏相关图。对序列图的初步观察结果作进一步确认(检验其是不是白噪声序列),重点关心主要的相关趋势,然后再对模型进一步修正。
刚才我们做了一次的差分和季节差分真的为平稳序列了吗?用自相关图看看
显示偏自相关要求方程式系统解的大小随延迟数增加而增加。注意偏自相关要求达到较高的延迟数(超过 24)。
单击选项以设置最大延迟数或计算标准误差的方法,或仅在季节性延迟位置显示自相关。
滞后n阶:隔了n个数据的自相关性;Sig<0.05,证明时间序列存在自相关,不都是白噪声 为了方便查看,给出了图,1到5阶都是存在统计学意义的 自相关系数是有传递性的问题在里面的,spss就会计算偏自相关系数,屏蔽传递的效应后,看剩余的关联是否还存在。自相关拖尾,偏自相关也拖尾,根据自回归系数和偏回归系数选择合适的模型
检查模型残差的自相关函数 (ACF) 和偏自相关函数 (PACF) 的值 比 只查看拟合优度统计量能更多地从量化角度来了解模型。合理指定的时间模型将捕获所有非随机的变异,其中包括季节性、趋势、循环周期以及其他重要的因素。这两个自相关函数中的显著结构都可以表明基础模型不完整。
但实际上,spss会提供一个自动分析的方法。模型拟合几乎均可包含在ARIMA模型族中,寻找适当的参数是一个反复尝试的过程。
生成 ARIMA 模型的基本步骤:
对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
由以上得到的d、q、p ,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。
打开分析——预测——周期性分解,进行季节因素分解,并观察数据季节性变化趋势。为了揭示真实趋势,由于季节性影响,首先需要考虑资料中的变异。可使用“周期性分解”过程来删除任何系统性的季节性变化。然后对季节性调整序列执行趋势分析。
模型类型:提供两种方法来对周期性因素进行建模:乘法或加法。如果数据随时间季节波动基本维持恒定,使用加法模型,如果数据趋势随时间波动越来越大,则使用乘法模型
移动平均值权重:允许指定在计算移动平均数时如何处理序列。这些选项仅在序列的周期性为偶数时才可用。如果周期性为奇数,则所有点的权重都相等。
确定会生成四个变量 序列图。将除了季节外的因素放入变量中进行对比上面我们对时间序列的特征有了大致的了解,便可以开始尝试构建预测模型。
提供了三大类预测方法:1-专家建模器,2-指数平滑法,3-ARIMA
指数平滑法有助于预测存在趋势和/或季节的序列,此处数据同时体现上述两种特征。创建最适当的指数平滑模型包括确定模型类型(此模型是否需要包含趋势和/或季节),然后获取最适合选定模型的参数。
1-简单模型预测(即无趋势也无季节)
首先我们采用最为简单的建模方法,就是简单模型,这里我们不断尝试的目的是让大家熟悉各种预测模型,了解模型在什么时候不适合数据,这是成功构建模型的基本技巧
从图中我们看到,虽然简单模型确实显示了渐进的上升趋势,但并不是我们期望的结果,既没有考虑季节性变化,也没有周期性呈现,直观的讲基本上与线性预测没有差异。所以我们拒绝此模型。2-Holt线性趋势预测
Holt线性指数平滑法,一般选择:针对等级的平滑系数lapha=0.1,针对趋势的平滑系数gamma=0.2;
从上面的拟合情况看,Holt预测模型更平滑了,也就是说Holt模型比简单模型显现了更强的平滑趋势,但未考虑季节因素,还是不理想,所以还应放弃此模型。3-简单季节性模型
当我们考虑了季节性变化后,简单季节性预测模型基本上较好的拟合了数据的大趋势,也就是考虑了趋势和季节。4-Winters相乘法预测模型
数据集的时间跨度为10年,并且包含 10 个季节峰值(出现在每年十二月份)中,简单季节模型和Winters模型都扑捉到了这10个峰值与实际数据中的10个年度峰值完全匹配的预测结果。此时,我们基本上可以得到了一个比较满意的预测结果。此时也说明,无论采用指数平滑的什么模型,只要考虑了季节因素,都可以得到较好结果,不同的季节性指数平滑方法只是细微差异了。但是,我们仔细看预测值和拟合值,还是有一些上升和下降的趋势和结构没有扑捉到。预测还有改进的需求!
5-ARIMA预测模型
ARIMA 模型是自回归AR和移动平均MA加上差分考虑,与前面介绍的时间序列分解模型不同,它从时间序列数值本身的相关性出发,力求建立回归模型,这样不仅能够充分利用时间序列数值变化信息,而且能够便捷的将其它影响因素纳入模型进行考虑,这是更为精细的时间序列分析方法。
我们采用专家建模器,但指定仅限ARIMA模型,并考虑季节性因素。这里的差分自回归移动平均模型包括六个参数:ARIMA(p,d,q)(P,D,Q)。小写的p,d,q代表不包含季节变动成分的ARIMA模型结果,大写的是包含季节变动成分的模型结果。p和P代表自回归过程的阶数;d和D代表差分次数;q和Q代表移动平均过程阶数。
因为本案例的时间序列是包含季节变动成分的,所以看后面括号的结果。可以发现时间序列经过一次差分,移动平均过程阶数为1。
解读:Sig值越大越好,平稳得R方也是越大越好
此时,我们看到模型拟合并相比较简单季节性和Winters模型没有太大的优势,结果可接受
方法选择ARIMA试试
将模型的p,d,q都设置成1,1,1,然后继续。p、d、q的值是根据前面的前期分析得到,由于专家建模器可以帮助我们自动计算最佳的值,所以实际应用中专家建模器可能应用的更多 在“Statistics”中,按照图上所示,“拟合变量”选择“平稳的R方”,“R方”,“比较模拟”中选择“拟合优度”,“个别模型统计中”选择“参数估计”。 在“图”选项中,选择“序列”,“残差自相关函数”,“残差部分自相关函数”等选项,如图所示。 在“保存”选项中,全部勾选。(这一步可以不要)由于SPSS的一个小BUG,变量名前缀要修改一下,不能是中文。输出结果
R的平方达到0.961,拟合程度很好,AR,MA的系数分别是0.787和0.664,显著性水平都小于0.01,因此系数都显著不为0 再看残差的ACF和PACF图,可以看到都是平稳的,因此ARIMA(1,1,1)是合理的。寻找适当的参数是一个反复尝试的过程。参数的确定:
对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
由以上得到的d、q、p ,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。
根据模型预测未来销售额
假如要预测此超市未来12个月的销售额,首先在时间序列建模器的保存选项中将'预测值'和置信区间打钩(置信度95%),导出模型文件这里可以保存预测模型,如图
打开建模器—选项,填写预测最后终止日期然后就可以在主界面看到预测数据及2016年的每月销售额,以及预测模型,如图
实际使用中如何确定未来这些预测变量的值呢?
主要方法可以考虑:1)选择最末期数据;2)选择近三期数据的平均;3)选择近三期的移动平均
这里我们选近三期移动平均作为预测自变量数值。
预测值的效果检验
对比一下原始序列和预测值效果,将原始序列和预测值及置信区间变量放入选项框内
拟合的还不错,假如我们未来一段时间的真实数据了,也可以对比一下模型预测及真实数据差别上面的分析都没有考虑其他干扰因素的影响,如果我们考虑时间序列预测包含有预测和干扰变量该如何解决。下面的数据延续前面的案例,只是增加了自变量
我们增加了5个自变量后,采用预测建模方法,选择专家建模器,但限制只在ARIMA模型中选择。从预测值看,比前一模型有了改进,至少这时候的模型捕捉了历史数据中的下降峰值,这可以认为是当前比较适合的拟合值了。如果我们观察预测结果,可以发现模型选择了两个预测变量。
注意:使用专家建模器时,只有在自变量与因变量之间具有统计显著性关系时才会包括自变量。如果选择ARIMA模型,“变量”选项卡上指定的所有自变量(预测变量)都包括在该模型中,这点与使用专家建模器相反。