autocorr

Автокорреляция образца

Описание

пример

autocorr(y) строит графики выборочной автокорреляционной функции ( ACF) одномерных стохастических временных рядов y с доверительными границами.

пример

autocorr(y,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера, autocorr(y,'NumLags',10,'NumSTD',2) строит графики выборок ACF y для 10 отстает и отображает доверительные границы, состоящие из 2 стандартные ошибки.

пример

acf = autocorr(___) возвращает выборку ACF y использование любого из входных параметров в предыдущих синтаксисах.

пример

[acf,lags,bounds] = autocorr(___) дополнительно возвращает числа задержек, которые MATLAB® использует для вычисления ACF, а также возвращает приблизительные верхние и более низкие доверительные границы.

autocorr(ax,___) графики на осях, заданных ax вместо текущих систем координат (gca). ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

[acf,lags,bounds,h] = autocorr(___) строит графики выборок ACF y и дополнительно возвращает указатели на графические объекты. Используйте элементы h для изменения свойств графика после его создания.

Примеры

свернуть все

Задайте модель MA (2):

yt=εt-0.5εt-1+0.4εt-2,

где εt является Гауссовым со средним 0 и отклонением 1.

rng(1); % For reproducibility
Mdl = arima('MA',{-0.5 0.4},'Constant',0,'Variance',1)
Mdl = 
  arima with properties:

     Description: "ARIMA(0,0,2) Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 0
               D: 0
               Q: 2
        Constant: 0
              AR: {}
             SAR: {}
              MA: {-0.5 0.4} at lags [1 2]
             SMA: {}
     Seasonality: 0
            Beta: [1×0]
        Variance: 1

Симулируйте 1000 наблюдений за Mdl.

y = simulate(Mdl,1000);

Вычислите ACF для 20 лагов. Укажите, что yt является моделью MA (2), то есть ACF фактически равен 0 после второй задержки .

[acf,lags,bounds] = autocorr(y,'NumMA',2);
bounds
bounds = 2×1

    0.0843
   -0.0843

bounds is (-0.0843, 0,0843), которые являются верхней и нижней доверительными границами.

Постройте график ACF.

autocorr(y)

Figure contains an axes. The axes with title Sample Autocorrelation Function contains 4 objects of type stem, line.

ACF отсекает после второй задержки. Это поведение указывает на процесс МА (2).

Задайте мультипликативную сезонную ARMA (2,0,1)×(3,0,0)12 модель:

(1-0.75L-0.15L2)(1-0.9L12+0.5L24-0.5L36)yt=2+εt-0.5εt-1,

где εt является Гауссовым со средним 0 и отклонением 1.

Mdl = arima('AR',{0.75,0.15},'SAR',{0.9,-0.5,0.5},...
    'SARLags',[12,24,36],'MA',-0.5,'Constant',2,...
    'Variance',1);

Моделируйте данные из Mdl.

rng(1); % For reproducibility
y = simulate(Mdl,1000); 

Постройте график автокорреляционной функции (ACF) по умолчанию.

figure
autocorr(y)

Figure contains an axes. The axes with title Sample Autocorrelation Function contains 4 objects of type stem, line.

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

Постройте график ACF для 40 лагов.

figure
autocorr(y,'NumLags',40,'NumSTD',3)

Figure contains an axes. The axes with title Sample Autocorrelation Function contains 4 objects of type stem, line.

Коррелограмма показывает большие корреляции в лагах 12, 24 и 36.

Несмотря на то, что существуют различные оценки выборочной автокорреляционной функции, autocorr использует форму в Box, Jenkins и Reinsel, 1994. В своей оценке они масштабируют корреляцию при каждой задержке на отклонение выборки (var(y,1)) так, что автокорреляция в лаге 0 является единицей. Однако некоторые приложения требуют перемасштабирования нормализованного ACF другим фактором.

Симулируйте 1000 наблюдений из стандартного Гауссова распределения.

rng(1); % For reproducibility
y = randn(1000, 1);

Вычислите нормализованную и ненормализованную выборку ACF.

[normalizedACF, lags] = autocorr(y,'NumLags',10);
unnormalizedACF = normalizedACF*var(y,1);

Сравните первые 10 лагов выборки с нормализацией и без нее.

[lags  normalizedACF  unnormalizedACF]
ans = 11×3

         0    1.0000    0.9960
    1.0000   -0.0180   -0.0180
    2.0000    0.0536    0.0534
    3.0000   -0.0206   -0.0205
    4.0000   -0.0300   -0.0299
    5.0000   -0.0086   -0.0086
    6.0000   -0.0108   -0.0107
    7.0000   -0.0116   -0.0116
    8.0000    0.0309    0.0307
    9.0000    0.0341    0.0340
      ⋮

Входные параметры

свернуть все

Наблюдаемые одномерные временные ряды, для которых MATLAB оценивает или строит график ACF, заданный как числовой вектор. Последний элемент y содержит последнее наблюдение.

Задайте отсутствующие наблюдения используя NaN. autocorr функция обрабатывает отсутствующие значения как отсутствующие полностью случайным образом.

Типы данных: double

Оси, на которых нужно построить график, заданные как Axes объект.

По умолчанию, autocorr графики для текущей системы координат (gca).

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: autocorr(y,'NumLags',10,'NumSTD',2) строит графики выборок ACF y для 10 отстает и отображает доверительные границы, состоящие из 2 стандартные ошибки.

Количество лагов в выборке ACF, заданное как разделенная разделенными запятой парами, состоящая из 'NumLags' и положительное целое число. autocorr использует лаги 0:NumLags для оценки ACF.

Значением по умолчанию является min ([20, T – 1]), где T является эффективным размером выборки y.

Пример: autocorr(y,'NumLags',10) строит графики выборок ACF y для лагов 0 через 10.

Типы данных: double

Количество лагов в теоретической модели MA y, заданная как разделенная разделенными запятой парами, состоящая из 'NumMA' и неотрицательное целое число, меньше NumLags.

autocorr использует NumMA для оценки доверительных границ.

  • Для лагов > NumMA, autocorr использует приближение Бартлетта [1], чтобы оценить стандартные ошибки при допущении модели.

  • Если NumMA = 0, затем autocorr принимает, что y - гауссов процесс белого шума длины n. Следовательно, стандартная ошибка приблизительно 1/T, где T - эффективный размер выборки y.

Пример: autocorr(y,'NumMA',10) задает, что y является MA (10) обрабатывает, и строит доверительные границы для всех лагов, больше 10.

Типы данных: double

Количество стандартных ошибок в доверительных границах, заданное как разделенная разделенными запятой парами, состоящая из 'NumSTD' и неотрицательный скаляр. Для всех лагов > NumMAдоверительные границы 0 ± NumSTD*σ^, где σ^ - предполагаемая стандартная ошибка автокорреляции образца.

Значение по умолчанию дает приблизительно 95% доверительных границ.

Пример: autocorr(y,'NumSTD',1.5) строит графики ACF y с доверительными границами 1.5 стандартные ошибки на расстоянии от 0.

Типы данных: double

Выходные аргументы

свернуть все

Выборка ACF одномерных временных рядов y, возвращенный как числовой вектор длины NumLags + 1.

Элементы acf соответствуют лагам 0,1,2,..., NumLags (то есть элементы lags). Для всех временных рядов y, задержка автокорреляции 0 acf(1) = 1.

Числа задержек, используемые для оценки ACF, возвращенные как числовой вектор длины NumLags + 1.

Аппроксимируйте верхнюю и более низкую автокорреляцию доверия границах, принимая y является MA (NumMA) обрабатывает, возвращается как двухэлементный числовой вектор.

Указатели на графические объекты, возвращенные как графический массив. h содержит уникальные идентификаторы графика, которые можно использовать для запроса или изменения свойств графика.

Подробнее о

свернуть все

Автокорреляционная функция

autocorrelation function измеряет корреляцию между yt и y t + k, где k = 0,..., K и yt является стохастическим процессом.

Согласно [1], автокорреляция для k задержки

rk=ckc0,

где

  • ck=1Tt=1Tk(yty¯)(yt+ky¯).

  • c 0 является выборочным отклонением временного ряда.

Предположим, что q является задержкой, после которой теоретический ACF эффективно равен 0. Затем предполагаемая стандартная ошибка автокорреляции при задержке k > q

SE(rk)=1T(1+2j=1qrj2).

Если серия полностью случайна, то стандартная ошибка уменьшается до 1/T.

Отсутствующие полностью случайным образом

Наблюдения случайной переменной missing completely at random, если тенденция наблюдения к отсутствию независима как от случайной переменной, так и от тенденции всех других наблюдений к отсутствию.

Совет

Чтобы построить график ACF без доверительных границ, установите 'NumSTD',0.

Алгоритмы

  • Если y - это полностью наблюдаемый ряд (то есть он не содержит никаких NaN значения), затем autocorr использует преобразование Фурье, чтобы вычислить ACF в частотный диапазон, затем преобразует назад в временной интервал с помощью обратного преобразования Фурье.

  • Если y не полностью соблюдается (то есть содержит хотя бы один NaN значение), autocorr вычисляет ACF в задержке k во временном интервале и включает в типовое среднее значение только те условия, для которых существует взаимный продукт <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> + k. Следовательно, эффективный размер выборки является случайной переменной.

  • autocorr строит график ACF, когда вы не запрашиваете никаких выходов или когда вы запрашиваете четвертый выход.

Ссылки

[1] Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление. 3-й эд. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1994.

[2] Гамильтон, Дж. Д. Анализ временных рядов. Princeton, NJ: Princeton University Press, 1994.

Представлено до R2006a