用r语言模拟ar序列,ma序列,arma序列
生成一个ar序列
x1<-arima.sim(n=1000,list(ar=0.8))
或者用filter函数
e<-rnorm(1000,0,1)
x2<-filter(e,filter = 0.8,method = "recursive")
method:指定拟合的是AR模型还是MA模型。
method="recursive"为AR模型; methid="convolution"为MA模型。
ts.plot(x1)
acf(x1)
pacf(x1)
再举个ar序列的例子
x2<-arima.sim(n=1000,list(ar=c(-1,-0.5)))
或者
x2<-filter(e,filter = c(-1,-0.5),method = "recursive")
只要把系数放在c()里即可
生成ma序列
x1<-arima.sim(n=1000,list(ma=-2))
x2<-arima.sim(n=1000,list(ma=-0.5))
x3<-arima.sim(n=1000,list(ma=c(-4/5,16/25)))
x4<-arima.sim(n=1000,list(ma=c(-5/4,25/16)))
acf(x1)
acf(x2)
acf(x3)
acf(x4)
如果用filter函数只需改变method参数,和ar序列同理
生成arma序列
x<-arima.sim(n=1000,list(ar=0.5,ma=-0.8))
用循环写
x<-rnorm(1000)
y<-vector(length = 2)
y[1]=x[1]
for(i in 2:1000)
{
y[i]=0.5*y[i-1]+x[i]-0.8*x[i-1]
}
y