Нажмите, чтобы узнать больше об авторе Маарит Видманн.
Полное приложение для анализа временных рядов охватывает этапы Наука данных цикл от доступа к преобразованию, моделированию, оценке и развертыванию данных временных рядов. Однако для данных временных рядов конкретные задачи на этих этапах отличаются по сравнению с перекрестными данными. Например, данные поперечного сечения собираются как снимок одного объекта в один момент времени, тогда как данные временных рядов собираются путем наблюдения за одним и тем же объектом в течение определенного периода времени. Обычные шаблоны в данных временных рядов имеют свою специфическую терминологию, и они определяют необходимую предварительную обработку, прежде чем переходить к моделированию временных рядов. Временные ряды можно моделировать с помощью многих типов моделей, но конкретные модели временных рядов, такие как модель ARIMA, используют временную структуру между наблюдениями.
В этой статье мы представляем наиболее распространенные задачи на пути создания приложения временных рядов. Наконец, мы применяем теорию на практике, создав пример приложения на платформе Analytics.
Доступ к временным рядам
У временных рядов есть различные источники и приложения: ежедневные данные о продажах для прогнозирования спроса, годовые макроэкономические данные для долгосрочного политического планирования, данные датчиков смарт-часов для анализа сеанса тренировки и многое другое. Все эти временные ряды различаются, например, по их детализации, регулярности и чистоте: мы можем быть уверены, что у нас есть значение ВВП для нашей страны на этот год и на следующие 10 лет тоже, но мы не можем гарантировать, что Датчик наших умных часов стабильно работает при любых упражнениях и при любой температуре. Также может быть, что данные временных рядов не доступны через регулярные промежутки времени, а могут быть собраны только из случайных точек событий, таких как инфекционные заболевания или спонтанные посещения клиентов. Что общего у всех этих типов данных временных рядов, так это то, что они собираются из одного и того же источника с течением времени.
Регуляризация и очистка временных рядов
Когда у нас есть данные временных рядов, следующий шаг - сделать их равномерно распределенными с подходящей степенью детализации, непрерывностью и чистотой. Требуемые задачи зависят от исходной формы данных, а также от наших аналитика цель. Например, если мы планируем продвижение продукта на одну неделю, нас могут заинтересовать более подробные данные, чем если бы мы хотели получить обзор продаж какого-либо продукта.
Сортировка
Временные ряды необходимо отсортировать по времени. Когда вы разделяете данные на обучающие и тестовые наборы, не забудьте сохранить временную структуру между записями, беря данные сверху / снизу для тестирования / обучения. Если ваши данные содержат более одной записи на метку времени, вам необходимо агрегировать их по метке времени. Например, если у вас есть несколько заказов в день и вас интересуют ежедневные продажи, вам необходимо суммировать продажи за каждый день. Кроме того, если вас интересуют временные ряды с другой степенью детализации, чем та, что у вас есть в данных (например, ежемесячные продажи вместо ежедневных), вы можете дополнительно агрегировать данные с предпочтительной степенью детализации.
Недостающие ценности
Если некоторые временные метки отсутствуют, вам необходимо ввести их во временные ряды, чтобы они были равномерно распределены. Иногда недостающие записи являются частью динамики временного ряда (например, фондовый рынок закрывается в пятницу и открывается в понедельник).
Когда вы вводите отсутствующие отметки времени в данные, соответствующие значения, конечно же, отсутствуют. Вы можете вменять эти пропущенные значения, например, с помощью линейной интерполяции или значений скользящего среднего. Однако помните, что лучший способ вменения пропущенных значений зависит от регулярной динамики данных. Например, если вы проверяете еженедельную сезонность в ежедневных данных, а значение одной субботы отсутствует, то значение последней субботы, вероятно, является лучшей заменой. Если отсутствующие значения отсутствуют случайно, например, отсутствующие цены закрытия фондового рынка в выходные дни, вы можете заменить их фиксированным значением, которое в данном случае будет равно 0. С другой стороны, если отсутствующие значения случайны и встречаются достаточно давно, вы можете использовать данные после отсутствующего значения и игнорировать более старые данные.
Нерегулярные узоры
Один хороший способ справиться с быстрыми колебаниями и выбросами - это сгладить данные. Можно использовать несколько методов, например: скользящей средней и экспоненциальное сглаживание. Кроме того, вырезание значений, лежащих за пределами усов прямоугольной диаграммы, сглаживает данные. Имейте в виду, что сильная сезонность данных может привести к широко распространенной прямоугольной диаграмме, и тогда лучше использовать условную коробчатую диаграмму для обнаружения выбросов.
Однако иногда временной ряд просто показывает очень необычное явление! В таком случае вы можете попытаться сделать временной ряд более регулярным, выделив его подмножество, например, рассматривая только продажи одного продукта вместо продаж всего супермаркета, или путем кластеризации данных.
Изучение и преобразование временных рядов
На данный момент у нас есть данные временного ряда в форме, подходящей для визуального и численного исследования. Различные графики и статистика показывают долгосрочные и краткосрочные закономерности и временные отношения во временных рядах, которые мы можем использовать, чтобы лучше понять его динамику и предсказать его будущее развитие.
Визуальное исследование временных рядов
Основной график для изучения временных рядов - это линейный график (рис. 3), который показывает возможное направление, регулярные и нерегулярные колебания, выбросы, пробелы или поворотные точки во временном ряду. Если вы наблюдаете регулярную закономерность в своем временном ряду, такую как годовая сезонность продаж напитков, вы можете проанализировать каждый сезонный цикл (год) отдельно на сезонном графике (рисунок 3). На сезонном графике вы можете легко увидеть, например, был ли июль месяцем более высоких продаж в этом году, чем в прошлом году, или же ежемесячные продажи увеличиваются из года в год.
Если вас интересует, что происходит внутри сезонов, например, каковы средние продажи в летние месяцы, а также насколько и в каком направлении продажи меняются каждый месяц, вы можете изучить эти виды динамики на условной прямоугольной диаграмме (рис. 3). Еще один полезный график для изучения временных рядов - график запаздывания (рисунок 3). График запаздывания показывает взаимосвязь между текущими значениями и прошлыми значениями, например, продажи сегодня и продажи за неделю до этого.
Классическая декомпозиция временных рядов
Классическая декомпозиция, т. Е. Разложение временного ряда на его тренд, сезонность и остаток, обеспечивает хороший ориентир для прогнозирования. Оставшаяся часть временного ряда, остаток, должна быть стационарный, и его можно прогнозировать, например, с помощью модели ARIMA. Однако помните, что если остаточный ряд не является стационарным, могут потребоваться некоторые дополнительные преобразования, такие как дифференцирование первого порядка или логарифмическое преобразование исходного временного ряда.
Во-первых, если временной ряд показывает направление, тенденцию, временной ряд может быть исключен из тренда, например, путем подбора регрессионной модели на основе данных или путем вычисления значения скользящего среднего.
Во-вторых, если временной ряд показывает регулярные колебания - сезонность - временной ряд может быть скорректирован с учетом этого. Вы можете найти лаг, в котором происходит основная сезонность, на графике автокорреляции временного ряда. Например, если вы наблюдаете пик на лаге 7 и у вас есть дневные данные, то данные будут иметь еженедельную сезонность. Сезонность может быть скорректирована путем дифференцирования данных с лагом, когда происходит основной всплеск. Если вы хотите скорректировать вторую сезонность в данных, вы можете сделать это, повторив процедуру для скорректированного (разностного) временного ряда.
Наконец, когда вы достигли стационарного временного ряда, который готов для моделирования, например, с помощью модели ARIMA, вы можете выполнить окончательную проверку, например, с помощью Юнг-бокс тест на стационарность.
Моделирование и оценка временных рядов
Теперь мы переходим к моделированию остаточной части временного ряда, которая содержит его нерегулярную динамику. Мы можем сделать это с помощью моделей ARIMA, обучение с помощью машины модели, нейронные сети и многие их вариации. Мы часто моделируем остаточную часть временного ряда этими моделями, потому что она стационарна. Однако разложение временного ряда не всегда необходимо, потому что некоторые модели, такие как, например, сезонная модель ARIMA, также работают для моделирования нестационарных временных рядов.
Далее мы собираем несколько свойств этих различных методов моделирования, их сходства и различия, чтобы вы могли выбрать лучший из них для своего варианта использования. Помните также, что полезно обучать несколько моделей и даже создавать из них ансамбль!
Модели ARIMA
АРИМА Модель (Авторегрессионная интегрированная скользящая средняя) - это модель линейной регрессии между текущим и прошлым значениями (AR-часть), а также между текущими и прошлыми ошибками прогноза (MA-часть). Если модель имеет ненулевую I-часть, то данные различаются, чтобы сделать ее стационарной. Базовые модели ARIMA предполагают, что временные ряды являются стационарными, а стационарные временные ряды не имеют предсказуемых закономерностей в долгосрочной перспективе. Снижение точности долгосрочных прогнозов проявляется в увеличении доверительных интервалов прогнозов. Наличие большего количества данных не всегда лучше для обучения моделей ARIMA: большие наборы данных могут сделать оценку параметров модели ARIMA трудоемкой, а также преувеличивать разницу между истинным процессом и процессом модели.
Модели машинного обучения
В моделях машинного обучения запаздывающие значения используются в качестве столбцов-предикторов и игнорируется временная структура между целевым столбцом и столбцами-предикторами. Модели машинного обучения также могут определять долгосрочные закономерности и поворотные моменты в данных при условии, что в обучающих данных содержится достаточно данных для установления этих закономерностей. В общем, чем больше отклонений показывают данные, тем больше данных требуется для обучения модели. Когда вы применяете модель машинного обучения, рекомендуется моделировать остаток. В противном случае вы можете построить модель, более сложную, чем классическая модель декомпозиции, но которая на самом деле не изучает ничего нового, кроме этого!
Советы по выбору модели
Во-первых, некоторые явления трудно предсказать, и в таком случае часто имеет смысл выбрать более простую модель и не вкладывать ресурсы в моделирование того, что нельзя точно спрогнозировать.
Во-вторых, эффективность модели - не единственный критерий. Если важные решения основаны на результатах модели, ее интерпретируемость может быть важнее, чем немного лучшая производительность. Тем не менее, нейронная сеть может проиграть простой классической модели разложения, хотя ее прогноз немного лучше.
В-третьих, добавление в модель объяснительных переменных может повысить точность прогноза. Однако в такой модели необходимо прогнозировать и объясняющие переменные, а возрастающая сложность модели не всегда стоит лучшей точности. Иногда для обоснования решений достаточно приблизительных оценок: если суммы доставки исчисляются десятками и сотнями, то прогнозируемый спрос также не должен иметь большей детализации.
Оценка модели
Следующим шагом после обучения модели является ее оценка. Для прогнозирования внутри выборки набор тестов является самим обучающим набором, поэтому процесс модели адаптируется к данным, которые использовались для обучения модели. Для прогнозирования вне выборки набор тестов следует за обучающим набором во времени.
Одним из рекомендуемых показателей погрешности для оценки модели временных рядов является средняя абсолютная ошибка в процентах (MAPE), поскольку он обеспечивает погрешность в универсальной шкале в процентах от фактического значения. Однако, если истинное значение равно нулю, эта метрика не определена, а также другие метрики ошибок, такие как среднеквадратичная ошибка (СКО), Сделаю. Однако часто рекомендуется НЕ использовать R-квадрат. Показатель R-квадрат не соответствует контексту анализа временных рядов, поскольку основное внимание уделяется прогнозированию будущей систематической изменчивости целевого столбца вместо моделирования всей изменчивости в прошлом.
Прогнозирование и восстановление временных рядов
Мы почти там! Последний шаг - спрогнозировать будущие значения и восстановить сигнал.
Динамическое прогнозирование
Если у вас есть модель, которая не может предоставить точные прогнозы в долгосрочной перспективе, динамическое развертывание часто улучшает точность прогнозов вне выборки. При динамическом развертывании единовременно прогнозируется только одна точка в будущем, и прошлые данные обновляются этим прогнозным значением для создания следующего прогноза (рисунок 5).
Восстановление тренда и сезонности
Наконец, если мы разложим временные ряды перед прогнозированием, нам необходимо восстановить тренд и / или сезонность прогнозов. Если мы скорректируем сезонность путем дифференцирования данных, мы начнем реконструировать сигнал, добавив значения с запаздыванием, где возникает сезонность. Например, если бы у нас были дневные данные y, где мы применили сезонную разность с лагом 7 (еженедельная сезонность), для восстановления этой сезонности потребовались бы следующие вычисления для прогнозных значений yt+1, yt+2, ..., yt+h :
в котором tэто последний момент времени в обучающих данных, и h - горизонт прогноза.
Чтобы восстановить вторую сезонность, мы повторим шаг, описанный выше, для восстановленных временных рядов. Если бы мы хотели восстановить компонент тренда во временном ряду, мы бы применили регрессионную модель, представляющую тренд, к восстановленному временному ряду.
Полное приложение временных рядов на платформе аналитики
Наконец, давайте посмотрим, как претворить эти шаги в жизнь с помощью нашей платформы аналитики. Рабочий процесс Доступ к преобразованию и моделированию временных рядов (доступно в Hub) на рисунке 6 показаны этапы от доступа к очистке, визуальному исследованию, декомпозиции и моделированию временных рядов. Для некоторых из этих задач мы используем компоненты временных рядов которые инкапсулируют рабочие процессы как функции, специфичные для временных рядов: агрегируют данные с выбранной степенью детализации, выполняют классическую декомпозицию и т. д.
В этом примере мы используем Образец - Супермаркет данные предоставлены Живая картина. В нашем анализе мы ориентируемся на заказы всей продукции с 2014 по 2017 год - всего 9994 записи. Мы начинаем предварительную обработку с преобразования данных в данные временного ряда, вычисляя общий объем продаж за день. Теперь у нас есть только одно значение в день, но некоторые дни отсутствуют, потому что в эти дни не было отправлено ни одного заказа. Поэтому мы вводим эти дни во временные ряды и заменяем отсутствующие значения продаж фиксированным значением 0. После этого мы агрегируем данные на ежемесячном уровне и рассматриваем средние продажи за каждый месяц для дальнейшего анализа.
Для визуального исследования мы также агрегируем данные на годовом уровне и обнаруживаем, что в начале 2015 года наступил поворотный момент, как показывает линейный график справа на рисунке 7. Линейный график слева показывает годовую сезонность данных: есть два регулярных пика в конце каждого года и более низкий пик в начале каждого года. Мы также обнаруживаем годовую сезонность в данных, о чем свидетельствует большой всплеск на лаге 12 на графике АКФ слева. Мы разлагаем временной ряд на его тренд, сезонность и остаток, и эти компоненты показаны на линейном графике в середине рисунка 7. График ACF справа не показывает значимой автокорреляции в остаточном ряду.
Затем мы моделируем остаточный ряд среднемесячных продаж с помощью модели ARIMA. После дифференцирования с запаздыванием 12 длина временного ряда составляет 36 наблюдений. Мы ищем лучшую модель с компонентом Auto ARIMA Learner с максимальным порядком 4 для частей AR и MA и максимальным порядком 1 для части I. Самая эффективная модель, основанная на Акайке информационный критерий это ARIMA (0, 1, 4), а результирующая MAPE, основанная на прогнозах по выборке, составляет 1.153.
Наконец, мы оцениваем точность прогноза вне выборки модели. Рабочий процесс Прогнозирование и восстановление временных рядов (доступно в хабе) на рисунке 8 показано, как прогнозировать ежедневные продажи в 2017 году на основе ежемесячных данных за период с 2014 по 2016 год (24 наблюдения), а также победившая модель ARIMA (0,1,4) с использованием динамического развертывания. подход. После этого мы реконструируем сигнал, в данном случае восстанавливаем тренд и годовую сезонность до прогнозных значений (12 среднемесячных значений продаж). Мы сравниваем фактические и прогнозные значения и получаем MAPE 0.336.
Обзор
Временные ряды, будь то данные датчиков, показывающие поведение крошечного объекта наносекунда за наносекундой, макроэкономические данные за 20-й век или что-то среднее, имеют определенные аналитические методы, которые применяются к этапам доступа, манипулирования и моделирования.
В этой статье мы познакомили вас с основами методов аналитики временных рядов, которые помогут вам начать работу с данными временных рядов.
Рекомендации
[1] Чемберс, Джон К., Сатиндер К. Маллик и Дональд Д. Смит. Как выбрать правильную технику прогнозирования. Гарвардский университет, Высшая школа делового администрирования, 1971 год.
[2] Гайндман, Роб Дж. И Джордж Атанасопулос. Прогнозирование: принципы и практика. Отексты, 2018.
Источник: https://www.dataversity.net/building-a-time-series-analysis-application/
- Absolute
- дополнительный
- анализ
- аналитика
- Применение
- Приложения
- AR
- гайд
- автоматический
- Основы
- эталонный тест
- ЛУЧШЕЕ
- Напитки
- тело
- Коробка
- строить
- Строительство
- бизнес
- Уборка
- Column
- Общий
- компонент
- доверие
- страны
- Текущий
- данным
- день
- Спрос
- Развитие
- Болезнь
- Оценки
- События
- Упражнение
- исследование
- фигура
- в заключение
- First
- соответствовать
- Фокус
- пятница
- будущее
- ВВП
- Общие
- Юрий
- хорошо
- выпускник
- Управляемость
- Гарвардский
- Гарвардский университет
- Как
- How To
- HTTPS
- Сотни
- определения
- изображение
- Инфекции
- информация
- IT
- июль
- большой
- вести
- УЧИТЬСЯ
- ученик
- изучение
- уровень
- линия
- Длинное
- обучение с помощью машины
- основной
- рынок
- Метрика
- модель
- моделирование
- понедельник
- ежемесячные данные
- месяцев
- двигаться
- сеть
- сетей
- нервный
- нейронной сети
- нейронные сети
- Откроется
- заказ
- заказы
- Другое
- шаблон
- производительность
- планирование
- Платформа
- прогноз
- Продукт
- Продукция
- продвижение
- учет
- регресс
- Отношения
- Полезные ресурсы
- Итоги
- главная
- Шкала
- Школа
- выбранный
- смысл
- Серии
- набор
- Доставка и оплата
- просто
- небольшой
- умный
- Снимок
- So
- Начало
- и политические лидеры
- статистика
- акции
- фондовый рынок
- представленный
- лето
- поддержка
- Живая картина
- цель
- тестXNUMX
- Основы
- Будущее
- время
- топ
- Обучение
- трансформация
- Universal
- Университет
- ценностное
- Смотреть
- неделя
- еженедельно
- Что такое
- Википедия.
- в
- Работа
- рабочий
- тренировка
- стоимость
- год
- лет
- нуль