时间序列分析:平稳时间序列分析之数据准备
Posted SAS知识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间序列分析:平稳时间序列分析之数据准备相关的知识,希望对你有一定的参考价值。
平稳时间序列是时间序列中一类重要的时间序列,对于该时间序列,有一套非常成熟的平稳序列建模方法,这也是本节中将重点介绍的部分。
平稳时间序列分析介绍
平稳时间序列是时间序列中一类重要的时间序列,对于该时间序列,有一套非常成熟的平稳序列建模方法,这也是本节中将重点介绍的部分。对于非平稳序列,可以通过差分、提取确定性成分等方法,将转化成平稳序列,再运用平稳序列建模方法进行建模。
在实际操作中,由于样本数据的匮乏,要根据样本数据要找到生成样本的真实随机过程基本是不太可能的。理论研究表明,任意平稳时间序列都可以由ARMA过程(包括AR过程、MA过程和混合过程)近似表示,并且通过ARMA模型可以对序列作出比较精确的预测。
Box-Jenkins建模方法是关于如何分析平稳时间序列、建立ARMA模型以及进行预测的方法,它也是目前比较流行的一种建模方法,建模过程基本可以分为三步,如下:
模型识别:考察时间序列特征,进行模型识别,辨识出有价值且参数简约的模型子类,如AR(3)、ARMA(2,2)等。
参数估计和诊断检验:对已辨识出的模型子类进行数据拟合和参数估计,在恰当的条件下,有效地运用样本数据对模型参数进行推断和估计,并对模型进行诊断检验,通过检验拟合模型与数据的关系来揭示模型的不当之处,从而对模型进行改进。模型识别、参数估计和诊断检验是不断循环和改进的过程,通过该过程来找到合适的模型表达式。
预测:利用拟合好的时间序列模型来推断序列其他的统计性质或预测序列将来的发展。
通常要求,用来建模的观测值的个数至少有50个,最好是100个或更多。当无法获得50个或者更多的历史观测时,例如进行某种新产品的需求预测时,可以使用经验或者类似产品的历史需求信息得到一个初始模型;当获得更多的数据时,这个模型可以随时被更新。
在进行建模时,应使用包含尽可能少的参数的模型,以获得数学上的充分表达。这就是参数使用的简约性原则,该原则在实际应用中是非常重要的。如果模型不恰当,或参数使用冗余,将会使预测出现严重问题。因此,在模型选择时,谨慎和反复试探是非常必要的,这也是一个不断改进、修正错误和试验的过程。
广义的Box-Jenkins建模方法也可以建立带趋势和季节因素的时间序列,并且可以根据需要在模型中添加其他输入变量。
数据准备
在实际应用中,我们得到的数据往往是一些交易数据,没有固定的时间间隔,这些数据很多情况下不能直接用来进行时间序列分析,需要先对数据进行预处理,例如将交易数据转化成固定间隔的时间序列,进行数据转换,补全缺失数据,检查是否有异常值等。
数据的预处理是时间序列分析的重要组成部分,会直接影响预测的准确度。因此,在进行股票每天交易量预测的时候,首先需要将股票交易数据转化成按天交易的数据;在对汽车的月度需求进行预测时,需要将汽车按天的销售量累积到按月计算的销售量,等等,这些处理都是为了保证预测足够准确。
TIMESERIES过程和EXPAND过程主要用来整理时间序列数据资料,比如说将短时间间隔数据(每天的交易数量)汇总成长时间间隔数据(月度交易数量),或者将长时间间隔数据(季度销售总量)拆分成短时间间隔数据(月度销售总量),或者自定义时间间隔生成新的时间序列。
运用TIMESERIES过程将短时间间隔数据转换成长时间间隔数据的基本语法如下:
其中:
ID语句指定时间变量,时间变量是指包含时间数据的变量。在使用TIMESERIES过程之前,数据集必须按照分类变量和时间变量排序。
选项INTERVAL=指定输出数据集的时间间隔,取值可以为DAY、WEEK、MONTH、QUARTER、YEAR等SAS日期间隔取值或者SAS时间间隔取值。
选项ACCUMULATE=指定了累积方法,取值有TOTAL、AVERAGE、MEDIAN、FIRST、LAST等。
选项SETMISSING=指定缺失值处理方法,取值有MISSING、0、AVERAGE、MEDIAN、FIRST、LAST等,SETMISSING=的默认值是MISSING。
选项START=和选项END=指定时间变量的起始时间和终止时间,过程步只处理和输出落在这一时间段的观测。
通过TIMESERIES过程得到的输出数据集,是固定时间间隔的序列,可以被用来进行时间序列分析和建模。
例17.1: 数据集ex.stockdaily中包含了某上市公司从1995年9月到2011年7月之间每天股票的价格和交易量信息,具体如下:
Date: 交易日期
Open:开盘价
High:最高价
Low:最低价
Close:收盘价
Volume:交易量
LogVolome:交易量的Log形式, LogVolume=Log(Volume)
Year:交易年份
Month:交易月份
部分数据如图17.7所示。
图17.7 数据集ex.stockdaily部分内容
该数据是按天统计的股票信息数据,现在要用TIMESERIES过程,将1995年10月1日到2011年2月28日之间按天统计的数据转换成月度数据。代码如下:
在上述程序中,需要汇总的变量是volume,INTERVAL=MONTH指定输出数据集中数据的时间间隔为月,每天交易量的平均值将作为汇总后的数据存储在变量volume中;在原始数据集ex.stockdaily中,如果在1995年10月1日到2011年2月28日间,缺少某个月份的数据,那么在输出数据集中,将自动生成一条该月份的数据,并且volume的取值为缺失(取值由选项SETMISSING=MISSING指定)。
转换后的数据如图17.8所示。
图17.8 数据集ex.stockmonthly部分内容
在数据准备的过程中,另一个重要的过程步是EXPAND过程。EXPAND过程用来把时间序列从一种采样间隔或频率转换为另外一种,并且补插这一时间序列中的缺失值。使用EXPAND过程可以把高频率间隔的时间序列数据转换为较低频率间隔,反之亦然。例如,可以把以季度为频率间隔的时间序列处理(譬如汇总、取均值或期末值等)为以年度为频率间隔的时间序列,也可以在一个以年度为频率间隔的序列中补插季度估计,得到以季度为频率间隔的时间序列。EXPAND过程的基本语法为:
其中:
和TIMESERIES过程一样,在使用EXPAND过程时,输入数据集必须已经按照分类变量和时间变量排过序。
在PROC EXPAND语句中,选项FROM=指定输入数据集时间间隔,选项TO=指定输出数据集时间间隔,默认情况下,选项TO=的取值为输入数据集的时间间隔。当选项FROM=DAY,TO=DAY时,如果输入数据集中,缺少某一天的数据,那么在输出数据集中,将自动生成一条新的数据,并且在日志中,会生成一条警告信息。
选项METHOD=可以指定插值方法,取值有SPLINE、JOIN、STEP、AGGREGATE和NONE,当取值为NONE时,表示不进行插值。PROC EXPAND语句和CONVERT语句中都可以使用选项METHOD,但是CONVERT语句中选项METHOD的优先级更高。
例17.2: ex.stockdaily数据集中的股票数据是按天收集的,但是因为一些原因,使得该数据集中并没有包含所有交易日的数据,也就是说,某些交易日的数据被遗漏掉了。要使得分析的序列是固定时间间隔的,可以运用EXPAND过程对该序列进行预处理。
示例代码如下:
部分日志信息如图17.9所示。
图17.9 例17.2日志中警告信息
该日志显示在输入数据集中,1995年11月22日和11月24日之间缺少一条数据,在输出数据集中,将自动生成一条新的观测,Date的取值为1995年11月23日。由于选项METHOD=NONE,因此,新观测的Volume和Logvolume的取值为缺失(如图17.10所示)。
图17.10 例17.2日志信息
原始数据集ex.stockdaily中包含4000条数据,经过EXPAND过程处理后,增加了部分数据,变为了4130条数据。
EXPAND过程的用法非常灵活,还可以将某种固定间隔的时间序列转换成其他任意指定时间间隔的数据(查看SAS帮助文档中选项FACTOR的用法),并且可通过指定的方法补插时间序列中的缺失值。
本文结束,下一篇文章介绍平稳时间序列分析之平稳性和白噪声检检验。
回复【数据和代码】可以下载《深入解析SAS》一书的数据和代码。
查询往期文章,请回复下列关键字:
【安全】==>【SAS智能平台安全管理】系列文章
【Base基础】==>【Base SAS基础】系列文章
【编程概念】==>【SAS编程基本概念】系列文章
【描述性统计】==>【SAS统计分析系列:描述性统计分析】系列文章
【读外部数据】==>【读取外部数据到SAS数据集】系列文章
【假设检验】==>【参数估计与假设检验】系列文章
【单数据集处理】==>【单数据集处理】系列文章
【方差分析】==>【方差分析】系列文章
【主成分与因子分析】==>【主成分分析与因子分析】系列文章
【多数据集处理】==>【多数据集处理】系列文章
【线性回归】==>【线性回归】系列文章
【数据汇总展现】==>【数据汇总与展现】系列文章
小贴士
读者可以从以下链接获取SAS公司提供的免费版环境:
SAS大学版(SAS® University Edition)是SAS为在校大学生免费提供的基于虚拟机和网页的SAS环境。回复关键字【大学版】,可以查看详细介绍。
下载路径:
https://www.sas.com/en_us/software/university-edition/download-software.html
SAS学术版(SAS® OnDemand for Academics)是 SAS 为学术届人士免费提供的、在线的、基于SAS 私有云上的应用服务环境。
用户首先需要注册,然后按照提示信息就可登录。
注册路径:
http://odamid.oda.sas.com
本文转自《深入解析SAS — 数据处理、分析优化与商业应用 》
如若转载本文,请在文章顶部标注 “本文转自SAS知识 (ID: SASAdvisor),摘自《深入解析SAS — 数据处理、分析优化与商业应用 》”
作者介绍
夏坤庄
《深入解析SAS — 数据处理、分析优化与商业应用》第一作者, SAS软件研究开发(北京)有限公司客户职能部总监。在承担研发工作的同时,夏及其团队负责对SAS非英语市场提供技术支持,并且与在美国及其它地区的团队一起,服务于SAS的SaaS/RaaS业务,同时提供和验证关于SAS产品和技术在应用领域的最佳实践。在加入SAS软件研究开发(北京)有限公司之前,夏就职于SAS中国公司,历任资深咨询顾问、项目经理、首席顾问、咨询经理,拥有丰富的咨询和项目实施经验。在长期的从业经历中,不但为SAS的金融行业客户成功实施了众多深受好评的项目,而且在近年领导实施了非金融行业的多个大数据分析项目。
SAS知识 微信:SASAdvisor 长按二维码关注
欢迎大家投稿,一起分享SAS的点滴
投稿邮箱: sasadvisor@outlook.com
以上是关于时间序列分析:平稳时间序列分析之数据准备的主要内容,如果未能解决你的问题,请参考以下文章