在 R 中制作来自不同来源的预测图?

问题描述 投票:0回答:1

我使用滚动技术预测了数据。现在我想将数据绘制成这样:

https://onlinelibrary.wiley.com/cms/asset/71365da7-211e-4247-a524-f9858fc24ec1/mfig001.jpg

这是一个经典的预测图,其中预测序列从不同的来源开始。我怎样才能在 R 中以简单的方式做到这一点?是否可以在系列的左侧或上方添加类似“NA”的值?

我的意思是,我有一个数据框,在第 1 行中我有从原点 1 开始的 8 个周期的预测。 在第 2 行中,我从原点 2 开始预测未来 8 个周期。我认为,如果我在第二行左侧添加 1 个 NA 值,在第三行左侧添加 2 个 NA 值,依此类推,然后绘制它,它应该起作用吗?但是如何通过循环为所有行添加 NA 值呢?还有其他方法可以实现这样的图吗?

感谢您的灵感。

我正在寻求有关如何以方便的方式实现这一点的想法,因为可能有人在我之前就已经做到了,而我无法在网上找到此示例代码。

plot forecasting
1个回答
0
投票

tidyverse 非常适合此类事情:

library(tidyverse)

# Synthetic data frame
set.seed(1)
df <- matrix(runif(32), nrow = 4) |> 
  as.data.frame()

# Wrangle data into better form for analysis
df |> 
  mutate(origin = row_number()) |> 
  pivot_longer(-origin, names_to = "horizon", values_to = "forecast") |>
  mutate(
    horizon = parse_integer(str_remove(horizon, "V")),
    time = origin + horizon - 1,
    origin = as.factor(origin)
  ) |> 
  as_tibble() |> 
  ggplot(aes(x = time, y = forecast, col = origin)) +
  geom_line()

创建于 2024-01-18,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.