Абстрактный

В этой статье я покажу простой способ заполнить большие пробелы во временных рядах, сохраняя при этом определенную достоверность и достоверность данных.

Подход заключается в применении прогнозирования по обеим сторонам разрыва и объединении двух прогнозов с помощью интерполяции.

В моем конкретном случае я был занят анализом набора данных, разделенного на три части. Одним из необходимых анализов было опробование различных методов прогнозирования. По этой причине я объясню, как вы можете применить этот подход также для прикрепления последовательных файлов, касающихся одного и того же объекта данных.

Тематическое исследование

В этом конкретном случае мы собираемся использовать экспоненциальное сглаживание с учетом сезонности, учитывая особенности нашего временного ряда. Очевидно, что каждый отдельный случай имеет свои временные ряды и свою собственную наиболее подходящую технику прогнозирования… подход можно повторить, используя предпочтительную технику.

Данные

Данные разделены на три отдельных текстовых файла. Каждый набор данных состоит из одних и тех же столбцов. Опросы записывались поминутно, и нет пропущенных строк.

Важно иметь хорошо отформатированный индекс… это возможно с помощью функции pandas.data_range()!

Первые столбцы текстовых файлов содержат дату и время, которые анализируются Pandas и используются в качестве индекса. Однако индекс содержит неправильную отметку времени, необходимо установить новый индекс, прежде чем продолжить, изменив идентификатор, такой как 2015–02–02 14:19:59в 2015–02–02 14:20: 00

Процедура очистки повторяется для трех файлов, имеющих таким образом три разных набора данных, упорядоченных в хронологическом порядке от 1 до 3.

Прогнозирование

Теперь мы готовы начать прогнозирование. Пример приведен с использованием столбца Влажность. Реализация предоставляется библиотекой statsmodel. Используемый метод представляет собой экспоненциальное сглаживание с учетом сезонности для охвата дневных периодов.

Рекорды в день составляют шестьдесят (минут в часе) умножить на 24 (часа), и по этой причине сезонные периоды составляют 1440.

Вперед

Сначала выбранная методика прогнозирования применяется стандартным образом, подгоняя ее ко второму временному ряду, чтобы заполнить пробел между собой и третьим временным рядом.

Назад

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

Интерполяция

Теперь у нас есть прогнозы в двух направлениях, нужно только интерполировать. Результат показан ниже.

Этот подход повторяется для всех атрибутов наших наборов данных, пока у нас не появятся записи для каждой единичной метки времени минута за минутой, от первой до последней.

На этом этапе мы можем объединить все созданные кадры данных в один и сохранить его.

Спасибо за внимание

Скачать блокнот jupyter здесь

Примечание: это моя первая история на Medium. Я ценю ваши ценные отзывы и поддержку.