我可以使用以下方法模拟R中的一个AR(1)时间序列: arima.sim(list(order = c(1,0,0),ar = 0.8),n = 100)
但是我怎样才能模拟R?中的几个AR(1)时间序列?
谢谢!
答案 0 :(得分:2)
你可以使用replicate(),让我们说要复制它10次,你只需要这样做:
replicate(10,arima.sim(list(order = c(1,0,0), ar = 0.8), n=100))
你将获得一个包含10列和100行的矩阵,因此每列都是一个模拟。
答案 1 :(得分:0)
rGARMA
包中的ts.extend
函数您可以使用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)