找回密码
 立即注册
查看: 2800|回复: 1

R与时间序列分析

[复制链接]
发表于 2016-4-16 10:57:21 | 显示全部楼层 |阅读模式
这段时间学到的关于时间序列分析的笔记
回复

使用道具 举报

 楼主| 发表于 2016-4-16 10:58:08 | 显示全部楼层
#模拟数据——平稳时间序列(白噪声)
set.seed(123)
yt=rnorm(50,0.1)
plot(yt,type'b');abline(h=0)

#定义滞后函数L考察其相关性
L_<-function(x,lag=1,na.is=TRUE){
if(na.is)c(rep(NA,lag),x[1:length(x)-lag])
else x[1length(x)-lag)]
}#滞后算子函数
yt_1=L_(yt,na.is=T)#一阶滞后
plot(yt,yt_1)abline(yt~yt_1)

Box.test(yt)#Box.test(yt,type='Box-Pierce')(Box-Pierce检验)
Box.test(yt,type='Ljung-Box')#用于检验学列yt是否有自相关性别

#模拟AR(1)
set.seed(1234)
n=50;
y1=rep(0,n);
for(t in 2:n){
y1[t]=0.8*y1[t-1]+rnorm(1)
}
plot(y1,type='o')#散点图
acf(y1)#自相关图

acf(y1)$ac[1:9]#为方便显示竟列出前九个自相关系数

ar(y1,method="yule-walker")#AR模型的yule-walker估计
ar(y1,method="ols")#AR模型的的最小二乘)


lm4.1=lm(y1~L_(y1));lm4.1
summary(lm4.1)#用lm函数求解AR(1)模型

#模拟AR(2)模型
set.seed(123)
y2=arima.sim(n=100,list(ar=c(0.7,-0.5)))#模拟各种时间序列的函数arima.sim和拟合时间序列模型的函数arima
plot(y2,type='o')
pacf(y2)
pacf(y2)$ac[1:5]#前五个偏自相关系数
arima(y2,order=c(2,0,0))#包含常数项
arima(y2,order=c(2,0,0),include.mean=F)#不包含常数项

#模拟MA(1)
set.seed(1234)
y3=arima.sim(n=1000,list(ma=0.8))
plot(y3,type='o')
acf(y3)$ac[1:5]

MA1=arima(y3,order=c(0,0,1),include.mean=F)

#模拟ARMA模型
set.seed(123456)
y4=arima.sim(model=list(ar=0.8,ma=0.6),n=100)#y(t)=0.8*y(t-1)+u(t)-0.6*u(t-1)
plot(y4,type='o')
acf(y4)
pacf(y4)
#模拟非平稳时间序列
set.seed(12345)
ut=rnorm(500,0,1.5)
xt=cumsum(ut)
plot(xt,type='b');
abline(h=o)

#差分函数
x=1:9;
x
diff(x)#diff(x,1)
diff(x,d=2)
diff(x,d=1,lag=2)
plot(diff(xt),type='b')
abline(h=0)

#模拟ARIMA(1,1,0)模型
set.seed(123456)
A11=arima.sim(n=200,list(order=c(1,1,0),ar=0.8))
plot(A11)
arima(A11,order=c(1,1,0))

#模拟ARIMA(2,1,1)
set.seed(123456)
A111=arima.sim(n=200,list(order=c(2,1,1),ar=c(0.8,-0.5),ma=0.7));
plot(A111)
plot(diff(A111))
arima(A111,order=c(2,1,1))
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-23 10:53 , Processed in 0.020460 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表