Анализът на времеви редове е приложим в много отрасли, като бизнес, икономика, финанси и дори здравеопазване. Учените правят изследвания по тази тема от 19 век. Както подсказва името, той е силно зависим от момента на събиране. Мислили ли сте някога какво го прави специален вид набор от данни и какво го прави различен от регресионния проблем?

Времевият ред е колекция от подредени точки от данни, събрани последователно за определен период от време. Обикновено се събира на редовни интервали. Той е специален, тъй като точките от данни не са независими, очакваме определена степен на серийна корелация. Няма независими променливи и зависимите от времето го правят различен от проблема с регресията. Прогнозирането на времеви редове е свързано с предсказване на бъдещето въз основа на исторически данни чрез извличане на полезни статистики и характеристики в данните. Ще преминем през описание на времеви редове, анализ и моделиране в този текст.

Времевите редове се състоят главно от три компонента:

  1. Тенденция — обща дългосрочна посока, в която се променят данните
  2. Сезонност — моделите се повтарят систематично през определен период от време
  3. остатъци — краткосрочни, случайни колебания

Обсъждане на това как да се идентифицира възможността за наличие на тези компоненти във времевите редове и да се разложи за визуализация, за да се потвърди дали оправдава нашите хипотетични твърдения относно областта на изследването или целта на анализа. Например бизнесмен очаква нарастваща тенденция в годишните си приходи и намаляващо или постоянно разпределение на бюджета, лекар очаква доста постоянен пулс. По принцип прогнозата за времеви редове започва с визуализация на данни, за да има преглед и проверка на присъствието на всеки компонент, тенденция и сезонност. След това тези компоненти се оценяват и елиминират, оставяйки стационарна серия. Моделите са изградени и оптимизирани върху стационарните серии. Неофициално серия се нарича така стационарна, ако има постоянно статистическо свойство, като дисперсия, ковариация и средна стойност във всеки момент от време. Формално казано, нека X(t) е времеви ред, ние разглеждаме само слаба стационарност, която гласи, че редът е стационарен, ако

  • Средната стойност на x(t) не зависи от t
  • Дисперсията на x(t) не зависи от t
  • Ковариацията на x(t) и x(t+h) не зависи отt, зависи единствено от h > само

Въпреки това, прогнозираната продукция по модел не е отговорът на нашия въпрос. Той трябва да бъде премащабиран до първоначалния мащаб чрез добавяне на премахнати компоненти към получения резултат. Разбира се, има модели, при които стационарността не е стриктното предположение, процесът ще бъде много опростен чрез пропускане на разлагането и премащабирането на компонентите. Някои понятия или термини, използвани в анализа на времеви редове, ще бъдат обсъдени по време на процеса.

Изявление на проблема

Ако приемем, че притежавате магазин и в момента работите върху планирането на запасите за следващите години. Като вземете данни за месечните продажби през последните 11 години, вие се опитвате да предвидите месечното потребление на запаси за следващите 12 месеца, за да осигурите здравословен паричен поток и да минимизирате загубите, като избягвате свръхпредлагането.

Зареждане на данни

Обърнете внимание, че типът данни за дата след зареждането се променя на datetime за извличане на компонентите на датата, ако е необходимо.

Описание на данните

Тъй като това са данни от времеви серии, те не трябва да се разбъркват и разделят произволно. В противен случай ще се сблъскаме със ситуация, в която може да прогнозираме миналото въз основа на бъдещи данни, което няма никакъв смисъл. Поръчката трябва да бъде запазена и ние вземаме последните 12 месеца като тестови данни. Няма нулеви данни.

Набор от данни за обучение: Месечен запис на продажбите за конкретен продукт в магазин от 2000 г. до края на 2009 г.

Набор от данни за проверка: Месечни продажби за януари 2009 г. — декември 2010 г

Набор от тестови данни: Месечни продажби за януари 2011 г. — декември 2011 г

Размер: 122 записа за обучение, 12 за валидиране и 12 за тестване

Проучвателен анализ

Обобщението на статистиката показва, че средната стойност и стандартното отклонение се увеличават от година на година, което предполага наличие на възходяща тенденция и по-широко разпространение на данните, с изключение на 2002 г. Разпространението на данните се визуализира чрез серия от графики чрез агрегиране на продажбите по години за по-ясна проверка.

Графиката на времевия ред съгласува хипотетичното твърдение за възходящ тренд, по-внимателно наблюдение разкрива наличието на сезонност чрез повторение на модела по линията на графиката, подобна форма с различна степен на пик или разпространение.

Трансформиране на данни

Забелязваме наличие на тенденция и сезонност от предишния раздел. Тъй като повечето инструменти или модели за статистически анализи разчитат много на предположението за стационарност, елиминирането на тези компоненти е от решаващо значение, преди да продължите с моделирането. Така че серията, която ще бъде модел, ще има постоянна статистическа характеристика във времето. Има множество въведени методи за проверка на стационарността на времеви редове, но само директна проверка чрез визуализация и тест на Дики-Фулър. Тестът на Дики-Фулър е тестване на хипотеза с нулева хипотеза, която показва, че серията е нестационарна. Може да искате да тествате върху вариограма, стационарна серия се очаква да достигне състояние на стабилност на вариограма.

Начертани са червена линия, представляваща подвижна средна с прозорец от 12, и оранжева линия със стандартно отклонение на подвижните данни със същия прозорец. Стандартното отклонение на подвижните данни е много по-ниско в сравнение със стойностите на данните. На настоящия етап на анализ ние почти потвърждаваме, че е извършено разлагане на компоненти на нарастваща тенденция. Библиотеката на Python, приложена тук, наложи плъзгаща се средна стойност при разлагането на времевия ред. Такъв вид разлагане обикновено не е лесният метод, който ви казва дали има сезонност и тенденция. Възнамерява да го разбие за визуализация, след като ги идентифицирате. Обикновено само тази стъпка е недостатъчна за доказване на стационарност.

Илюстрирайте как работят преместването, подвижната средна стойност и стандартното отклонение

Подвижното стандартно отклонение работи по подобен начин като подвижното средно, но изчислителната функция е промяна от „средно“ на „стандартно отклонение“.

Поредица от трансформации и разлики, необходими, за да стане поредицата неподвижна. След изваждане на пълзящата средна стойност от оригиналната серия, обърнете внимание на увеличаването на разпространението на данните и по-скоро постоянната пълзяща средна във времето. Следователно трансформацията на журнал може да е подходяща, тъй като наказва голям брой.

Въпреки че диапазонът от стойности за логаритмично трансформирани, степента на разпръскване на логаритмично трансформирани серии с премахната подвижна средна стойност не показва очевидна промяна във времето в сравнение с оригиналните серии. Независимо от това, подвижната средна стойност и стандартното отклонение се колебаят, без да се наблюдава значителен модел. Цялостният мащаб е променен, но не очакваме промени в заключението за наличието на всеки компонент на времевия ред.

Аргументът на .shift()се коригира съответно, за да се тества в различен ред, d.

След това се прави диференциране на логаритмично трансформирани серии. Подвижната средна стойност и стандартното отклонение сега се колебаят много леко и може да се каже, че са постоянни през целия период. Стационарността се доказва допълнително чрез провеждане на тест на Дики-Фулър, отчитащ тестова статистика, по-малка от критичните стойности на трите значими нива, отхвърляйки нулевата хипотеза. Моделирането ще бъде направено въз основа на стабилизирани серии, претърпели логаритмична трансформация и диференциране. Времевите редове на визуализациите с разлика при 1,2,3 ни казват, че d=1 е най-добрият, като има постоянна средна стойност и по-ниско подвижно стандартно отклонение. Какъв е подходящият модел? Как да съдим?

Моделиране на времеви редове

Тази стъпка е доста по-малко сложна от предишната част. Разглеждаме основно четири вида модели на класически времеви редове, авторегресивни (AR), пълзяща средна (MA), авторегресивно-пълзяща средна модел (ARMA, комбинация от AR и MA) и накрая авторегресивна интегрирана пълзяща средна (ARIMA). Предварително вземаме решение за разграничаване, ARIMA е избрана, така че не е необходима допълнителна стъпка при създаването на извадени серии. MA и AR могат да бъдат конструирани чрез задаване на реда на ARIMA(p, d, q). Като зададетеp=0 и q=0, това е съответно MA и AR. Настройката за p и q включва анализ на автокорелация (ACF) и частична автокорелация (PACF).

ACF измерва коефициента на корелация на времевите серии и техните серии при забавяне k, което означава, че определяме количествено корелацията между x(t)и x(t-k) . PACF измерва частична корелация между времевите редове и техните лагирани стойности. Разликата между ACF и PACF е, че като се има предвид PACF при забавяне k, той взема предвид корелацията между точките от данни при по-кратко забавяне h (h‹k). Някои хора са склонни да мислят за това като за проблем с регресията. Вземайки w=ax+by+xz, PACF отчита корелация между w и z, която остава непредвидена от x и y. Резките спадове на ACF и PACF определят съответно стойностите на q иp. Ако и ACF, и PACF намаляват постепенно, се избира ARIMA. Моделите AR и MA са тествани, представянето им не е толкова добро, колкото комбинирания модел. Следователно приемането на ARIMA тук. От получените графики на ACF и PACF в този случай ще бъдат обучени и валидирани три комбинации от ред ARIMA, [ (2,1,1), (0,1,1), (2,1,2) ]. Кодът по-долу може да бъде модифициран съответно чрез промяна на аргумента „поръчка“ за ARIMA().

ARIMA(2,1,2) има най-ниския AIC сред трите модела и всички оценки на неговите параметри са статистически значими. Една точка, която си струва да се отбележи, е, че ARIMA(2,1,2) има много по-малка разлика между обучение и валидиране на RMSE. Ще продължим с ARIMA(2,1,2).

Избраният модел е преоборудван с пълен набор от данни за обучение и валидиране. Прогнозата ще бъде направена от последния момент нататък. Това са данни от времеви серии, не е валидно да се пропусне наборът за валидиране. Ако пропуснете, предвиждането за тестови данни ще бъде направено въз основа на историята, случила се преди набора за валидиране, което означава, че ще предвидите продажбите за 2011 г., като използвате продажбите за 2009 г. Това е проблем с многоетапна прогноза. Прогнозата за 12 месеца ще бъде направена въз основа на рекурсивно прогнозиране, X(t+2) ще се основава на прогноза за X(t+1) и т.н.

Полученият прогнозиран резултат е със същия мащаб като логаритмично трансформираната времева серия, която се приема при моделирането. Обратно логаритмично преобразуване, за да получите окончателни валидни прогнози, като вземете експоненциал от прогнозираните стойности на модела, за да ги преобразувате обратно в оригиналния мащаб.

Целият процес включва доста субективно тълкуване на графиките с подкрепата на статистическите теории. Python библиотека, pmdarima ни предоставя методи, наречени auto_arima. Той ще претърпи итерации с диапазон от стойности за всеки параметър и ще бъде оптимизиран въз основа на някои други посочени аргументи, за да се намери най-ефективният модел.

Модели за машинно обучение

Проблемът с времеви редове може да бъде перифразиран като контролирано обучение в ML, така че резултатът от предишната стъпка ще бъде вход за следващите стъпки. Предполага се, че всяка точка от данни е независима, тъй като серийната корелация между изхода е отчетена чрез създаване на нови характеристики за всеки запис.

Класическите модели на времеви редове са все още привлекателни и полезни за решаване на нашите проблеми след десетилетия. Независимо от това преструктурирането на задачата за прогнозиране на времеви редове в проблем с машинното обучение е провокиращо замисляне, поради възможността за включване на повече фактори, за които се предполага, че допринасят за промени в зависимите променливи. Прогнозирането вече не зависи само от историята, но взема предвид други значими предиктори от обкръжението. Например продажбите на хранителни стоки показват забележими скокове по време на фестивалните сезони, така че булева променлива дали хората празнуват на конкретен ден си заслужава да бъде включена като предиктори. Пример за това как може да се създаде нов кадър от данни от този набор от данни е както следва и всеки регресионен модел, като линейна регресия, SVR, невронна мрежа и т.н., може да бъде експериментиран.

Моля, имайте предвид, че методът за разделяне на данни все още ще бъде проблем, тъй като последователността на събитията е важна.