如何在R

时间:2015-08-13 20:00:27

标签: r time-series

我可以使用以下方法模拟R中的一个AR(1)时间序列: arima.sim(list(order = c(1,0,0),ar = 0.8),n = 100)

但是我怎样才能模拟R?中的几个AR(1)时间序列?

谢谢!

2 个答案:

答案 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)

enter image description here