【问题标题】:how to several AR(1) time series which are iid in R如何处理 R 中 iid 的几个 AR(1) 时间序列
【发布时间】: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


    【解决方案1】:

    你可以使用replicate(),假设你想复制它10次,你只需要这样做:

    replicate(10,arima.sim(list(order = c(1,0,0), ar = 0.8), n=100))
    

    你会得到一个有 10 列和 100 行的矩阵,所以每一列都是一个模拟。

    【讨论】:

    • 是的,因为每次复制都不依赖于之前的模拟
    【解决方案2】:

    使用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)
    

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 2018-09-23
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 2012-07-01
      • 2012-02-29
      • 2019-04-13
      • 2016-08-16
      相关资源
      最近更新 更多