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)
经常用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)