【问题标题】:R Count How Many Time `auto.arima()` Confirm`arima.sim()` to be TrueR计数多少次`auto.arima()`确认`arima.sim()`为真
【发布时间】:2020-06-27 01:26:59
【问题描述】:

我经常使用arima.sim()函数来模拟ARIMA模型,后来通过auto.arima()函数发现模拟的ARIMA模型和我在arima.sim()函数中指定的不一样。

我进一步调查以了解arima.sim() 在模拟ARIMA 模型方面的表现如何,通过模拟相同的ARIMA 模型和相同的arima.sim() 详细次数,然后使用auto.arima() 检查每个模型here.

result <- matrix(NA_integer_, nrow = 10, ncol = 3)
colnames(result) <- c("p","d","q")
num<-60
set.seed(1234)
for(i in 1:10){
   result[i, ] <- arima.sim(n = num, model=list(ar=0.8, order = c(1, 0, 0))) %>%
     auto.arima() %>%
     arimaorder()
}
result
#p  d   q
#1  0   1
#1  0   0
#1  0   0
#1  0   0
#2  0   1
#1  0   0
#1  0   0
#1  0   0
#1  0   0
#4  0   3

我如何设置一个R 代码来计算有多少 当我跑的时候会出现ARIMA(1, 0, 0)

num<-60
for(i in 1:10){
   ar1 <- arima.sim(n = num, model=list(ar=0.8, order = c(1, 0, 0)))
     auto.arima(ar1)
}

loop 中十 (10) 次

【问题讨论】:

    标签: r count arima


    【解决方案1】:

    如果我们需要在for 循环中获取count

    cnt <- 0
    for(i in 1:10) { 
       ar1 <- arima.sim(n = num, model=list(ar=0.8, order = c(1, 0, 0)))
       ar2 <- auto.arima(ar1)
       if(all(arimaorder(ar2) == c(1, 0, 0))) cnt <- cnt + 1}
    cnt
    #[1] 3
    

    或者如果是基于'result',那么和vector做一个比较,得到rowSums,并检查我们单行是否有3个TRUE,sum

    sum(rowSums(result == c(1, 0, 0)[col(result)]) == 3)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 2015-07-08
      • 2015-08-15
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多