Научете как можете да използвате остатъците от модел за прогнозиране, за да подобрите неговата ефективност

Заден план

Възможността да анализирате вашия модел на времеви серии е от съществено значение за диагностициране на неговата ефективност. Един такъв начин да направите това е чрез остатъците от монтирания модел. В тази публикация ще разгледаме какво представляват остатъците и как могат да се използват за подобряване на вашия модел заедно с пример в Python.

Какво представляват остатъците?

При анализа на времеви редове, остатъците, r, са разликата между настроените стойности, ŷ,и действителните стойности, y:

Важно е да се посочи разликата между „остатъци“ и „грешки“. Грешката е разликата между действителните и прогнозирани стойности. Въпреки това, остатъците, както е показано по-горе, са разликата от действителнитеи настроените стойности. Тези напаснати стойности са прогнозите, които моделът е направил към данните за обучение, докато се напасва към тях. Тъй като моделът знае стойностите на всички наблюдения, той вече не е технически прогноза, а по-скоро настроена стойност.

Ако искате да научите повече за грешките в прогнозите и техните показатели, разгледайте предишната ми публикация по темата тук:



Остатъчен анализ

Можем да използваме остатъците, за да анализираме колко добре нашият модел е уловил характеристиките на данните. Като цяло, остатъците трябва:

  • Показване на много малка или никаква автокорелацияили частична автокорелация. Ако имат някаква форма на корелация, тогава моделът е пропуснал част от информация, която е в данните. Можем да използваме статистическия тест Ljung–Boxи корелограма, за да определим дали остатъците наистина са корелирани.
  • Средната стойност на остатъците трябва да бъде нула, в противен случай прогнозата ще бъде предубедена. В действителност това е доста лесно да се коригира чрез просто добавяне или изваждане на отклонението от прогнозите.

В известен контекст „нулевата хипотеза“ на теста на Ljung–Box предполага, че остатъците не са корелирани. Следователно искаме да не успеем да отхвърлим нулевата хипотеза и p-стойностите да бъдат по-големи от 5%.

Нека сега направим малко остатъчен анализ в Python!

Остатъчен анализ в Python

Поставяне на модел на Holt Winters

За това кратко ръководство ще съобразим модела на експоненциалното изглаждане на Холт Уинтърс към известния набор от данни за пътниците на авиокомпанията в САЩ. Ако искате да научите повече за това как работи моделът на Holt Winters, не забравяйте да прочетете предишния ми блог за него тук:



Данни от Kaggle с лиценз CC0.

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

Както можем да видим, остатъците наистина са разликата между действителните стойности (#Passengers) и настроените стойностикакто е декларирано по-рано.

Остатъчна корелация

Корелацията на остатъците може да се изчисли чрез начертаване на техните функции автокорелация и частичнаавтокорелация:

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

Ако искате да научите повече за автокорелацията и частичната автокорелация, вижте предишните ми публикации за тях тук:





Тест на Люнг-Бокс

По-количествен начин да се определи дали остатъците са корелирани е да се извърши статистическият тест Ljung–Box:

Това показва p-стойностите на първите 10 закъснения. Всички те са под нивото на значимост от 0,05, поради което отхвърляме нулевата хипотеза за липса на автокорелация. По този начин има налична корелация в нашите остатъци, които трябва да преразгледаме, когато пренастройваме модела.

Ако искате да научите повече за статистическите тестове и p-стойностите, препоръчвам да прочетете предишната ми статия за тях:



Хистограма на остатъците

Хистограма на остатъците ще определи дали имат средна стойност нула и дали са симетрични (без отклонение):

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

Обобщение и допълнителни мисли

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

Пълният код, използван в този блог, е достъпен в моя GitHub тук:



Препратки и допълнителна литература

Свържете се с мен!

(Всички емотикони, проектирани от OpenMoji — проектът за емотикони и икони с отворен код. Лиценз: CC BY-SA 4.0)