时间序列与R.

上传人:最**** 文档编号:116749394 上传时间:2019-11-17 格式:DOCX 页数:25 大小:300.90KB
返回 下载 相关 举报
时间序列与R._第1页
第1页 / 共25页
时间序列与R._第2页
第2页 / 共25页
时间序列与R._第3页
第3页 / 共25页
时间序列与R._第4页
第4页 / 共25页
时间序列与R._第5页
第5页 / 共25页
点击查看更多>>
资源描述

《时间序列与R.》由会员分享,可在线阅读,更多相关《时间序列与R.(25页珍藏版)》请在金锄头文库上搜索。

1、 读入数据ts(data, frequency=n, start=x, end=y, names=c(a,b,c,.)n:单位时间的观测值数目,如n=1为年,n=7为周,n=12为月,n=4为季度等x:从第几个开始,若为两个整数的向量,如(1986,2)则从1986年的第2个月开始插入数据例: birthsts ts(births,frequency=12,start=c(1946,1)时间序列检验1、自相关自相关: 自相关系数通过acf()实现acf(x, lag.max=n, type=c(correlation, covariance, partial), plot=TRUE)- x 时

2、间序列- lag.max 最大之后阶数- type 分别为“自相关系数”,“自协方差”,“偏自相关系数”- plot 是否要画出acf图形,FALSE为不画2、偏自相关偏自相关:偏自相关系数通过pacf()或者acf()中type=partial需注意的一点是,acf从0开始,pacf从1阶开始。3、平稳性检验平稳性:序列的均值为常数,且自协方差函数只与时滞有关,与时间点无关。平稳性的目的是使序列不存在周期性和趋势性。平稳化最好的方法是差分,检验平稳化与否最有效的方法是单位根检验(Augmented Dickey-Fuller: ADF)。差分通过diff()实现diff(data, diff

3、erences=d, lag=n)- data 时间序列- differences d阶差分- lag 周期内差分,如12为为今年1月与去年1月的差分(1) 时序图检验 平稳时间序列的均值和方差为常数,可用plot()检查序列,应在一个常数值附近随机波动,且波动范围有界。(2)自相关图检验 平稳时间序列有短期的相关性,因此,自相关系数会很快递减为0。(3)单位根检验fUnitRoots包以下讨论几种时间序列的平稳性(1) 确定趋势的时间序列 带随机波动的线性趋势序列,对 y=0.8x+3加入随机扰动后形成序列yy x y yy plot(yy) acf(yy,lag.max=300) pacf

4、(yy,lag.max=300) 对于一个单增序列来说,acf是非常缓慢下降的序列。(2) 周期性时间序列 x y yy plot(yy) acf(yy,lag.max=300) pacf(yy,lag.max=300) acf有伪周期的特点(3) 伪周期时间序列 x y yy plot(yy) acf(yy,lag.max=300) pacf(yy,lag.max=300)acf同样有伪周期的特点(4) 随机游走Y = ts(rnorm(1000, mean=0, sd=1);for (i in 2:length(Y) Yi = Yi + Yi-1;plot(Y, main=随机游走, ty

5、pe=b, col=red);abline(h=0)acf(Y, lag.max=300)pacf(Y, lag.max=300)4、纯随机检验(白噪音检验) 白噪音:时间序列的每一个元素都为独立同分布,且均值为0。 barlett检验,统计量有Q统计量和LB统计量,两者都渐进服从卡方分布。 H0:该序列为白噪音。p-valuep0则接受原假设。 Box.test(x, lag=n, type=c(Box-Pierce, Ljung-Box), fitdf=0) - x 待检验序列 - lag 滞后阶数 - type type=Box-Pierce为Q统计量, type=Ljung-Box为L

6、B统计量 - fitdf 自由度调整 值得注意的是,对于滞后阶数的确定,可以写一循环遍历n,看哪个阶数不通过假设检验 以下以白噪音为例,进行检验 D=ts(rnorm(300,0,1) par(mfrow=c(3,1) plot(D,main=白噪音) acf(D, main=acf) pacf(D, main=pacf) LAG=c(); LB=c(); p=c() for (i in 1:12)+ Btest=Box.test(D, type=Ljung-Box, lag=i)+ LAGi=i+ LBi=Btest$statistic+ pi=Btest$p.value+ result=c

7、bind(LAG, LB, p)+ result LAG LB p1, 1 0.2883921 0.59125282, 2 0.2900914 0.86498283, 3 1.3822096 0.70971014, 4 1.3834149 0.84707245, 5 1.6648477 0.89329836, 6 3.7755790 0.70701577, 7 4.3513763 0.73853228, 8 4.5375168 0.80566809, 9 5.9916393 0.740754810, 10 6.0527981 0.810808011, 11 7.0445782 0.795462

8、112, 12 7.6051383 0.8151766可见,各阶LB检验都不能拒绝原假设,因此可认为序列纯随机。时间序列的分解 - 通过看时序图观察是否其趋势性和周期性,若季节性和随机部分在整个时间周期内大致不变,即可采用相加模型1、非季节性时间序列分解:非季节性(趋势性)+ 随机部分 趋势性一般用平滑法来实现,目标是消除随机性,将曲线转化为平滑的趋势线 最简单的为移动平均法(包括简单移动平均,加权移动平均,多次移动平均), 其中简单移动平均法为:对x=(x1,x2,x3,x4,x5,.), 若计算跨度n=5,则x6=(x1+.+x5)/5, x7=(x2+.+x6)/5 . 若随机性较大,则

9、取较大的n,以避免随机造成的偏差;若随机性较小,则取较小的n,方便跟踪数据趋势 在R中用TTR程序包的SMA函数,SMA(data, n=8)king-scan(http:/ / 周期为8的简单移动平均plot(kingstime)2、季节性时间序列分解:非季节性(趋势性)+ 季节性(周期性)+ 随机部分采用R语言中的decompose()函数,生成trend+seasonal+random三部分births - scan(http:/ - ts(births,frequency=12, start=c(1946,1)plot(birthsts)birthsts_decompose 0, 即用

10、上期的值与上期的预测值来预测本期值。 更多时间序列平滑预测模型介绍,见时间序列平滑预测法.ppt例子:18131912年伦敦每年降雨量rain - scan(http:/ - ts(rain,start=c(1813)plot(raints)- 数据在25附近随机波动,且无季节性和趋势性,采用简单指数平滑法raints_exp -HoltWinters(raints,beta=FALSE, gamma=FALSE)Holt-Winters exponential smoothing without trend and without seasonal component.Call:HoltWi

11、nters(x = raints, beta = FALSE, gamma = FALSE)Smoothing parameters:alpha: 0.02412151beta : FALSEgamma: FALSECoefficients: ,1a 24.67819- 值为0.024,权重更多依赖于上一期的预测值- 系数a为整体的水平基准值plot(raints_exp)-raints_exp$fitted 和raints_exp$SSE 分别为预测值(上图的红线)及误差平方和raints_exp - HoltWinters(raints,beta=FALSE, gamma=FALSE,l.start=23)- 可用l.start设置初始值水平- 以上是对已知样本的样本内预测,若想预测更远的值,可基于上边输出的结果,使用forecast.HoltWinters函数预测library(forecast)raints_exp_forecast - forecast.HoltWinters(raints_exp, h=8,level=c(95) / h=8表示预测之后的8个值,level表示给出95%的预测区间(默认给出80%和95%)Point

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号