如何提取auto.arima的预测时间序列的值

机器算法验证 预测 有马
2022-03-27 12:00:27

我实际上正在使用来自包预测的 auto.arima 对时间序列进行建模。但是我遇到了一些关于提取 Lo 80、Hi 80、Lo 95、Hi 95 值的问题。我已经使用函数 csv 检索到 Excel 数据,但它太长了,并且存在一些丢失数据的风险。我只用函数 AA11a[["mean"]] 检索了平均值或点预测,正如您在 R 中的代码中看到的那样

a<-ts(AA,start=1921,end=2009,frequency=1)
fit11a<-auto.arima(b,allowdrift=TRUE)
AA11a<-forecast(fit11a,50)
plot(AA11a)
plot(AA11a[["mean"]])

我想问我如何单独提取Lo 80,Hi 80,Lo 95,Hi 95?我试过这个代码AA11afcstAA[,1]

但它不起作用并告诉我:Null

另一种选择是将输出 AA11a 发送到 excel 并找到奇异变量,但在探索该路径之前,我会询问是否有人知道如何提取我上面引用的 R 代码中的不同值。谢谢

2个回答

你没有提供你的数据。所以我猜你在找什么:我想你想得到这样的东西:

> library(forecast)
> fit=Arima(WWWusage,c(3,1,0))
> AA11a<-forecast(fit)
> AA11a$lower
               80%      95%
     [1,] 215.7393 213.6634
     [2,] 209.9265 205.0016
     [3,] 203.8380 196.1947
     [4,] 198.3212 188.2489
     [5,] 193.2807 180.8498
     [6,] 188.3324 173.4858
     [7,] 183.3651 166.0860
     [8,] 178.5027 158.8474
     [9,] 173.8431 151.8879
    [10,] 169.3780 145.1874
    > AA11a$upper
           80%      95%
 [1,] 223.5823 225.6582
 [2,] 228.5332 233.4581
 [3,] 232.7151 240.3585
 [4,] 236.3756 246.4479
 [5,] 240.2458 252.6768
 [6,] 244.4246 259.2713
 [7,] 248.6473 265.9264
 [
 [9,] 256.7919 278.7471
[10,] 260.7719 284.9625
> AA11a$upper[1,2]
         95% 
    225.6582 
> AA11a$lower[,2]
 [1] 213.6634 205.0016 196.1947 188.2489 180.8498 173.4858 166.0860 158.8474
 [9] 151.8879 145.1874
> 

要将预测区间的平均值提取为数字向量,请使用:

> as.numeric(AA11a$mean)
 [1] 219.6608 219.2299 218.2766 217.3484 216.7633 216.3785 216.0062 215.6326 215.3175
[10] 215.0749

均值本身就是一个ts

> class(AA11a$mean)
[1] "ts"