R语言时间序列分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

R语言时间序列初探!说明:作者:AvrilCoghlanEmail:alc@sanger.ac.uk原文:本文档由梁德明、赵华蕾合译;联系方式:hunt4game@gmail.com;内容遵循许可协议CC3.0BY本文档PDF版本地址为:本文档中所提及数据集,如出现无法访问,只需将robjhyndman.com替换为doc.datapanda.net即可这是一份关于使用R统计软件进行时间序列分析的入门文档。内容大纲:使用R进行实现序列分析o时间序列分析o读取时间序列数据o绘制时间曲线图o分解时间序列分解非季节性数据分解季节性数据季节性的修正o使用指数平滑法进行预测简单指数平滑法Holt指数平滑法Holt-Winters指数平滑法oARIMA模型时间序列的差分选择一个合适的ARIMA模型使用ARIMA模型进行预测o链接与拓展阅读时间序列分析这本小册子将告诉你如何使用R软件实现对常见时间序列数据进行简单分析。这本小册子假定读者已经有一定时间序列分析的基础,并且本册的侧重点并不在于解释时间序列分析,而是在于如何使用R软件实现这些分析。如果你是一位学习时间序列的新手,并且很想学习更多关于本册中提及的概念,我强烈推荐英国公开大学的《Timeseries》(产品编号M249/02),你可以从英国公开大学商店购买到。在本册中,我使用的时间序列数据是由RobHyndman的时间序列数据库()提供的。本册的PDF版本(英文)在:如果你喜欢本册,也许你应该瞧瞧这本《R语言与生物统计》(英文)()是否感兴趣,还有我的另一本《R语言与多元统计分析》(英文)()读取时间序列数据当你想要分析时间序列数据时,第一件事就是将数据读入R软件,并且绘制时间序列图。假设你的数据是以连续的时间点的形式存储在简单的文本文件的一列里,你可以使用scan()函数将数据读入到R。例如,这个文件()包含着从威廉一世开始的英国国王的去世年龄数据。(原始出处:HipelandMcleod,1994)数据集如下:AgeofDeathofSuccessiveKingsofEngland#startingwithWilliamtheConqueror#Source:McNeill,InteractiveDataAnalysis604367505642506568436534...这里仅显示了文件的一些行。第一个三行包含了一些数据的注解内容,在我们读入数据到R的时候,直接忽略这些。我们可以使用sacn()函数的”skip”参数指定文件中从顶部开始有多少行需要忽略。为了将数据读入到R,并且忽略掉文件中的前三行,我们输入以下代码:kings-scan(=3)Read42itemskings[1]60436750564250656843653447344941133553561643695948[26]5986556851334967778167718168707756在这个案例中有42位英国国王的去世年龄数据被读入到变量”kings”中。一旦你将时间序列数据读入到R,下一步便是将数据存储到R中的一个时间序列对象里,以便你能使用R的很多函数分析时间序列数据。我们在R中使用ts()函数将数据存储到一个时间序列对象中去。例如存储“kings”这个变量中的数据到时间序列对象中,我们输入以下代码:kingstimeseries-ts(kings)kingstimeseriesTimeSeries:Start=1End=42Frequency=1[1]60436750564250656843653447344941133553561643695948[26]5986556851334967778167718168707756有时候时间序列数据集是少于一年的间隔相同的数据,比如月度或者季度数据。在这种情况下,你可以使用ts()函数中的“frequency”参数指定收集数据在一年中的频数。如月度数据就设定frequency=12,季度数据就设定frequency=4。你也可以通过ts()函数中的“start”参数来指定收集数据的第一年和这一年第一个间隔期。例如,如果你想指定第一个时间点为1986年的第二个季度,你只需设定start=c(1986,2)。一个样本数据集是从1946年1月到1959年12月的纽约每月出生人口数量(由牛顿最初收集)数据集可以从此链接下载()。我们将数据读入R,并且存储到一个时间序列对象中,输入以下代码:births-scan()Read168itemsbirthstimeseries-ts(births,frequency=12,start=c(1946,1))birthstimeseriesJanFebMarAprMayJunJulAugSepOctNovDec194626.66323.59826.93124.74025.80624.36424.47723.90123.17523.22721.67221.870194721.43921.08923.70921.66921.75220.76123.47923.82423.10523.11021.75922.073194821.93720.03523.59021.67222.22222.12323.95023.50422.23823.14221.05921.573194921.54820.00022.42420.61521.76122.87424.10423.74823.26222.90721.51922.025195022.60420.89424.67723.67325.32023.58324.67124.45424.12224.25222.08422.991195123.28723.04925.07624.03724.43024.66726.45125.61825.01425.11022.96423.981195223.79822.27024.77522.64623.98824.73726.27625.81625.21025.19923.16224.707195324.36422.64425.56524.06225.43124.63527.00926.60626.26826.46225.24625.180195424.65723.30426.98226.19927.21026.12226.70626.87826.15226.37924.71225.688195524.99024.23926.72123.47524.76726.21928.36128.59927.91427.78425.69326.881195626.21724.21827.91426.97528.52727.13928.98228.16928.05629.13626.29126.987195726.58924.84827.54326.89628.87827.39028.06528.14129.04828.48426.63427.735195827.13224.92428.96326.58927.93128.00929.22928.75928.40527.94525.91226.619195926.07625.28627.66025.95126.39825.56528.86530.00029.26129.01226.99227.897同样的,这个文件()包含着一家位于昆士兰海滨度假圣地的纪念品商店从1987年1月到1987年12月的每月销售数据(原始数据源于WheelwrightandHyndman,1998)。我们将数据读入R使用以下代码:souvenir-scan()Read84itemssouvenirtimeseries-ts(souvenir,frequency=12,start=c(1987,1))souvenirtimeseriesJanFebMarAprMayJunJulAugSepOctNovDec19871664.812397.532840.713547.293752.963714.744349.613566.345021.826423.487600.6019756.2119882499.815198.247225.144806.035900.884951.346179.124752.155496.435835.1012600.0828541.7219894717.025702.639957.585304.786492.436630.807349.628176.628573.179690.5015151.8434061.0119905921.105814.5812421.256369.777609.127224.758121.227979.258093.068476.7017914.6630114.4119914826.646470.239638.778821.178722.3710209.4811276.5512552.2211637.3913606.8921822.1145060.6919927615.039849.6914558.4011587.339332.5613082.0916732.7819888.6123933.3825391.3536024.8080721.71199310243.2411266.8821826.8417357.3315997.7918601.5326155.1528586.5230505.4130821.3346634.38104660.67PlottingTimeSeries绘制时间序列图一旦我们将时间序列读入R,下一步通常是用这些数据绘制时间序列图,我们可以使用R中的plot.ts()函数。例如,绘制英国国王(依次的)去世年龄数据的时间序列图,我们输入代码:plot.ts(kingstimeseries)从时间曲线图可以看出,这个时间序列可以用相加模型来描述,因为在这一段时间内的随机变动大致是不变的。Likewise,toplotthetimeseriesofthenumberofbirthspermonthinNewYorkcity,wetype:同样的,我们画一个纽约每月出生人口数量的时间序列图,输入代码:plot.ts(

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功