【问题标题】:Plotting each variable in a time series on the same plot在同一图上绘制时间序列中的每个变量
【发布时间】:2021-12-04 22:38:22
【问题描述】:

我正在阅读 Rob J Hyndman 和 George Athanasopoulos 所著的《预测原理与实践》一书。这本书可以在这里找到:https://otexts.com/fpp3/

这本书总体上非常好,但我在第 7 章“多元线性回归”中遇到了一个问题。

图 7.4 显示“1970 年第一季度至 2019 年第二季度期间美国工业生产和个人储蓄的季度百分比变化以及失业率的季度变化”。作为商业专业人士,我看到这是全书最有价值的情节,但没有代码如何重现它。此图的优点是它将每个因素显示为一个单独的图,按季度分组,因此很容易理解每​​个因素对结果的影响。

剧情可以在这个页面找到:https://otexts.com/fpp3/regression-intro.html

这个 R 代码有效,但与书中的图形不太接近,书中没有提供生成情节的代码,而且在解释时间序列预测时,使用书中的图形要好得多客户和经理比此代码:

library(tidyverse)

library(fpp3)

us_change %>%
  autoplot(vars(Consumption, Income, Production, Savings, Unemployment))

Quarterly percentage changes in industrial production and personal savings and quarterly changes in the unemployment rate for the US over the period 1970Q1-2019Q2.

我尝试了许多 autoplot、gg_subseries、gg_tsdisplay 等的变体,但没有什么能接近书中的情节。任何帮助将不胜感激!

【问题讨论】:

    标签: r ggplot2 forecasting


    【解决方案1】:

    ggplot2 通常最流畅地处理“长”数据,可以使用 tidyr::pivot_longer 创建将每个系列的值放在一个公共列中,另一列(此处为“名称”)区分列。

    library(tidyverse)
    us_change %>%
      pivot_longer(-Quarter) %>%
      ggplot(aes(Quarter, value, color = name)) +
      geom_line() +
      facet_wrap(~name, ncol = 1, scales = "free_y") +
      guides(color = "none")
      
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2017-03-21
      相关资源
      最近更新 更多