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
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
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"))
E нас нету данных с PIs для квартальных поэтому используем yearly data и преобразуем timestamp в виде quarterly data для иллюстрации:
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")
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)