Подготовка временного ряда к прогнозу

2 сообщения / 0 новых
Последнее сообщение
Подготовка временного ряда к прогнозу

Имеется временной ряд продажи определённого товара по дням за 3 года. Данный товар имеет сезонность с мая по сентябрь, но сезон может смещаться плюс минус месяц, также имеется сезонность по дням недели. Необходимо сделать прогноз на 14 дней мая будущего года по дням недели. Данные за каждый год не полные. 1ый год с мая по август, 2ый год с апреля по середину сентября, 3ий год с мая по август. Внутри месяцев также есть пропущенные данные. Есть ли пакет в R или других приложениях для автоматической разметки временного ряда, чтобы сделать восстановление пропущенных значений только внутри месяцев, но при этом не восстановить несуществующие данные между месяцами разных годов когда товара не могло быть в принципе, т.е в декабре, январе, феврале. Как сделать склейку периодов разных годов т.е соединить только месяца в которых были продажи, чтобы сохранить последовательность дней недели для корректного прогноза или данный подход неверный нужно брать естественную последовательность временного ряда?

Добрый день. Прошу прощения,

Добрый день. Прошу прощения, пропустила ваш вопрос.

Восстановление данных внутри месяцев можно сделать при помощи интерполяции (например, функция interp1 для matlab), уверена, что есть аналогичная в R.

Что касается временных отметок, то я бы сделала так (код матлабовский, ищите аналог для R):

  1. сделала полный набор отметок времени для фактических значений d = datenum(2017,1,1) : datenum(2018,4,18);
  2. там, где мне нужна интерполяция, присвоила бы временному ряду значение -1, т.е. какое-то условное значение, которое мне покажет, что здесь нужна интерполяция;
  3. для отметок времени, для которых данные не нужны, присвоила бы временному ряду значение NaN.

Для значений -1 сделала бы линейную (самую простую) интерполяцию временного ряда. Таким образом, исходные данные будут приведены в приличный вид.

Дальше, что качается сезонности, то ее можно сделать двумя способами:

  1. применяя тригонометрические функции sin() и cos(), см пример кода;
  2. применяя вейвлет-функции; эта область для меня пока относительно новая, в настоящее время мы с коллегами такое решение обсуждаем, так что примера кода пока дать не могу, попробуйте разобраться самостоятельно.

Для начала имеет смысл попробовать регрессию (включающую тренд и сезонность), а потом уже усложнять модель прогнозирования.

----------------------
Ирина Чучуева,
команда Математического бюро

2010 - 2018 © Математическое бюро

Все права защищены в соответствии с законодательством РФ

При полном или частичном использовании материалов ссылка на сайт обязательна