下载此文档

用r语言做时间序列分析.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
用R语言做时间序列分析时间序列(timeseries)是一系列有序的数据。通常是等时间间隔的采样数据。如果不是等间隔,则一般会标注每个数据点的时间刻度。下面以timeseries普遍使用的数据airlinepassenger为例。这是十一年的每月乘客数量,单位是千人次。如果想尝试其他的数据集,可以访问这里: :tsdl可以很明显的看出,airlinepassenger的数据是很有规律的。pose(分析数据的各个成分,例如趋势,周期性),prediction(预测未来的值),classification(对有序数据序列的feature提取与分类),clustering(相似数列聚类)等。这篇文章主要讨论prediction(forecast,预测)问题。即已知历史的数据,如何准确预测未来的数据。先从简单的方法说起。给定一个时间序列,要预测下一个的值是多少,最简单的思路是什么呢?(1)mean(平均值):未来值是历史值的平均。(2)exponentialsmoothing(指数衰减):当去平均值得时候,每个历史点的权值可以不一样。最自然的就是越近的点赋予越大的权重。或者,更方便的写法,用变量头上加个尖角表示估计值(3)snaive:假设已知数据的周期,那么就用前一个周期对应的时刻作为下一个周期对应时刻的预测值(4)drift:飘移,即用最后一个点的值加上数据的平均趋势介绍完最简单的算法,下面开始介绍两个timeseries里面最火的两个强大的算法:Holt-Winters和ARIMA。上面简答的算法都是这两个算法的某种特例。(5)Holt-Winters: 三阶指数平滑Holt-Winters的思想是把数据分解成三个成分:平均水平(level),趋势(trend),周期性(seasonality)。R里面一个简单的函数stl就可以把原始数据进行分解:一阶Holt—Winters假设数据是stationary的(静态分布),即是普通的指数平滑。二阶算法假设数据有一个趋势,这个趋势可以是加性的(additive,线性趋势),也可以是乘性的(multiplicative,非线性趋势),只是公式里面一个小小的不同而已。 三阶算法在二阶的假设基础上,多了一个周期性的成分。同样这个周期性成分可以是additive和multiplicative的。举个例子,如果每个二月的人数都比往年增加1000人,这就是additive;如果每个二月的人数都比往年增加120%,那么就是multiplicative。R里面有Holt-Winters的实现,现在就可以用它来试试效果了。我用前十年的数据去预测最后一年的数据。性能衡量采用的是RMSE。当然也可以采用别的metrics:预测结果如下:结果还是很不错的。(6)ARIMA: AutoRegressiveIntegratedMovingAverageARIMA是两个算法的结合:AR和MA。其公式如下:是白噪声,均值为0,C是常数。 ARIMA的前半部分就是Autoregressive:,后半部分是movingaverage: 。 AR实际上就是一个无限脉冲响应滤波器(infiniteimpulseresopnse),MA是一个有限脉冲响应(finiteimpulseresopnse),输入是白噪声。ARIMA里面的I指Integra

用r语言做时间序列分析 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小43 KB
  • 时间2019-10-22
最近更新