R 计算多少次 `auto.arima()` 确认 `arima.sim()` 为真

R Count How Many Time `auto.arima()` Confirm`arima.sim()` to be True

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

我进一步调查以了解 arima.sim() 在模拟 ARIMA 模型时如何公平,方法是使用相同的 arima.sim() 模拟相同的 ARIMA 模型详细说明了很多次,然后用 auto.arima() .

检查每一个
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)
}

十 (10) 次 loop

如果我们需要在 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)