【问题标题】:How to iteratively plot auto.arima forecasts using ggplot如何使用 ggplot 迭代地绘制 auto.arima 预测
【发布时间】:2018-07-15 07:12:50
【问题描述】:

我有以下数据:

df

   repo revrepo bankrate  CRR Callrate
1  9.00    6.75      7.0 8.00     7.49
2  8.75    6.50      7.0 7.50     8.03
3  8.50    6.50      7.0 7.50     7.24
4  8.50    6.50      7.0 7.50     7.19
5  8.50    6.50      7.0 7.50     6.94
6  8.50    6.50      7.0 7.50     7.30
7  8.50    6.50      6.5 7.50     7.40
8  8.50    6.50      6.5 5.75     6.97
9  8.50    6.50      6.5 5.50     7.08
10 8.50    6.50      6.5 5.50     6.63
11 8.50    6.50      6.5 5.50     6.73
12 8.00    6.00      6.5 5.50     6.97
13 8.00    6.00      6.5 5.50     6.58
14 8.00    6.00      6.5 5.50     6.90
15 8.00    5.75      6.5 5.00     6.04

我正在迭代地绘制 ts 如下:

y=df
colnames <- dimnames(y)[[2]]

(plots<-lapply(df,function(x) autoplot(fit<-forecast(auto.arima(ts(x,start=c(2001,4),end = c(2002,6),frequency = 12))))+labs(x = 'Time', y = paste(colnames[i])) + ggtitle(paste(colnames[i],'over Time'))+  theme(plot.title = element_text(hjust = 0.5)) +
yaztheme::theme_yaz() ))

我没有得到正确的情节标题。显示其中一个情节以供参考:

是否有更好的方法来进行迭代时间序列预测和预测绘制。

【问题讨论】:

    标签: r ggplot2 time-series forecasting


    【解决方案1】:

    如果我们需要对应的列名,遍历列的序列

    lst <- lapply(seq_along(df),function(i) {
    autoplot(fit<-forecast(auto.arima(ts(df[[i]],start=c(2001,4),
                    end = c(2002,6),frequency = 12))))+
             labs(x = 'Time', y = paste(colnames[i])) +
             ggtitle(paste(colnames[i],'over Time'))+ 
             theme(plot.title = element_text(hjust = 0.5))
      } 
    )
    
    lst[[5]]
    


    或与for 循环相同

    lst <- vector('list', length(df))
    for(i in seq_along(df)) {
      lst[[i]] <- autoplot(forecast(auto.arima(ts(df[[i]],
                 start=c(2001,4),end = c(2002,6),frequency = 12))))+
               labs(x = 'Time', y = paste(colnames[i])) +
               gtitle(paste(colnames[i],'over Time'))+ 
               theme(plot.title = element_text(hjust = 0.5))
    
    }
    

    【讨论】:

    • 太棒了,顺便说一句,你能纠正 ggtitle synatx(错误地写成 gtitle)
    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2013-04-09
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多