【发布时间】:2020-12-02 07:40:05
【问题描述】:
我可以使用以下方法在 R 中模拟一个 AR(1) 时间序列: arima.sim(list(order = c(1,0,0), ar = 0.8), n=100)
但是如何模拟 R 中的几个独立同分布的 AR(1) 时间序列?
谢谢!
【问题讨论】:
标签: r time-series
我可以使用以下方法在 R 中模拟一个 AR(1) 时间序列: arima.sim(list(order = c(1,0,0), ar = 0.8), n=100)
但是如何模拟 R 中的几个独立同分布的 AR(1) 时间序列?
谢谢!
【问题讨论】:
标签: r time-series
你可以使用replicate(),假设你想复制它10次,你只需要这样做:
replicate(10,arima.sim(list(order = c(1,0,0), ar = 0.8), n=100))
你会得到一个有 10 列和 100 行的矩阵,所以每一列都是一个模拟。
【讨论】:
ts.extend包中的rGARMA函数您可以使用 ts.extend 包从任何固定高斯 ARMA 模型生成随机向量。这个包使用计算的随机向量的自相关矩阵直接从多元正态分布生成随机向量,因此它从精确分布中给出随机向量,并且不需要“老化”迭代。这是一个从 AR(1) 模型生成多个独立时间序列向量的示例。
#Load the package
library(ts.extend)
#Set parameters
AR <- 0.8
m <- 100
#Generate n = 36 random vectors from this model
set.seed(1)
SERIES <- rGARMA(n = 36, m = m, ar = AR, errorvar = 1)
#Plot the series using ggplot2 graphics
library(ggplot2)
plot(SERIES)
【讨论】: