www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Нежное введение в автокорреляцию и частичную автокорреляцию

Дата публикации 2017-02-06

Графики автокорреляции и частичной автокорреляции широко используются при анализе и прогнозировании временных рядов.

Это графики, которые графически суммируют силу взаимосвязи с наблюдением во временном ряду с наблюдениями на предыдущих временных шагах. Разница между автокорреляцией и частичной автокорреляцией может быть трудной и запутывающей для новичков в прогнозировании временных рядов.

В этом руководстве вы узнаете, как рассчитать и построить графики автокорреляции и частичной корреляции с помощью Python.

После завершения этого урока вы узнаете:

  • Как построить и просмотреть функцию автокорреляции для временного ряда.
  • Как построить и просмотреть функцию частичной автокорреляции для временного ряда.
  • Разница между автокорреляционными и частичными автокорреляционными функциями для анализа временных рядов.

Давайте начнем.

Набор данных минимальных суточных температур

Этот набор данных описывает минимальные дневные температуры за 10 лет (1981-1990) в городе Мельбурн, Австралия.

Единицы измерения - градусы Цельсия, 3650 наблюдений. Источник данных зачисляется в Австралийское бюро метеорологии.

Узнайте больше и загрузите набор данных с Dara Market,

Загрузите набор данных и поместите его в текущий рабочий каталог с именем файла «ежедневно минимальной temperatures.csv«».

Заметка: Загруженный файл содержит несколько знаков вопроса («?»), Которые необходимо удалить, прежде чем вы сможете использовать набор данных. Откройте файл в текстовом редакторе и удалите символы «?». Также удалите любую информацию нижнего колонтитула в файле.

В приведенном ниже примере будут загружены минимальные дневные температуры и график временных рядов.

from pandas import Series
from matplotlib import pyplot
series = Series.from_csv('daily-minimum-temperatures.csv', header=0)
series.plot()
pyplot.show()

Выполнение примера загружает набор данных как серию Pandas и создает линейный график временного ряда.

Корреляция и автокорреляция

Статистическая корреляция суммирует силу взаимосвязи между двумя переменными.

Можно предположить, что распределение каждой переменной соответствует распределению Гаусса (кривая колокола). Если это так, мы можем использовать коэффициент корреляции Пирсона, чтобы суммировать корреляцию между переменными.

Коэффициент корреляции Пирсона представляет собой число от -1 до 1, которое описывает отрицательную или положительную корреляцию соответственно. Нулевое значение указывает на отсутствие корреляции.

Мы можем вычислить корреляцию для наблюдений временного ряда с наблюдениями с предыдущими временными шагами, называемыми лагами. Поскольку корреляция наблюдений временного ряда рассчитывается со значениями того же ряда в предыдущие моменты времени, это называется последовательной корреляцией или автокорреляцией.

График автокорреляции временного ряда по лагу называетсятокоррекцияСorrelationFUnction, или акроним ACF. Этот график иногда называют коррелограммой или автокорреляционным графиком.

Ниже приведен пример расчета и построения графика автокорреляции для минимальных дневных температур с использованиемplot_acf ()функция из библиотеки statsmodels.

from pandas import Series
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_acf
series = Series.from_csv('daily-minimum-temperatures.csv', header=0)
plot_acf(series)
pyplot.show()

При выполнении примера создается двухмерный график, показывающий значение задержки по оси X и корреляцию по оси Y между -1 и 1.

Доверительные интервалы нарисованы в виде конуса. По умолчанию это 95-процентный доверительный интервал, что позволяет предположить, что значения корреляции вне этого кода, скорее всего, являются корреляцией, а не статистической случайностью.

По умолчанию печатаются все значения запаздывания, что делает график зашумленным.

Мы можем ограничить число лагов по оси X до 50, чтобы сделать график более удобным для чтения.

Функция частичной автокорреляции

Частичная автокорреляция - это сводка взаимосвязи между наблюдением во временном ряду с наблюдениями на предыдущих временных этапах с удалением взаимосвязей между промежуточными наблюдениями.

Частичная автокорреляция при лаге k - это корреляция, возникающая после устранения влияния любых корреляций, связанных с членами с более короткими лагами.

- стр. 81, раздел 4.5.6 Частичные автокорреляции,Вводный временной ряд с R,

Автокорреляция для наблюдения и наблюдения на предыдущем временном шаге состоит из прямой и косвенной корреляций. Эти косвенные корреляции являются линейной функцией корреляции наблюдения с наблюдениями на промежуточных временных шагах.

Именно эти косвенные корреляции стремится устранить частичная автокорреляционная функция. Не вдаваясь в математику, это интуиция для частичной автокорреляции.

В приведенном ниже примере вычисляется и строится график частичной автокорреляционной функции для первых 50 лагов в наборе данных «Минимальные дневные температуры» с использованиемplot_pacf ()из библиотеки statsmodels.

from pandas import Series
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_pacf
series = Series.from_csv('daily-minimum-temperatures.csv', header=0)
plot_pacf(series, lags=50)
pyplot.show()

Выполнение примера создает двухмерный график частичной автокорреляции для первых 50 лагов

Интуиция для участков ACF и PACF

Графики функции автокорреляции и функции частичной автокорреляции для временного ряда рассказывают совсем другую историю.

Мы можем использовать интуицию для ACF и PACF выше, чтобы исследовать некоторые мысленные эксперименты.

Авторегрессия Интуиция

Рассмотрим временной ряд, который был сгенерирован процессом авторегрессии (AR) с задержкойК,

Мы знаем, что ACF описывает автокорреляцию между наблюдением и другим наблюдением на предыдущем временном шаге, который включает в себя информацию о прямой и косвенной зависимости.

Это означает, что мы ожидаем, что ACF для временного ряда AR (k) будет сильным с запаздыванием k, и инерция этого отношения продолжится к последующим значениям запаздывания, отступая в некоторой точке, когда эффект будет ослаблен.

Мы знаем, что PACF описывает только прямую связь между наблюдением и его отставанием. Это предполагает, что не будет корреляции для значений запаздывания за пределамиК,

Это точно ожидание графиков ACF и PACF для процесса AR (k).

Скользящая средняя интуиция

Рассмотрим временной ряд, сгенерированный процессом скользящего среднего (MA) с запаздываниемК,

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

Мы ожидаем, что ACF для процесса MA (k) покажет сильную корреляцию с недавними значениями вплоть до запаздывания k, затем резкое снижение до низкой или без корреляции. По определению, именно так и был создан процесс.

Что касается PACF, мы ожидаем, что график покажет сильную связь с отставанием и отставание корреляции от отставания и далее.

Опять же, это в точности ожидание графиков ACF и PACF для процесса MA (k).

Дальнейшее чтение

Этот раздел предоставляет некоторые ресурсы для дальнейшего чтения об автокорреляции и частичной автокорреляции для временных рядов.

Резюме

В этом руководстве вы узнали, как рассчитать графики автокорреляции и частичной автокорреляции для данных временных рядов с помощью Python.

В частности, вы узнали:

  • Как рассчитать и создать автокорреляционный график для данных временных рядов.
  • Как рассчитать и создать график частичной автокорреляции для данных временных рядов.
  • Разница и интуиция для интерпретации графиков ACF и PACF.

У вас есть вопросы по этому уроку?
Задайте свои вопросы в комментариях ниже, и я сделаю все возможное, чтобы ответить.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map