crosscorr

Перекрестная корреляция выборки

Описание

пример

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

пример

crosscorr(y1,y2,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера, crosscorr(y1,y2,'NumLags',10,'NumSTD',2) строит график выборки XCF y1 и y2 для 10 отстает и отображает доверительные границы, состоящие из 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 peaks с задержкой 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 содержит уникальные идентификаторы графика, которые можно использовать для запроса или изменения свойств графика.

Подробнее о

свернуть все

Функция перекрестной корреляции

cross-correlation function измеряет сходство между временными рядами и отстающей версиями других временных рядов как функцию задержки.

XCF начинается с оценки выборочной перекрестной ковариационной функции. Рассмотрим временные ряды y 1 t и y 2 t и лаги k = 0, ± 1, ± 2,.... Для пар данных (y 11, y 21), (y 12, y 22),..., (y1T, y2T), оценка задержки k перекрестной ковариации

cy1y2(k)={1Tt=1Tk(y1ty¯1)(y2,t+ky¯2);k=0,1,2,1Tt=1T+k(y2ty¯2)(y1,tky¯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] Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление. 3-й эд. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1994.

См. также

| |

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте