R语言forecast包ggtsdisplay运行报错 单独绘制ACF/PACF正常如何解决
报错原因
forecast包的ggtsdisplay()函数仅兼容基础R的ts类、forecast等传统时间序列对象,你当前使用的aus_airpassengers是tsibble类型(tbl_ts类,fpp3生态的时间序列数据结构),ggtsdisplay()无法识别该结构的变量属性,哪怕数据本身是无重复时间点的单变量序列,也会误判为非单变量时间序列,进而抛出报错。
解决方法
两种可选方案:
- 方案一:将tsibble对象转为传统
ts类后传入ggtsdisplay()
library(forecast) # 提取客运量列转为年度频率的ts类 passenger_ts <- as.ts(aus_airpassengers$Passengers, start = 1970, frequency = 1) ggtsdisplay(passenger_ts)
- 方案二:使用fpp3生态原生工具实现同等可视化效果,无需转换数据格式,适配性更好
library(feasts) library(patchwork) # 绘制时序图 ts_plot <- autoplot(aus_airpassengers, Passengers) + labs(title = "1970-2011年澳大利亚航空客运量", x = "年份", y = "客运量(单位:千人次)") # 绘制ACF图 acf_plot <- aus_airpassengers %>% ACF(Passengers) %>% autoplot() + labs(title = NULL) # 绘制PACF图 pacf_plot <- aus_airpassengers %>% PACF(Passengers) %>% autoplot() + labs(title = NULL) # 按上下布局拼接三张图,和ggtsdisplay输出布局完全一致 ts_plot / acf_plot / pacf_plot
内容的提问来源于stack exchange,提问作者hachiko
相关产品推荐
相关产品推荐

