У меня есть матричный вывод из пакета Seasonal, в котором я отфильтровываю столбец «прогноз», оставляя только время (месяц год) и записи «lowerci» и «upperci». Это делается через: season13201101FL.forecast[,c('lowerci','upperci')]
Пример данных:
lowerci upperci
Oct 2017 2415.8826 3083.332
Nov 2017 2217.2670 3238.572
Dec 2017 1976.0041 3181.648
Jan 2018 2048.9771 3577.373
Feb 2018 2046.3051 3834.099
Это класса «мтс». Я использую библиотеку highcharter для построения своих значений. Однако, похоже, что он не использует столбцы "lowerci" и "upperci", хотя я использую series.keys
для сопоставления:
hc <- highchart(type = "stock") %>%
hc_add_series(season13201101FL, id = "Original", name = "Original-FL") %>%
hc_add_series(season13201101FL.seasonalData, id = "Seasonally Adjusted-FL", name = "Seasonally Adjusted") %>%
hc_add_series(season13201101FL.forecast[,c('forecast')], id = "Forecast-FL") %>%
hc_add_series(season13201101FL.forecast[,c('lowerci','upperci')], id = "ForecastRange-FL", keys = c('x', 'low', 'high'), type = "arearange")
hc
Результирующая диаграмма содержит исходный, сезонно скорректированный и прогнозируемый ряды, но отображается диапазон прогноза без «линии», соединяющей точки, и только одна фактическая точка данных для каждой записи времени. Как получить highcharter, чтобы увидеть, что это серия arearange
?
Для воспроизведения используйте следующий файл CSV для импорта как theCSV
:
date count
2008.0027 45778
2008.0874 50460
2008.1667 62162
2008.2514 55999
2008.3333 51571
2008.418 45044
2008.5 46357
2008.5847 48498
2008.6694 45472
2008.7514 47161
2008.8361 41907
2008.918 39131
2009.0027 33810
2009.0877 34469
Тогда код такой:
library(shiny)
library(highcharter)
library(dplyr)
library(tidyr)
library(seasonal)
seasonData <- ts(theCSV[,-1], frequency = 12, start = c(2008,1));
seasonData.seas <- seas(seasonData);
seasonData.seasonalData <- final(seasonData.seas);
seasonData.forecast <- series(seasonData.seas, "forecast.forecasts");
seasonData.seasComp <- series(seasonData.seas, "seats.seasonal");
hc <- highchart(type = "stock") %>%
hc_add_series(seasonData, id = "Original", name = "Original-FL") %>%
hc_add_series(seasonData.seasonalData, id = "Seasonally Adjusted-FL", name = "Seasonally Adjusted") %>%
hc_add_series(seasonData.forecast[,c('forecast')], id = "Forecast-FL") %>%
hc_add_series(seasonData.forecast[,c('lowerci','upperci')], id = "ForecastRange-FL", keys = c('x', 'low', 'high'), type = "arearange")
hc;
hc_add_series(data, "arearange", hcaes(date, low = lowercol, high = highercol), id = "ForecastRange-FL", ...)
- person jbkunst   schedule 19.10.2017as.data.frame(season13201101FL.forecast)
, он теряет компонент времени, поэтому график не отображается. - person wergeld   schedule 19.10.2017zoo::as.Date(stats::time(forecastobject$mean)
- person jbkunst   schedule 19.10.2017$ operator is invalid for atomic vectors
при использовании в моем прогнозируемом объекте. - person wergeld   schedule 20.10.2017