在 R 中模拟时间序列模型

Simulating Time Series Model in R

我想回答以下问题,我知道我可以使用arima.sim函数但我不确定如何模拟模型问:

我想模拟以下内容:

yt =α+βt+φyt−1 +εt, εt ∼IIDN(0,1)

当:alpha=1,beta=0 且 theta=0.8

在每次模拟之前,我们应该将种子设置为 100,000。假设 y0=0 的起始值并获得 500 个观测值。我尝试了以下方法,但它似乎不起作用:

set.seed(seed = 100000)
e <- rnorm(500)
m1 <- arima.sim(model = list(c(ma=0.8,alpha=1,beta=0)),n=500)

我必须为 4 个不同的 beta、theta 和 alpha 值模拟 4 个不同的模型。有什么建议吗?

提前致谢。

1。 (α,β,φ) = (1,0,0.8)

set.seed(seed = 1232020)
e <- rnorm(500,mean=0,sd=1)

alpha <- 1
beta <- 0
theta <- 0.8
m_1 <- 0
for(i in 2:length(e)){
  m_1[i] <- alpha+beta*i+theta*m_1[i-1]+e[i]
}

认为这应该可以解决问题:)

由于您在尝试中使用了 arima.sim,这里有一个 arima.sim 选项:

set.seed(100000)
t <- 1:500
alpha <- 1
beta <- 0
theta <- 0.8
ts <- alpha + beta * t + arima.sim(list(ma = theta), n = length(t))

beta = 0起,不存在确定性时间相关趋势,过程对应非零均值的MA(1)过程alpha

这种分解为确定性和随机性的项对应于将方程重写为

使用 MA(1) 过程

其中 ε 是 i.i.d。 N(0, 1) 个残差。

我们可以将数据可视化

library(forecast)
autoplot(ts)