Преимущества новых функций plotFanChart() и plotFixedOrigin():
Колонку timestamp не надо преобразовать. Эти функции сейчас работают для любой timestamp в формате: date, time, numeric, потом сделаю и для character. Это очень удобно работать с данными вида M3 other data (timestamp просто числа: 1,2,3,4,…)
Добавление опции use.plotly позволяет выводить plotly график с инерактивом
Я переделал M3 данные. Сейчас колонка timestamp в всех фреймах в формате Date по iso 8601:
Для yearly data: 1975-01-01, 1976-01-01, 1977-01-01,…
Для quarterly data: 1984-01-01, 1984-04-01, 1984-07-01,…
Для monthly data: 1984-01-01, 1984-02-01, 1984-03-01,…
все эти: Jan-1991, 1984 Q1,… в формате yearmon, yearqrt то есть они уже были обработаны с каким пакетами,… с таким данным не будем использовать.
library(tidyverse)
ts <- read_csv("~/GitHub/forvision_data/M3_yearly_TSTS.csv")
fs <- read_csv("~/GitHub/forvision_data/M3_yearly_FTS.csv")
head(ts)
## # A tibble: 6 x 4
## series_id category value timestamp
## <chr> <chr> <dbl> <date>
## 1 Y1 MICRO 941. 1975-01-01
## 2 Y1 MICRO 1085. 1976-01-01
## 3 Y1 MICRO 1245. 1977-01-01
## 4 Y1 MICRO 1445. 1978-01-01
## 5 Y1 MICRO 1683. 1979-01-01
## 6 Y1 MICRO 2038. 1980-01-01
head(fs)
## # A tibble: 6 x 7
## series_id category method forecast horizon timestamp origin_timestamp
## <chr> <chr> <chr> <dbl> <int> <date> <date>
## 1 Y1 MICRO NAIVE2 4937. 1 1989-01-01 1988-01-01
## 2 Y1 MICRO NAIVE2 4937. 2 1990-01-01 1988-01-01
## 3 Y1 MICRO NAIVE2 4937. 3 1991-01-01 1988-01-01
## 4 Y1 MICRO NAIVE2 4937. 4 1992-01-01 1988-01-01
## 5 Y1 MICRO NAIVE2 4937. 5 1993-01-01 1988-01-01
## 6 Y1 MICRO NAIVE2 4937. 6 1994-01-01 1988-01-01
ts и id то функция строит график для выбранного ряда:library(forvision)
plotFixedOrigin(ts = ts, id = "Y1")
use.plotly то функция строит plotly график с инерактивом:plotFixedOrigin(ts = ts, id = "Y1", use.plotly = T)
fs, origin, method то функция строит график для выбранного ряда c forecasts выбранных методов:plotFixedOrigin(ts = ts, fs = fs, id = "Y1", origin = "1988-01-01", m = "HOLT")
plotFixedOrigin(ts = ts, fs = fs, id = "Y1", origin = "1988-01-01", m = c("HOLT", "DAMPEN", "WINTER" , "COMB S-H-D"))
Date(time) по iso 8601, а просто числа как в M3-other data:(ешё не подготовил M3-other data поэтому пробавать использовать yearly data)
# subset
ts1 <- subset(ts, series_id == "Y1")
fs1 <- subset(fs, series_id == "Y1")
# создать timestamp в виде чисел
ts1$timestamp <- 1:length(ts1$timestamp)
fs1$timestamp <- rep(15:20, 22)
fs1$origin_timestamp <- 14
head(ts1)
## # A tibble: 6 x 4
## series_id category value timestamp
## <chr> <chr> <dbl> <int>
## 1 Y1 MICRO 941. 1
## 2 Y1 MICRO 1085. 2
## 3 Y1 MICRO 1245. 3
## 4 Y1 MICRO 1445. 4
## 5 Y1 MICRO 1683. 5
## 6 Y1 MICRO 2038. 6
head(fs1)
## # A tibble: 6 x 7
## series_id category method forecast horizon timestamp origin_timestamp
## <chr> <chr> <chr> <dbl> <int> <int> <dbl>
## 1 Y1 MICRO NAIVE2 4937. 1 15 14
## 2 Y1 MICRO NAIVE2 4937. 2 16 14
## 3 Y1 MICRO NAIVE2 4937. 3 17 14
## 4 Y1 MICRO NAIVE2 4937. 4 18 14
## 5 Y1 MICRO NAIVE2 4937. 5 19 14
## 6 Y1 MICRO NAIVE2 4937. 6 20 14
library(forvision)
plotFixedOrigin(ts = ts1, id = "Y1")
plotFixedOrigin(ts = ts1, id = "Y1", use.plotly = T)
plotFixedOrigin(ts = ts1, id = "Y1", fs = fs1, origin = "14", m = c("HOLT", "DAMPEN", "WINTER" , "COMB S-H-D"))
plotFixedOrigin(ts = ts1, id = "Y1", fs = fs1, origin = 14, m = c("HOLT", "DAMPEN", "WINTER" , "COMB S-H-D"))
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")
head(ts)
## 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
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 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