用r语言模拟ar序列,ma序列,arma序列

生成一个ar序列

r语言arima函数参数 r语言中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序列的例子
r语言arima函数参数 r语言中ar函数_r语言_02

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序列

r语言arima函数参数 r语言中ar函数_数据分析_03

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