TSTS схема:

library(forvision)
head(example1_TSTS)
##   series_id   value timestamp
## 1        Y1 3103.96      1984
## 2        Y1 3360.27      1985
## 3        Y1 3807.63      1986
## 4        Y1 4387.88      1987
## 5        Y1 4936.99      1988
## 6        Y1 5379.75      1989

FTS схема:

library(forvision)
head(example1_FTS)
##   series_id method timestamp origin_timestamp forecast horizon     Lo90
## 1        Y1      A      1989             1988  5406.43       1 5183.349
## 2        Y1      A      1990             1988  5875.96       2 5652.879
## 3        Y1      A      1991             1988  6345.48       3 6122.399
## 4        Y1      B      1989             1988  5473.87       1 5250.789
## 5        Y1      B      1990             1988  6010.43       2 5787.349
## 6        Y1      B      1991             1988  6546.63       3 6323.549
##       Hi90
## 1 5629.511
## 2 6099.041
## 3 6568.561
## 4 5696.951
## 5 6233.511
## 6 6769.711

Условия для создания AFTS схемы: В TSTS и FTS обязательно содержатся 2 колонки series_id и timestamp

1. По умолчанию елси rows in tsts with no match in fts will have NA values in the afts

library(forvision)
afts1 <- create_afts(tsts = example1_TSTS, fts = example1_FTS)
head(afts1, 12)
##    series_id   value timestamp method origin_timestamp forecast horizon
## 1         Y1 3103.96      1984   <NA>               NA       NA      NA
## 2         Y1 3360.27      1985   <NA>               NA       NA      NA
## 3         Y1 3807.63      1986   <NA>               NA       NA      NA
## 4         Y1 4387.88      1987   <NA>               NA       NA      NA
## 5         Y1 4936.99      1988   <NA>               NA       NA      NA
## 6         Y1 5379.75      1989      A             1988  5406.43       1
## 7         Y1 5379.75      1989      B             1988  5473.87       1
## 8         Y1 5379.75      1989      C             1988  5406.43       1
## 9         Y1 6158.68      1990      A             1988  5875.96       2
## 10        Y1 6158.68      1990      B             1988  6010.43       2
## 11        Y1 6158.68      1990      C             1988  5875.96       2
## 12        Y1 6876.58      1991      A             1988  6345.48       3
##        Lo90     Hi90
## 1        NA       NA
## 2        NA       NA
## 3        NA       NA
## 4        NA       NA
## 5        NA       NA
## 6  5183.349 5629.511
## 7  5250.789 5696.951
## 8  5183.349 5629.511
## 9  5652.879 6099.041
## 10 5787.349 6233.511
## 11 5652.879 6099.041
## 12 6122.399 6568.561

Этот формат исползуется для fanchart И некоторых metrics (MASE,..), так как там нужны все точи данных из временного ряда

2. Без NA c использованием option na = FALSE (All rows from tsts where there are matching values in fts, and all columns from tsts and fts)

library(forvision)
afts2 <- create_afts(tsts = example1_TSTS, fts = example1_FTS, na = FALSE)
head(afts2, 12)
##    series_id   value timestamp method origin_timestamp forecast horizon
## 1         Y1 5379.75      1989      A             1988  5406.43       1
## 2         Y1 5379.75      1989      B             1988  5473.87       1
## 3         Y1 5379.75      1989      C             1988  5406.43       1
## 4         Y1 6158.68      1990      A             1988  5875.96       2
## 5         Y1 6158.68      1990      B             1988  6010.43       2
## 6         Y1 6158.68      1990      C             1988  5875.96       2
## 7         Y1 6876.58      1991      A             1988  6345.48       3
## 8         Y1 6876.58      1991      B             1988  6546.63       3
## 9         Y1 6876.58      1991      C             1988  6345.48       3
## 10        Y2 4793.20      1989      A             1988  4142.60       1
## 11        Y2 4793.20      1989      B             1988  4275.16       1
## 12        Y2 4793.20      1989      C             1988  4142.60       1
##        Lo90     Hi90
## 1  5183.349 5629.511
## 2  5250.789 5696.951
## 3  5183.349 5629.511
## 4  5652.879 6099.041
## 5  5787.349 6233.511
## 6  5652.879 6099.041
## 7  6122.399 6568.561
## 8  6323.549 6769.711
## 9  6122.399 6568.561
## 10 3919.519 4365.681
## 11 4052.079 4498.241
## 12 3919.519 4365.681

Этот формат исползуется для plotPRD and other metrics - Tут надо менять аргумент actual на value для всех функций

Cхемa работы для проекта такая:

У нас еть TSTS and FTS сохраняются в csv:

  1. Load data in R
TSTS <- read_csv(TSTS)
FTS <- read_csv(FTS)
  1. Plot Fanchart and calculate MASE,…:
afts1 <- create_afts(TSTS, FTS)
fanchart(afts1)
calculateMASEs(afts1)
  1. plotPRD and other metrics:
afts2 <- create_afts(TSTS, FTS, na = FALSE)
plotPRD(afts2)
calculateMAEs(afts2)