【问题标题】:Extract AICs from an ARIMA using a nested loop使用嵌套循环从 ARIMA 中提取 AIC
【发布时间】:2020-05-18 23:19:34
【问题描述】:

我正在尝试从具有不同的 ARIMA 估计中提取 AIC 和 BIC p & q 的组合 (p=0,1,2,3 和 q=0,1.2,3)。我曾尝试使用以下代码,但未成功。

code: storage1 <- numeric(16) for (p in 0:3){

>     for (q in 0:3){
>  
>     storage1[p]  <- arima(x,order=c(p,0,q), method="ML")} } storage1$aic

【问题讨论】:

    标签: r for-loop time-series arima


    【解决方案1】:

    一种方法是使用expand.grid() 获取pq 的所有组合,并将它们应用于您的arima 模型,即

    apply(expand.grid(p, q), 1, function(i) arima(d1$cnt, order = c(i[1], 0, i[2]), method = "ML")$aic)
    
    #[1] 47222.43 38589.14 36935.33 36118.44 42569.73 35183.35 35141.13 35143.02 39448.38 35142.96 35142.58 35142.60
    

    【讨论】:

    • 谢谢。我得到了不同的估计,但我也收到了一条警告消息:
    • 谢谢。代码给了我对模型的不同估计,但我也收到一条警告消息:1: In arima(data$x, order = c(i[1], 0, i[2]), method = "ML") : possible convergence problem: optim gave code = 1 这有什么具体原因吗?
    • 警告与解决方案无关。说optimcode = 1 意味着达到了最大迭代次数。所以你需要改变它。 arima 中有一个名为 optim.control 的参数,你应该玩弄它
    猜你喜欢
    • 1970-01-01
    • 2018-02-18
    • 2020-09-27
    • 2015-04-22
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    相关资源
    最近更新 更多