crosscorr

Демонстрационная взаимная корреляция

Синтаксис

crosscorr(y1,y2)
crosscorr(y1,y2,Name,Value)
xcf = crosscorr(___)
[xcf,lags,bounds] = crosscorr(___)
crosscorr(ax,___)
[xcf,lags,bounds,h] = 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®uses, чтобы вычислить 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)

bounds отображает верхние и более низкие доверительные границы, которые являются горизонтальными строками в графике XCF. Когда необходимо ожидать, peaks 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)

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 1t и y 2t, и изолирует 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] Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ timeseries: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

Смотрите также

| |

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