В этом видео мы поговорим про анализ остатков. Это техника, которая позволяет понять, есть ли у вашей прогнозирующей модели какие-то фундаментальные проблемы или небольшие недостатки, которые, возможно, можно устранить доработкой. Остатки, напомню — это всего лишь разность между фактом и прогнозом, то есть между истинным значением ряда и тем, что предсказывает ваша модель. Посчитать их можно двумя способами. Во-первых, прогнозы, которые участвуют в остатках, вы можете считать с фиксированной отсрочкой и плавающим концом истории, то есть, например, начиная с какого-то момента R, вы делаете прогноз всегда на одну точку вперед, переходите в точку R + 1, получаете новое истинное значение ряда, сравниваете его с прогнозом, далее делаете следующий прогноз еще на одну точку вперед и т.д. до самого конца ряда. Еще остатки могут строиться с использованием прогнозов, взятых с фиксированным концом истории при разных отсрочках. Например, вы берете начальный кусок ряда от 1 до T − D и на каждое значение ряда, начиная с момента времени T − D + 1 и заканчивая моментом времени T, делаете ваш прогноз. Вот эти прогнозы сравниваете с истинными значениями ряда и по ним считаете остатки. В зависимости от задачи могут использоваться разные определения остатков, но чаще используется первое из этих двух. Остатки оценивают ошибку, то есть шумовую компоненту, которую мы наблюдать не можем. Про эту шумовую компоненту мы, когда строим модель, что-то предполагаем. Поэтому логично, что остатки должны подчиняться каким-то предположениям, которые мы делаем об ошибке. Давайте с этими предположениями разберемся. Во-первых, остатки должны быть несмещенными, то есть в среднем они должны быть равны 0. Давайте посмотрим на пример. Перед вами на верхнем графике — количество контрактов сокровищницы США и прогноз этой величины, сделанный с помощью скользящего среднего. То есть на каждую следующую точку в качестве прогноза мы выдаем среднее по 10 предыдущим. Это достаточно простой и грубый метод прогнозирования, и для рядов, у которых есть вот такой ярко выраженный тренд, этот метод дает результаты плохие. В частности, здесь легко можно заметить, что построенный таким способом прогноз завышает значения ряда, то есть он отстает от понижающегося тренда. Это приводит к тому, что остатки в среднем отрицательные, что видно на нижнем графике. То есть несмещенными они здесь не являются. Формально проверить гипотезу несмещенности остатков можно с помощью какого-нибудь стандартного одновыборочного критерия. Гипотезу ε = 0 можно проверить против двусторонней альтернативы с помощью критерия Стьюдента или Уилкоксона. Если выясняется, что ваши остатки смещены, значит, с моделью что-то серьезно не так. Рекомендуется сделать визуальный анализ и посмотреть, что именно происходит: почему прогнозы систематически завышаются или занижаются. Если это происходит, на самом деле модель очень легко скорректировать. Просто посчитайте среднее значение остатков, и вот это значение даст вам ту константу, на которую необходимо скорректировать все прогнозы для того, чтобы остатки стали несмещенными. Прогнозирующая модель от этого улучшится. Еще одно свойство ошибок, которое мы будем требовать и проверять будем на остатках — это свойство стационарности, то есть отсутствие зависимости от времени. Остатки во времени должны быть распределены примерно одинаково. На верхнем графике вы видите данные о ежемесячном количестве произведенного в Австралии электричества. Давайте попробуем спрогнозировать эту величину так называемым наивным сезонным методом. То есть грубо говоря, каждый январь мы будем предсказывать значение ряда, равное предыдущему январю и т.д. То есть предсказанием будет значение ряда в предыдущем таком же сезоне. Поскольку в этом ряде есть явно выраженный тренд, такой прогноз будет не очень хорош. И мы легко обнаружим, что остатки такого прогноза будут смещенными. Проведем корректировку этого прогноза на смещение. Остатки полученного скорректированного наивного сезонного прогноза — перед вами на нижнем графике. Мы видим, что проблема с этими остатками осталась. Эти остатки во времени ведут себя систематически. В начале ряда они чаще всего отрицательны, затем какое-то время они принимают положительные значения, в конце ряда — снова преимущественно отрицательные. То есть во времени закон их распределения меняется. А вот так для той же самой величины выглядит обычный наивный прогноз, когда мы в каждой точке прогнозируем значение предыдущим значением этого же ряда. На нижнем графике вы видите остатки, и эти остатки также не стационарны. Не стационарны они в данном случае из-за меняющейся во времени дисперсии. Вы видите, что чем дальше по временной оси вправо, тем больше у остатков разброс. Формально гипотезу стационарности остатков можно проверить с помощью уже известного нам критерия Дики-Фуллера. Если стационарности нет, то модель неодинаково точна в разные периоды, и снова необходим визуальный анализ для того, чтобы понять, что именно с этой моделью не так, почему она приводит нас к прогнозам, которые в разные временные периоды имеют систематически разную ошибку. Наконец, еще одно желательное свойство остатков — это свойство неавтокоррелированность, то есть отсутствие зависимости от предыдущих наблюдений. На верхнем графике — объем продаж недвижимости в США и прогноз этой же величины, сделанный наивным методом. Наивный метод — плохой, когда вы прогнозируете ряд с ярко выраженной сезонностью, и это очень хорошо видно на автокорреляционной функции остатков этого прогноза. Видно, что эта автокорреляционная функция имеет очень значимые, ярко выраженные пики на лагах, кратных сезонному периоду. Гипотезу неавтокоррелированности можно проверить по коррелограмме, а также с помощью еще одного метода, который называется Q-критерий Льюнга-Бокса. Q-критерий Льюнга-Бокса позволяет проверить гипотезу о том, что сразу несколько автокорреляций при разных лагах, начиная с первого и заканчивая лагом Q, одновременно все равны 0. Эта гипотеза проверяется, естественно, против общей альтернативы, то есть H0 неверна, и делается это с помощью статистики, равной взвешенной сумме значений автокорреляции. Нулевое распределение Q статистики критерия Льюнга-Бокса — это распределение Χ² с числом степеней свободы, равным Q − k, где k — это число параметров модели, которые мы настраиваем по нашим данным. Параметры Q можно выбирать. Можно перебирать все значения параметра от Q = 1 и, например, до 50. А можно пользоваться значениями по умолчанию, которые, например, зашиты в функцию, которая делает оценку модели ARIMA в Python. Если вы видите, что остатки построенной вами модели автокоррелированны, это значит, что в данных есть еще какая-то информация, которая в построенную вами модель не вошла. Если в остатках остается структура, всегда можно попытаться эту структуру внести явным образом в модель и таким образом построить модель, которая будет лучше, остатки ее будут больше похожи на белый шум. В принципе, это можно сделать далеко не всегда. Возможности моделей класса ARIMA, например, далеко не безграничны, и всю структуру ряда можно с помощью модели этого класса учесть. Таким образом автокоррелированность остатков указывает нам только на потенциальную возможность улучшения модели, но не факт, что этого улучшения можно добиться на практике с помощью класса моделей, который вы рассматривали. Итак. В этом видео мы поговорили о том, какими свойствами должны обладать остатки хорошей модели, а также о том, как проверять, обладает ли модель этими свойствами, и что можно делать, если вы обнаруживаете, что модель этими свойствами не обладает. В следующем видео мы разберем пример прогнозирования временного ряда на Python.