exponenta event banner

crosscorr

Выборочная взаимная корреляция

Описание

пример

crosscorr(y1,y2) строит график функции взаимной корреляции (XCF) между двумя одномерными стохастическими временными рядами y1 и y2 с доверительными границами.

пример

crosscorr(y1,y2,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, crosscorr(y1,y2,'NumLags',10,'NumSTD',2) строит график выборки XCF y1 и y2 для 10 lags и отображает доверительные границы, состоящие из 2 стандартные ошибки.

пример

xcf = crosscorr(___) возвращает образец XCF y1 и y2 с использованием любого из входных аргументов в предыдущих синтаксисах.

пример

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

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

[xcf,lags,bounds,h] = crosscorr(___) строит график выборки XCF y1 и y2и дополнительно возвращает маркеры перемещения к графическим объектам, выводимым на печать. Использовать элементы h для изменения свойств графика после его создания.

Примеры

свернуть все

Генерировать 100 случайных отклонений от гауссова распределения со средним значением 0 и дисперсией 1.

rng(1); % For reproducibility
x = randn(100,1);

Создание 4-периодной отложенной версии x.

y = lagmatrix(x,4);

Вычислите и постройте график XCF.

y(isnan(y)) = 0; % crosscorr does not accept NaNs
[XCF,lags,bounds] = crosscorr(x,y);
bounds
bounds = 2×1

    0.2000
   -0.2000

crosscorr(x,y)

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

bounds отображает верхнюю и нижнюю доверительные границы, которые являются горизонтальными линиями на графике XCF. Как и следовало ожидать, XCF пики при запаздывании 4.

Укажите модель AR (1) для первой серии:

y1t = 2 + 0 .3y1t-1 + αt,

где αt - гауссов со средним значением 0 и дисперсией 1.

MdlY1 = arima('AR',0.3,'Constant',2,'Variance',1);

Моделирование данных из Mdl.

rng(1);
T = 1000;
y1 = simulate(MdlY1,T);

Моделирование данных для второй серии путем индуцирования корреляции на запаздывании 36.

y2 = [randn(36,1);y1(1:end-36)+randn(T-36,1)*0.1];

Постройте график XCF с использованием настроек по умолчанию.

figure
crosscorr(y1,y2,'NumSTD',3)

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

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

Постройте график XCF для 60 лагов на каждой стороне запаздывания 0.

figure
crosscorr(y1,y2,'NumLags',60,'NumSTD',3)

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

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

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

свернуть все

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

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

Второй наблюдаемый одномерный временной ряд, для которого MATLAB оценивает или строит график XCF, указанный как числовой вектор. Последний элемент y2 содержит последнее наблюдение.

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

Оси для печати, указанные как Axes объект.

По умолчанию crosscorr графики к текущим осям (gca).

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

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

Пример: crosscorr(y1,y2,'NumLags',10,'NumSTD',2) строит график выборочной взаимной корреляции между y1 и y2 для лагов -10 кому 10 и отображает доверительные границы, состоящие из 2 стандартные ошибки.

Количество лагов в образце XCF, указанное как пара, разделенная запятыми, состоящая из 'NumLags' и положительное целое число. crosscorr использует задержки 0, ± 1, ± 2,..., ±NumLags для оценки XCF.

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

Пример: crosscorr(y,'NumLags',10) строит график выборки XCF y1 и y2 для лагов – 10 через 10.

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

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

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

Пример: crosscorr(y,'NumSTD',1.5) строит график XCF y1 и y2 с доверительными границами 1.5 стандартные ошибки за пределами 0.

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

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

свернуть все

Выборка XCF между одномерными временными рядами y1 и y2, возвращается в виде числового вектора длины 2*NumLags + 1.

Элементы xcf соответствуют элементам lags. Центральным элементом является взаимная корреляция с запаздыванием 0.

Запаздывающие числа, используемые для оценки XCF, возвращаемые в виде числового вектора (-NumLags):NumLags имеющие ту же ориентацию, что и y1.

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

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

Подробнее

свернуть все

Функция взаимной корреляции

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

XCF начинается с оценки функции перекрестной ковариации образца. Рассмотрим временные ряды y1t и y2t и задержки k = 0, ± 1, ± 2,.... Для пар данных (y11, y21), (y12, y22),..., (y1T, y2T) оценка запаздывания k перекрестной ковариации равна

cy1y2 (k) ={1T∑t=1T−k (y1t y _ 1) (y2, t + k y _ 2); k = 0,1,2,... 1T∑t=1T+k (y2t y _ 2) (y1, t − k − y _ 1); k = 0, − 1, − 2,...,

где y 1 и y 2 - средства выборки ряда.

Типовыми стандартными отклонениями серии являются:

  • sy1 = cy1y1 (0), где cy1y1 (0) = Var (y1).

  • sy2 = cy2y2 (0), где cy2y2 (0) = Var (y2).

Оценка взаимной корреляции

ry1y2 (k) = cy1y2 (k) sy1sy2; k = 0, ± 1, ± 2,....

Алгоритмы

  • Если y1 и y2 имеют разную длину, то MATLAB добавляет достаточно нулей к концу более короткого вектора, чтобы оба вектора имели одинаковый размер.

  • crosscorr использует преобразование Фурье для вычисления XCF в частотной области, затем преобразует обратно во временную область с помощью обратного преобразования Фурье.

  • crosscorr отображает XCF при отсутствии запроса на вывод или при запросе четвертого вывода.

Ссылки

[1] Бокс, Г. Э. П., Г. М. Дженкинс и Г. К. Рейнсель. Анализ временных рядов: прогнозирование и контроль. 3-й ред. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1994.

См. также

| |

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