Абстрактный
В этой статье я покажу простой способ заполнить большие пробелы во временных рядах, сохраняя при этом определенную достоверность и достоверность данных.
Подход заключается в применении прогнозирования по обеим сторонам разрыва и объединении двух прогнозов с помощью интерполяции.
В моем конкретном случае я был занят анализом набора данных, разделенного на три части. Одним из необходимых анализов было опробование различных методов прогнозирования. По этой причине я объясню, как вы можете применить этот подход также для прикрепления последовательных файлов, касающихся одного и того же объекта данных.
Тематическое исследование
В этом конкретном случае мы собираемся использовать экспоненциальное сглаживание с учетом сезонности, учитывая особенности нашего временного ряда. Очевидно, что каждый отдельный случай имеет свои временные ряды и свою собственную наиболее подходящую технику прогнозирования… подход можно повторить, используя предпочтительную технику.
Данные
Данные разделены на три отдельных текстовых файла. Каждый набор данных состоит из одних и тех же столбцов. Опросы записывались поминутно, и нет пропущенных строк.
Важно иметь хорошо отформатированный индекс… это возможно с помощью функции pandas.data_range()!
Первые столбцы текстовых файлов содержат дату и время, которые анализируются Pandas и используются в качестве индекса. Однако индекс содержит неправильную отметку времени, необходимо установить новый индекс, прежде чем продолжить, изменив идентификатор, такой как 2015–02–02 14:19:59в 2015–02–02 14:20: 00
Процедура очистки повторяется для трех файлов, имеющих таким образом три разных набора данных, упорядоченных в хронологическом порядке от 1 до 3.
Прогнозирование
Теперь мы готовы начать прогнозирование. Пример приведен с использованием столбца Влажность. Реализация предоставляется библиотекой statsmodel. Используемый метод представляет собой экспоненциальное сглаживание с учетом сезонности для охвата дневных периодов.
Рекорды в день составляют шестьдесят (минут в часе) умножить на 24 (часа), и по этой причине сезонные периоды составляют 1440.
Вперед
Сначала выбранная методика прогнозирования применяется стандартным образом, подгоняя ее ко второму временному ряду, чтобы заполнить пробел между собой и третьим временным рядом.
Назад
В то время как затем временные ряды возвращаются, чтобы применить прогнозирование с противоположной стороны. Чтобы это работало, пока прогнозирование не будет работать только вперед (в этом есть смысл), важно настроить также все индексы… поэтому принимая во внимание также, сколько записей содержится в пробеле или заполняет его.
Интерполяция
Теперь у нас есть прогнозы в двух направлениях, нужно только интерполировать. Результат показан ниже.
Этот подход повторяется для всех атрибутов наших наборов данных, пока у нас не появятся записи для каждой единичной метки времени минута за минутой, от первой до последней.
На этом этапе мы можем объединить все созданные кадры данных в один и сохранить его.
Спасибо за внимание
Скачать блокнот jupyter здесь
Примечание: это моя первая история на Medium. Я ценю ваши ценные отзывы и поддержку.