|
楼主 |
发表于 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)) |
|