在 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)
我想回答以下问题,我知道我可以使用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)