? 时间序列分析R语言程序_牛聚文档

时间序列分析R语言程序

时间序列分析R语言程序
预览:

#例 2.1 绘制 1964—— 1999年中国年纱产量序列时序 图(数据见附录 1.2)

Data1.2=read.csv("C:\\Users\\Administrator\\Desktop\\附录 1.2.csv",header=T)#如果有标题, 用 T ; 没有标题 用 F

plot(Data1.2,type='o')

#例 2.1续

tdat1.2=Data1.2[,2]

a1.2=acf(tdat1.2)

#例 2.2绘制 1962年 1月至 1975年 12月平均每头奶 牛产奶量序列时序图(数据见附录 1.3)

Data1.3=read.csv("C:\\Users\\Administrator\\Desktop\\附录 1.3.csv",header=F)

tdat1.3=as.vector(t(as.matrix(Data1.3)))[1:168]#矩 阵 转 置转向量

plot(tdat1.3,type='l')

#例 2.2续

acf(tdat1.3) #把字去掉

pacf(tdat1.3)

#例 2.3绘制 1949—— 1998年北京市每年最高气温序 列时序图

Data1.4=read.csv("C:\\Users\\Administrator\\Desktop\\附录 1.4.csv",header=T)

plot(Data1.4,type='o')

##不会定义坐标轴

#例 2.3续

tdat1.4=Data1.4[,2]

a1.4=acf(tdat1.4)

#例 2.3续

Box.test(tdat1.4,type="Ljung-Box",lag=6) Box.test(tdat1.4,type="Ljung-Box",lag=12)

#例 2.4随机产生 1000个服从标准正态分布的白噪声 序列观察值,并绘制时序图

Data2.4=rnorm(1000,0,1)

Data2.4

plot(Data2.4,type='l')

#例 2.4续

a2.4=acf(Data2.4)

#例 2.4续

Box.test(Data2.4,type="Ljung-Box",lag=6) Box.test(Data2.4,type="Ljung-Box",lag=12)

#例 2.5对 1950—— 1998年北京市城乡居民定期储蓄 所占比例序列的平稳性与纯随机性进行检验

Data1.5=read.csv("C:\\Users\\Administrator\\Desktop\\ 附录 1.5.csv",header=T)

plot(Data1.5,type='o',xlim=c(1950,2010),ylim=c(60,100) )

tdat1.5=Data1.5[,2]

a1.5=acf(tdat1.5)

#白噪声检验

Box.test(tdat1.5,type="Ljung-Box",lag=6) Box.test(tdat1.5,type="Ljung-Box",lag=12)

#例 2.5续选择合适的 ARMA 模型拟合序列 acf(tdat1.5)

pacf(tdat1.5)

#根据自相关系数图和偏自相关系数图可以判断为 AR (1)模型

#例 2.5续 P81 口径的求法在文档上

#P83

arima(tdat1.5,order=c(1,0,0),method="ML")#极 大 似 然 估计

ar1=arima(tdat1.5,order=c(1,0,0),method="ML") summary(ar1)

ev=ar1$residuals

acf(ev)

pacf(ev)

#参数的显著性检验

t1=0.6914/0.0989

p1=pt(t1,df=48,lower.tail=F)*2

#ar1的显著性检验

t2=81.5509/ 1.7453

p2=pt(t2,df=48,lower.tail=F)*2

#残差白噪声检验

Box.test(ev,type="Ljung-Box",lag=6,fitdf=1) Box.test(ev,type="Ljung-Box",lag=12,fitdf=1)

#例 2.5续 P94预测及置信区间 predict(arima(tdat1.5,order=c(1,0,0)),n.ahead=5) tdat1.5.fore=predict(arima(tdat1.5,order=c(1,0,0)),n.ahea d=5)

U=tdat1.5.fore$pred+1.96*tdat1.5.fore$se

L=tdat1.5.fore$pred-1.96*tdat1.5.fore$se

plot(c(tdat1.5,tdat1.5.fore$pred),type="l",col=1:2) lines(U,col="blue",lty="dashed")

lines(L,col="blue",lty="dashed")

#例 3.1.1 例 3.5 例 3.5续

#方法一 plot.ts(arima.sim(n=100,list(ar=0.8)))

#方法二

x0=runif(1)

x=rep(0,1500)

第1页/共6页 下一页>尾页