1. Load quarterly data from url:

ts <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/M3_quarterly_TSTS.csv")
head(ts, 10)
##    series_id category   value timestamp
## 1         Q1    MICRO 3142.63   1984 Q1
## 2         Q1    MICRO 3190.75   1984 Q2
## 3         Q1    MICRO 3178.69   1984 Q3
## 4         Q1    MICRO 3170.94   1984 Q4
## 5         Q1    MICRO 3124.38   1985 Q1
## 6         Q1    MICRO 3170.00   1985 Q2
## 7         Q1    MICRO 3200.94   1985 Q3
## 8         Q1    MICRO 3176.75   1985 Q4
## 9         Q1    MICRO 3170.44   1986 Q1
## 10        Q1    MICRO 3268.67   1986 Q2
fs <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/M3_quarterly_FTS.csv")
head(fs, 10)
##    series_id category method forecast horizon timestamp origin_timestamp
## 1         Q1    MICRO NAIVE2  5511.55       1   1993.00          1992.75
## 2         Q1    MICRO NAIVE2  5511.55       2   1993.25          1992.75
## 3         Q1    MICRO NAIVE2  5511.55       3   1993.50          1992.75
## 4         Q1    MICRO NAIVE2  5511.55       4   1993.75          1992.75
## 5         Q1    MICRO NAIVE2  5511.55       5   1994.00          1992.75
## 6         Q1    MICRO NAIVE2  5511.55       6   1994.25          1992.75
## 7         Q1    MICRO NAIVE2  5511.55       7   1994.50          1992.75
## 8         Q1    MICRO NAIVE2  5511.55       8   1994.75          1992.75
## 9         Q1    MICRO SINGLE  5511.55       1   1993.00          1992.75
## 10        Q1    MICRO SINGLE  5511.55       2   1993.25          1992.75

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

library(zoo)
ts$timestamp_dbo <- as.yearqtr(ts$timestamp)
fs$timestamp_dbo <- as.yearqtr(fs$timestamp)
head(ts)
##   series_id category   value timestamp timestamp_dbo
## 1        Q1    MICRO 3142.63   1984 Q1       1984 Q1
## 2        Q1    MICRO 3190.75   1984 Q2       1984 Q2
## 3        Q1    MICRO 3178.69   1984 Q3       1984 Q3
## 4        Q1    MICRO 3170.94   1984 Q4       1984 Q4
## 5        Q1    MICRO 3124.38   1985 Q1       1985 Q1
## 6        Q1    MICRO 3170.00   1985 Q2       1985 Q2
head(fs)
##   series_id category method forecast horizon timestamp origin_timestamp
## 1        Q1    MICRO NAIVE2  5511.55       1   1993.00          1992.75
## 2        Q1    MICRO NAIVE2  5511.55       2   1993.25          1992.75
## 3        Q1    MICRO NAIVE2  5511.55       3   1993.50          1992.75
## 4        Q1    MICRO NAIVE2  5511.55       4   1993.75          1992.75
## 5        Q1    MICRO NAIVE2  5511.55       5   1994.00          1992.75
## 6        Q1    MICRO NAIVE2  5511.55       6   1994.25          1992.75
##   timestamp_dbo
## 1       1993 Q1
## 2       1993 Q2
## 3       1993 Q3
## 4       1993 Q4
## 5       1994 Q1
## 6       1994 Q2

3. plotFixedOrigin():

  • не задаваем аргументы fs - FTS schema, origin - forecast origin, and m-forecast method то функция plotFixedOrigin() строит график выбранного временного ряда
library(forvision)
plotFixedOrigin(ts = ts, id ="Q1")
  • задаваем аргументы fs - FTS schema, origin - forecast origin, and m-forecast method:
plotFixedOrigin(ts = ts, fs = fs,  id ="Q1", origin =1992.75, m = c("DAMPEN", "NAIVE2", "HOLT"))

4. plotFanchart():

E нас нету данных с PIs для квартальных поэтому используем yearly data и преобразуем timestamp в виде quarterly data для иллюстрации:

  • Load yearly data with PIs:
ts1 <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/M3_yearly_PIs_TSTS.csv")
fs1 <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/M3_yearly_PIs_FTS.csv")
head(ts1)
##   series_id timestamp   value
## 1        Y1      1975  940.66
## 2        Y1      1976 1084.86
## 3        Y1      1977 1244.98
## 4        Y1      1978 1445.02
## 5        Y1      1979 1683.17
## 6        Y1      1980 2038.15
head(fs1)
##   series_id method timestamp origin_timestamp forecast     Lo95      Hi95
## 1        Y1  ARIMA      1989             1988  5486.10 5298.756  5673.444
## 2        Y1  ARIMA      1990             1988  6035.21 5616.295  6454.125
## 3        Y1  ARIMA      1991             1988  6584.32 5883.342  7285.298
## 4        Y1  ARIMA      1992             1988  7133.43 6107.303  8159.557
## 5        Y1  ARIMA      1993             1988  7682.54 6293.158  9071.922
## 6        Y1  ARIMA      1994             1988  8231.65 6444.500 10018.800
##   horizon
## 1       1
## 2       2
## 3       3
## 4       4
## 5       5
## 6       6
  • добавление колонки timestamp_dbo и преобразование в quaterly data (для колонки timestamp_dbo):
library(zoo)
ts1$timestamp_dbo <- as.yearqtr(ts1$timestamp)
fs1$timestamp_dbo <- as.yearqtr(fs1$timestamp)
head(ts1)
##   series_id timestamp   value timestamp_dbo
## 1        Y1      1975  940.66       1975 Q1
## 2        Y1      1976 1084.86       1976 Q1
## 3        Y1      1977 1244.98       1977 Q1
## 4        Y1      1978 1445.02       1978 Q1
## 5        Y1      1979 1683.17       1979 Q1
## 6        Y1      1980 2038.15       1980 Q1
head(fs1)
##   series_id method timestamp origin_timestamp forecast     Lo95      Hi95
## 1        Y1  ARIMA      1989             1988  5486.10 5298.756  5673.444
## 2        Y1  ARIMA      1990             1988  6035.21 5616.295  6454.125
## 3        Y1  ARIMA      1991             1988  6584.32 5883.342  7285.298
## 4        Y1  ARIMA      1992             1988  7133.43 6107.303  8159.557
## 5        Y1  ARIMA      1993             1988  7682.54 6293.158  9071.922
## 6        Y1  ARIMA      1994             1988  8231.65 6444.500 10018.800
##   horizon timestamp_dbo
## 1       1       1989 Q1
## 2       2       1990 Q1
## 3       3       1991 Q1
## 4       4       1992 Q1
## 5       5       1993 Q1
## 6       6       1994 Q1
  • Построение графика:
library(forvision)
plotFanChart(ts = ts1, fs = fs1, id ="Y1", origin = 1988, m = "ARIMA")

5. plotPRD():

library(forvision)
# Create afts without from tsts and fts schema 
afts <- createAFTS(ts1, fs1, na = FALSE)
head(afts)
##   series_id timestamp   value timestamp_dbo.x method origin_timestamp
## 1        Y1      1989 5379.75         1989 Q1  ARIMA             1988
## 2        Y1      1990 6158.68         1990 Q1  ARIMA             1988
## 3        Y1      1991 6876.58         1991 Q1  ARIMA             1988
## 4        Y1      1992 7851.91         1992 Q1  ARIMA             1988
## 5        Y1      1993 8407.84         1993 Q1  ARIMA             1988
## 6        Y1      1994 9156.01         1994 Q1  ARIMA             1988
##   forecast     Lo95      Hi95 horizon timestamp_dbo.y
## 1  5486.10 5298.756  5673.444       1         1989 Q1
## 2  6035.21 5616.295  6454.125       2         1990 Q1
## 3  6584.32 5883.342  7285.298       3         1991 Q1
## 4  7133.43 6107.303  8159.557       4         1992 Q1
## 5  7682.54 6293.158  9071.922       5         1993 Q1
## 6  8231.65 6444.500 10018.800       6         1994 Q1
library(forvision)
plotPRD(afts)