1. Load example data from url:

ts <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/example1_TSTS.csv")
head(ts, 10)
##    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
## 7         Y1 6158.68      1990
## 8         Y1 6876.58      1991
## 9         Y2 5389.80      1984
## 10        Y2 5384.40      1985
fs <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/example1_FTS.csv")
head(fs, 18)
##    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      A      1990             1989  5946.48       1 6122.399
## 5         Y1      A      1991             1989  6145.48       2 6122.399
## 6         Y1      A      1991             1990  6445.48       1 6122.399
## 7         Y1      B      1989             1988  5473.87       1 5250.789
## 8         Y1      B      1990             1988  6010.43       2 5787.349
## 9         Y1      B      1991             1988  6546.63       3 6323.549
## 10        Y1      B      1990             1989  5373.87       1 5250.789
## 11        Y1      B      1991             1989  6113.87       2 5250.789
## 12        Y1      B      1991             1990  6473.87       1 5250.789
## 13        Y1      C      1989             1988  5406.43       1 5183.349
## 14        Y1      C      1990             1988  5875.96       2 5652.879
## 15        Y1      C      1991             1988  6345.48       3 6122.399
## 16        Y1      C      1990             1989  5806.43       1 5183.349
## 17        Y1      C      1991             1989  6106.43       2 5183.349
## 18        Y1      C      1991             1990  6406.43       1 5183.349
##        hi90
## 1  5629.511
## 2  6099.041
## 3  6568.561
## 4  6568.561
## 5  6568.561
## 6  6568.561
## 7  5696.951
## 8  6233.511
## 9  6769.711
## 10 5696.951
## 11 5696.951
## 12 5696.951
## 13 5629.511
## 14 6099.041
## 15 6568.561
## 16 5629.511
## 17 5629.511
## 18 5629.511

2. Добавление и преобразование колонки timestamp_dbo в виде date-based object:

library(zoo)
ts$timestamp_dbo <- as.yearmon(ts$timestamp, format = '%Y')
fs$timestamp_dbo <- as.yearmon(fs$timestamp, '%Y')
head(ts)
##   series_id   value timestamp timestamp_dbo
## 1        Y1 3103.96      1984      Jan 1984
## 2        Y1 3360.27      1985      Jan 1985
## 3        Y1 3807.63      1986      Jan 1986
## 4        Y1 4387.88      1987      Jan 1987
## 5        Y1 4936.99      1988      Jan 1988
## 6        Y1 5379.75      1989      Jan 1989
head(fs)
##   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      A      1990             1989  5946.48       1 6122.399
## 5        Y1      A      1991             1989  6145.48       2 6122.399
## 6        Y1      A      1991             1990  6445.48       1 6122.399
##       hi90 timestamp_dbo
## 1 5629.511      Jan 1989
## 2 6099.041      Jan 1990
## 3 6568.561      Jan 1991
## 4 6568.561      Jan 1990
## 5 6568.561      Jan 1991
## 6 6568.561      Jan 1991

3. plotFixedHorizon():

  • не задаются аргументы fs - FTS schema, horizon - forecast horizon, and m-forecast method то функция plotFixedHorizon() строит график выбранного временного ряда
library(forvision)
plotFixedHorizon(ts = ts, id ="Y1")
  • задаются аргументы fs - FTS schema, horizon - forecast hỏrizon and m-forecast method:
library(forvision)
plotFixedHorizon(ts = ts, fs = fs,  id ="Y1", h = 1, m = "A")
library(forvision)
plotFixedHorizon(ts = ts, fs = fs,  id ="Y1", h = 1, m = c("A", "C"))
library(forvision)
plotFixedHorizon(ts = ts, fs = fs,  id ="Y1", h = 2, m = c("A", "B"))

4 Дополнить этот пример таблицами значений, по которым построены графики:

  • сформировать переменную af=createAFTS(ts,fs)
ts <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/example1_TSTS.csv")
fs <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/example1_FTS.csv")
library(forvision)
af <- createAFTS(ts, fs)
head(af)
##   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
##       lo90     hi90
## 1       NA       NA
## 2       NA       NA
## 3       NA       NA
## 4       NA       NA
## 5       NA       NA
## 6 5183.349 5629.511
  • subset data
subset(af,series_id=="Y1" & horizon==1)
##    series_id   value timestamp method origin_timestamp forecast horizon
## 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
## 10        Y1 6158.68      1990      A             1989  5946.48       1
## 12        Y1 6158.68      1990      B             1989  5373.87       1
## 14        Y1 6158.68      1990      C             1989  5806.43       1
## 17        Y1 6876.58      1991      A             1990  6445.48       1
## 20        Y1 6876.58      1991      B             1990  6473.87       1
## 23        Y1 6876.58      1991      C             1990  6406.43       1
##        lo90     hi90
## 6  5183.349 5629.511
## 7  5250.789 5696.951
## 8  5183.349 5629.511
## 10 6122.399 6568.561
## 12 5250.789 5696.951
## 14 5183.349 5629.511
## 17 6122.399 6568.561
## 20 5250.789 5696.951
## 23 5183.349 5629.511
subset(af,series_id=="Y1" & horizon==2)
##    series_id   value timestamp method origin_timestamp forecast horizon
## 9         Y1 6158.68      1990      A             1988  5875.96       2
## 11        Y1 6158.68      1990      B             1988  6010.43       2
## 13        Y1 6158.68      1990      C             1988  5875.96       2
## 16        Y1 6876.58      1991      A             1989  6145.48       2
## 19        Y1 6876.58      1991      B             1989  6113.87       2
## 22        Y1 6876.58      1991      C             1989  6106.43       2
##        lo90     hi90
## 9  5652.879 6099.041
## 11 5787.349 6233.511
## 13 5652.879 6099.041
## 16 6122.399 6568.561
## 19 5250.789 5696.951
## 22 5183.349 5629.511