时间序列分析基于R答案.docx
- 文档编号:8562225
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:39
- 大小:7.25MB
时间序列分析基于R答案.docx
《时间序列分析基于R答案.docx》由会员分享,可在线阅读,更多相关《时间序列分析基于R答案.docx(39页珍藏版)》请在冰豆网上搜索。
时间序列分析基于R答案
时间序列分析——基于R王燕答案
第一章时间序列分析简介
略
第二章时间序列的预处理
#========================================
#
#2.5习题-1
#
#========================================
library(tseries)
par(mfrow=c(1,2))
x=rep(1:
20)
temp=ts(x)
plot(temp)
#不是平稳序列
as.vector(acf(temp)$acf[1:
6])
#序列的自相关系数递减到零的速度相当缓慢,
#在很长的延迟时期里,自相关系数一直为正,
#而后又一直为负,在自相关图上显示出明显的
#三角对称性,这是具有单调趋势的非平稳序列
#的一种典型的自相关图形式。
这和该序列时序
#图显示的显著的单调递增性是一致的。
#========================================
#
#2.5习题-2
#
#========================================
library(tseries)
par(mfrow=c(1,2))
volcano.co2=read.table('习题2.2数据.txt',sep='\t',header=F)
data=ts(as.vector(t(as.matrix(volcano.co2))),start=c(1975,1))
plot(data)
#不是平稳序列
as.vector(acf(data,lag.max=23)$acf)
#序列自相关系数长期位于零轴的一边。
这是
#具有单调趋势序列的典型特征,同时自相关
#图呈现出明显的正弦波动规律,这是具有周
#期变化规律的非平稳序列的典型特征。
自相
#关图显示出来的这两个性质和该序列时序图
#显示出的带长期递增趋势的周期性质是非常
#吻合的。
#========================================
#
#2.5习题-3
#
#========================================
library(tseries)
par(mfrow=c(1,2))
rain=read.table('习题2.3数据.txt',sep='\t',header=F)
data=ts(as.vector(t(as.matrix(rain))),start=c(1945,1))
plot(data)
#该序列为平稳序列
as.vector(acf(data,lag.max=23)$acf)
#该序列的自相关系数一直都比较小,
#基本控制在2倍的标准差范闹以内,
#可以认为该序列自始至终都在零轴附
#近波动,这是随机性非常强的平稳时
#间序列通常具有的自相关图特征。
for(iin1:
2){
print(Box.test(data,lag=6*i))
}
#根据这个检验结果,不能拒绝序列纯
#随机的原假设。
因而可以认为此序列
#的变动属于纯随机波动。
#========================================
#
#2.5习题-4
#
#========================================
library(tseries)
data=c(0.02,0.05,0.10,-0.02,0.05,0.01,0.12,-0.06,0.08,-0.05,0.02,-0.05)
Q=100*data%*%data
LB=100*102*(data/c(99:
88))%*%data
1-pchisq(Q,12)
1-pchisq(LB,12)
#认为该序列为纯随机序列
#========================================
#
#2.5习题-5
#
#========================================
library(tseries)
par(mfrow=c(1,2))
sale.data=read.table('习题2.5数据.txt',sep='\t',header=F)
sale.data=sale.data[-1,]
sale.data=sale.data[,-1]
data=ts(as.numeric(as.vector(as.matrix(sale.data)),start=c(2000,1)))
plot(data)
#该序列不是平稳序列
acf(data)
for(iin1:
2){
print(Box.test(data,lag=6*i))
}
#纯随机性检验结果显示,在各阶延迟
#下LB检验统计量的P值都非常小(<0.05),
#所以我们可以以很大的把握断定该序
#列属于非白噪声序列。
#========================================
#
#2.5习题-6
#
#========================================
library(tseries)
par(mfrow=c(2,2))
sale.data=read.table('习题2.6数据.txt',sep='\t',header=F)
temp=as.vector(t(as.matrix(sale.data)))
temp=temp[1:
(length(temp)-2)]
data=ts(temp,start=c(1969,1),frequency=28)
plot(data)
acf(data)
#该序列不是平稳序列
for(iin1:
2){
print(Box.test(data,lag=6*i,type='Ljung-Box'))
}
#纯随机性检验结果显示,在各阶延迟
#下LB检验统计量的P值都非常小(<0.05),
#所以我们可以以很大的把握断定该序
#列属于非白噪声序列
data=data-c(0,data[1:
(length(data)-1)])
plot(data)
acf(data)
#该序列是平稳序列
for(iin1:
2){
print(Box.test(data,lag=6*i,type='Ljung-Box'))
}
#纯随机性检验结果显示,在各阶延迟
#下LB检验统计量的P值都非常小(<0.05),
#所以我们可以以很大的把握断定该序
#列属于非白噪声序列
第三章平稳时间序列分析
#========================================
#
#3.5习题-17
#
#========================================
library(tseries)
par(mfrow=c(2,2))
snow=read.table('习题3.17数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(snow)))
x=x[1:
(length(x)-1)]
data=ts(x)
plot(data)
#该序列为平稳序列
acf(data)
for(iin1:
2){
print(Box.test(data,lag=6*i))
}
#根据这个检验结果,不能拒绝序列纯
#随机的原假设。
因而可以认为此序列
#的变动属于纯随机波动。
pacf(data)
library(forecast)
library(zoo)
auto.arima(data)
#ARIMA(0,1,1)
data.fit=arima(data,order=c(0,1,1))
data.fit
data.fore=forecast(data.fit,h=5)
data.fore
plot(data.fore)
#========================================
#
#3.5习题-18
#
#========================================
library(tseries)
par(mfrow=c(2,2))
rice=read.table('习题3.18数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(rice)))
x=x[1:
(length(x)-3)]
data=ts(x)
plot(data)
#该序列为平稳序列
acf(data)
for(iin1:
2){
print(Box.test(data,lag=6*i))
}
#纯随机性检验结果显示,在各阶延迟
#下LB检验统计量的P值都非常小(<0.05),
#所以我们可以以很大的把握断定该序
#列属于非白噪声序列
pacf(data)
library(forecast)
library(zoo)
auto.arima(data)
#ARIMA(0,1,1)
data.fit=arima(data,order=c(0,1,1))
data.fit
data.fore=forecast(data.fit,h=5)
data.fore
plot(data.fore)
#========================================
#
#3.5习题-19
#
#========================================
library(tseries)
par(mfrow=c(2,2))
re=read.table('习题3.19数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(re)))
x=x[1:
(length(x)-6)]
data=ts(x)
plot(data)
#该序列为平稳序列
acf(data)
for(iin1:
2){
print(Box.test(data,lag=6*i))
}
#纯随机性检验结果显示,在各阶延迟
#下LB检验统计量的P值都非常小(<0.05),
#所以我们可以以很大的把握断定该序
#列属于非白噪声序列
pacf(data)
library(forecast)
library(zoo)
auto.arima(data)
#ARIMA(0,0,2)
data.fit=arima(data,order=c(0,0,2))
data.fit
data.fore=forecast(data.fit,h=1)
data.fore
plot(data.fore)
#========================================
#
#3.5习题-20
#
#========================================
library(tseries)
par(mfrow=c(2,2))
p=read.table('习题3.20数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(p)))
x=x[1:
(length(x)-2)]
data=ts(x)
plot(data)
#该序列为平稳序列
acf(data)
for(iin1:
2){
print(Box.test(data,lag=6*i))
}
#纯随机性检验结果显示,在各阶延迟
#下LB检验统计量的P值都非常小(<0.05),
#所以我们可以以很大的把握断定该序
#列属于非白噪声序列
pacf(data)
library(forecast)
library(zoo)
auto.arima(data)
#ARIMA(2,1,3)
data.fit=arima(data,order=c(2,1,3))
data.fit
data.fore=forecast(data.fit,h=5)
data.fore
plot(data.fore)
第四章非平稳序列的确定性分析
#========================================
#
#4.6习题-5
#
#========================================
library(tseries)
par(mfrow=c(2,2))
p=read.table('习题4.5数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(p)))
x=x[1:
(length(x)-4)]
data=ts(x)
plot(data)
#线性拟合
t=c(1:
length(x))
data.fit=lm(data~t)
summary(data.fit)
abline(lm(data~t),col=2)
#5期移动平均法
library(TTR)
data.ma=SMA(x,n=5)
lines(data.ma,col=3,lwd=2)
p1=sum(data[(length(data)-4):
length(data)])/5
p2=(sum(data[(length(data)-3):
length(data)])+p1)/5
p3=(sum(data[(length(data)-2):
length(data)])+p1+p2)/5
p4=(sum(data[(length(data)-1):
length(data)])+p1+p2+p3)/5
p5=(data[length(data)]+p1+p2+p3+p4)/5
print(c(p1,p2,p3,p4,p5))
#Holt两参数平滑
data.fit2=HoltWinters(data,gamma=F)
data.fit2
plot(data.fit2)
data.f=forecast(data.fit2,h=5)
data.f
plot(data.f)
#========================================
#
#4.6习题-6
#
#========================================
library(tseries)
par(mfrow=c(1,2))
p=read.table('习题4.6数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(p)))
x=x[1:
(length(x)-4)]
data=ts(x,start=1948)
plot(data)
#二次拟合
#lm
t1=c(1:
length(x))
t2=t1^2
data.fit1=lm(data~t1+t2)
summary(data.fit1)
#nls
data.fit2=nls(x~a+b*t1+c*t1^2,start=list(a=1,b=1,c=1))
summary(data.fit2)
y=predict(data.fit2)
y=ts(y,start=1948)
plot(data,type='p')
lines(y,col=2,lwd=2)
#========================================
#
#4.6习题-7
#
#========================================
library(tseries)
p=read.table('习题4.7数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(p)))
data=ts(x,start=c(1962,1),frequency=12)
plot(data)
#该时序图具有季节效应
#因素分解
data.fit=decompose(data,type='mult')
data.fit
plot(data.fit)
library(forecast)
#Holt-winters三参数指数平滑
data.fit2=HoltWinters(data)
data.fit2
plot(data.fit2)
data.f=forecast(data.fit2,h=12)
plot(data.f)
data.f
#========================================
#
#4.6习题-8
#
#========================================
library(tseries)
p=read.table('习题4.8数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(p)))
data=x[1:
(length(x)-2)]
data=ts(data,start=c(1980,1),frequency=12)
plot(data)
#该时序图具有季节效应和趋势起伏变动
#因素分解
data.fit=decompose(data,type='mult')
data.fit
plot(data.fit)
library(forecast)
#Holt-winters三参数指数平滑
data.fit2=HoltWinters(data)
data.fit2
plot(data.fit2)
data.f=forecast(data.fit2,h=12)
plot(data.f)
data.f
#12期移动平均法预测
data.p=data
for(iinc(1:
24)){
p=sum(data.p[(length(data.p)-11):
length(data.p)])/12
data.p=c(data.p,p)
}
data.p[(length(data.p)-23):
length(data.p)]
第五章非平稳序列的随机分析
#========================================
#
#5.7习题-1
#
#========================================
library(tseries)
p=read.table('习题5.1数据.txt',sep='\t',header=F)
x=as.vector(t(as.matrix(p)))
x=ts(x)
plot(x)
#蕴含显著线性趋势
#一阶差分
x.dif=diff(x)
plot(x.dif)
acf(x.dif)
#0阶截尾
pacf(x.dif)
#拖尾
#ARIMA(0,1,0)
auto.arima(x)
#ARIMA(0,1,0)
x.fit=arima(x,order=c(0,1,1))
x.fit
for(iin1:
2){
print(Box.test(x.fit$residual,lag=6*i))
}
library(zoo)
library(forecast)
x.f=forecast(x.fit,h=1)
x.f
plot(x.f)
#========================================
#
#5.7习题-2
#
#========================================
library(tseries)
p=read.table('习题5.2数据.txt',sep='\t',header=T)
x=as.matrix(p)
x=c(x[,2],x[,4],x[,6])
x=ts(x,start=1949)
plot(x)
#蕴含曲线趋势
#一阶差分
x.dif=diff(x)
plot(x.dif)
#二阶差分
x.dif2=diff(x.dif)
plot(x.dif2)
acf(x.dif2)
#拖尾
pacf(x.dif2)
#3阶截尾
#ARIMA(3,2,0)
auto.arima(x)
#ARIMA(0,2,2)
x.fit=arima(x,order=c(3,2,0))
x.fit
for(iin1:
2){
print(Box.test(x.fit$residual,lag=6*i))
}
library(zoo)
library(forecast)
x.f=forecast(x.fit,h=5)
x.f
plot(x.f)
#========================================
#
#5.7习题-3
#
#========================================
library(tseries)
p=read.table('习题5.3数据.txt',sep='\t',header=T)
x=as.matrix(p)
x=as.numeric(c(x[,2],x[,4],x[,6]))
x=ts(x,start=1973,frequency=12)
plot(x)
#蕴含固定周期趋势
#一阶差分
x.dif=diff(x)
plot(x.dif)
#一阶差分+12步差分
x.dif2=diff(diff(x),12)
plot(x.dif2)
acf(x.dif2)
#拖尾
pacf(x.dif2)
#拖尾
#判断不出来
auto.arima(x)
#ARIMA(0,1,1)(0,1,1)[12]
x.fit=arima(x,order=c(0,1,1),seasonal=list(order=c(0,1,1),period=12))
x.fit
for(iin1:
2){
print(Box.test(x.fit$residual,lag=6*i))
}
#========================================
#
#5.7习题-4
#
#========================================
library(tseries)
p=read.table('习题5.4数据.txt',sep='\t',header=T)
x=as.matrix(p)
x=as.numeric(c(x[,2],x[,4],x[,6]),x[,8])
x=ts(x,start=1750)
plot(x)
#一阶差分
x.dif=diff(x)
plot(x.dif)
acf(x.dif)
#拖尾
pacf(x.dif)
#3阶截尾
#ARIMA(3,1,0)
auto.arima(x)
#ARIMA(0,0,1)withnon-zeromean
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时间 序列 分析 基于 答案