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. Когда необходимо ожидать, 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)

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

Постройте 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 имя аргумента и 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 (T1t2 ) – 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. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

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

| |

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

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