Научете как можете да използвате остатъците от модел за прогнозиране, за да подобрите неговата ефективност
Заден план
Възможността да анализирате вашия модел на времеви серии е от съществено значение за диагностициране на неговата ефективност. Един такъв начин да направите това е чрез остатъците от монтирания модел. В тази публикация ще разгледаме какво представляват остатъците и как могат да се използват за подобряване на вашия модел заедно с пример в 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 тук:
Препратки и допълнителна литература
- Прогнозиране: Принципи и практика: https://otexts.com/fpp2/
- https://www.statology.org/ljung-box-test-python/
Свържете се с мен!
- За да четете неограничен брой истории в Medium, не забравяйте да се регистрирате тук! 💜
- За да получавате актуализация, когато публикувам, регистрирайте се за известия по имейл тук! 😀
- LinkedIn👔
- Twitter🖊
- GitHub🖥
- Kaggle🏅
(Всички емотикони, проектирани от OpenMoji — проектът за емотикони и икони с отворен код. Лиценз: CC BY-SA 4.0)