时间序列分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间序列分析相关的知识,希望对你有一定的参考价值。

参考技术A

在R中生成时间序列的前提是我们将分析对象转成时间序列函数对象,包括观测值、起始时间、种植时间、及周期(月、季度、年)的结构。这些都能通过ts( )函数实现。

R语言中,对时间序列数据进行分析处理时,使用差分函数要注意:差分函数diff()不带参数名的参数指滞后阶数,也就是与滞后第几阶的数据进行差分。如果要指定差分的阶数,则一定要使用带名称的参数:diff=2。

例如: sample表示样本数据。

1、diff(sample,2)表示是对滞后2阶的数据进行差分,一阶差分,等同于: diff(sample,lag=2)

2、diff(sample,diff=2)才是表示二阶差分

意:在函数中尽量避免使用没有命名的参数。在《时间序列分析及应用-R语言(第2版)》中,P315,描述到: 我们得到的教训就是,除非完全了解相关参数的位置,否则使用未命名参数是非常危险的。

截尾是指时间序列的自相关函数(ACF)或偏自相关函数(PACF)在某阶后均为0的性质(比如AR的PACF);

拖尾是ACF或PACF并不在某阶后均为0的性质(比如AR的ACF)。

拖尾 :始终有非零取值,不会在k大于某个常数后就恒等于零(或在0附近随机波动)

截尾 :在大于某个常数k后快速趋于0为k阶截尾

AR模型:自相关系数拖尾,偏自相关系数截尾;

MA模型:自相关系数截尾,偏自相关函数拖尾;

ARMA模型:自相关函数和偏自相关函数均拖尾。

根据输出结果, 自相关函数图拖尾,偏自相关函数图截尾 ,且n从2或3开始控制在置信区间之内,因而可判定为AR(2)模型或者AR(3)模型。

16种常用的数据分析方法-时间序列分析

参考技术A


时间序列(time series)是系统中某一变量的观测值按时间顺序(时间间隔相同)排列成一个数值序列,展示研究对象在一定时期内的变动过程,从中寻找和分析事物的变化特征、发展趋势和规律。它是系统中某一变量受其它各种因素影响的总结果。


研究时间序列主要目的可以进行预测,根据已有的时间序列数据预测未来的变化。时间序列预测关键:确定已有的时间序列的变化模式,并假定这种模式会延续到未来。







时间序列的基本特点


假设事物发展趋势会延伸到未来

预测所依据的数据具有不规则性

不考虑事物发展之间的因果关系

时间序列数据用于描述现象随时间发展变化的特征。







时间序列考虑因素


时间序列分析就其发展历史阶段和所使用的统计分析方法看分为传统的时间序列分析和现代时间序列分析,根据观察时间的不同,时间序列中的时间可以是可以是年份、季度、月份或其他任何时间形式。


时间序列分析时的主要考虑的因素是:


l长期趋势(Long-term trend) 


时间序列可能相当稳定或随时间呈现某种趋势。

时间序列趋势一般为线性的(linear),二次方程式的 (quadratic)或指数函数(exponential function)。


l季节性变动(Seasonal variation)


按时间变动,呈现重复性行为的序列。

季节性变动通常和日期或气候有关。

季节性变动通常和年周期有关。


l周期性变动(Cyclical variation)


相对于季节性变动,时间序列可能经历“周期性变动”。

周期性变动通常是因为经济变动。


l随机影响(Random effects)


除此之外,还有偶然性因素对时间序列产生影响,致使时间序列呈现出某种随机波动。时间序列除去趋势、周期性和季节性后的偶然性波动,称为随机性(random),也称不规则波动(irregular variations)。







时间序列的主要成分


时间序列的成分可分为4种:


l趋势(T)、

l季节性或季节变动(S)、

l周期性或循环波动(C)、

l随机性或不规则波动(I)。


传统时间序列分析的一项主要内容就是把这些成分从时间序列中分离出来,并将它们之间的关系用一定的数学关系式予以表达,而后分别进行分析。







时间序列建模基本步骤


1)用观测、调查、统计、抽样等方法取得被观测系统时间序列动态数据。


2)根据动态数据作相关图,进行相关分析,求自相关函数。


相关图能显示出变化的趋势和周期,并能发现跳点和拐点。


跳点是指与其他数据不一致的观测值。如果跳点是正确的观测值,在建模时应考虑进去,如果是反常现象,则应把跳点调整到期望值。


拐点则是指时间序列从上升趋势突然变为下降趋势的点。如果存在拐点,则在建模时必须用不同的模型去分段拟合该时间序列,例如采用门限回归模型。


3)辨识合适的随机模型,进行曲线拟合,即用通用随机模型去拟合时间序列的观测数据。


对于短的或简单的时间序列,可用趋势模型和季节模型加上误差来进行拟合。


对于平稳时间序列,可用通用ARMA模型(自回归滑动平均模型)及其特殊情况的自回归模型、滑动平均模型或组合-ARMA模型等来进行拟合。


当观测值多于50个时一般都采用ARMA模型。对于非平稳时间序列则要先将观测到的时间序列进行差分运算,化为平稳时间序列,再用适当模型去拟合这个差分序列。







spss时间序列分析过程


第一步:定义日期标示量:


打开数据文件,单击"数据",选择"定义日期和时间",弹出"定义日期"对话框,


数据中的起始时间就是数据文件里面的单元格第一个时间,我的第一个是1997年8月,每行表示的是月度销售量,因此,需要从"定义日期"对话框的左侧"个案是"框中选择"年,月",在左侧输入‘1997’,月框中输入‘8’,表示第一个个案的起始月是1997年8月,


最后点击确认,这样spss数据文件里面就会生成3个新的变量

如下图:


  

第二步:了解时间序列的变化趋势


了解时间序列的变化趋势做一个序列表就可以了,单击"分析",里面选择"时间序列预测,选择"序列图"对话框,然后把\'平均值\'移到"变量"框里面,‘DATE_’移到"时间轴标签"框中,单击"确定"。结果如图


    


根据序列图的分析知道,序列的波动随着季节的波动越来越大,所以我们选择乘法模型;


第三步:分析


单击“分析”,选择时间序列预测,然后选择“季节性分解”,弹出“季节性分解”对话框,确认无误之后点击确定,如图:



多了四个变量:


lERR表示误差分析;

lSAS表示季节因素校正后序列;

lSAF表示季节因子;

lSTC表示长期趋势和循环变动序列。


我们可以把新出现的四个变量、平均值和DATE_做序列图。先把ERR、SAS、STC和平均值和DATE_做个序列图,效果如下:



再单独做个SAT和DATE_的时间序列图


 

第四步:预测


1、 单击“分析”,选择“时间序列预测”,然后选择“创建传统模型”,之后就会弹出“时间序列建模”对话框。


2、 将“平均值”移至“因变量”框中,然后确定中间的“方法”,在下拉列表中选择“专家建模器”项,单击右侧的“条件”按钮,弹出“时间序列建模器:专家建模器条件”对话框。


3、 在“时间序列建模器:专家建模器条件”对话框的“模型”选项卡中,在“模型类型”框中选择“所有模型”项,并勾选“专家建模器考虑季节性模型”复选框,设置完,点“继续”按钮


4、 在“时间序列建模器”对话框中,切换至“保存”选项卡中,勾选“预测值”复选框,单击“导出模型条件”框中“XML文件”后面的“浏览”按钮,然后设置导出的模型文件和保存路径,然后单击“确定”按钮就可以了。


做完上面的步骤之后,在原始数据上面就又会多一列预测值出现。如图:


 

之前保存了预测的模型,我们现在就利用那个模型进行预测数据。


1、 单击“分析”,选择“时间序列预测”,然后选择“应用传统模型”,弹出“应用模型序列”对话框。具体的操作如下图:


 

最后一步切换至“保存”界面,勾选“预测值”之后单击确定就可以了。


      


从预测值直接看看不出来,可以把预测的数据和原始数据放到一起看下,也是直接做序列图就可以。


这样就完成了一次时间序列的模型,具体的预测数据可以看原始数据上面的出现的新的一列数据。


- End -


以上是关于时间序列分析的主要内容,如果未能解决你的问题,请参考以下文章

(19)时间序列分析

16种常用的数据分析方法-时间序列分析

基于SPSS的时间序列分析(转载自某大神)

时间序列分析概述

如何使用SPSS做时间序列分析

Tableau(一):时间序列分析