exponenta event banner

canoncorr

Каноническая корреляция

Описание

[A,B] = canoncorr(X,Y) вычисляет выборку канонических коэффициентов для матриц данных X и Y.

[A,B,r] = canoncorr(X,Y) также возвращает r, вектор выборки канонических корреляций.

пример

[A,B,r,U,V] = canoncorr(X,Y) также возвращает U и V, матрицы канонических баллов для X и Yсоответственно.

[A,B,r,U,V,stats] = canoncorr(X,Y) также возвращает statsструктура, содержащая информацию, относящуюся к проверке последовательности гипотез о том, что все оставшиеся корреляции равны нулю.

Примеры

свернуть все

Выполнение канонического корреляционного анализа для выборочного набора данных.

Набор данных carbig содержит измерения для 406 автомобилей с 1970 по 1982 годы.

Загрузите образцы данных.

load carbig;
data = [Displacement Horsepower Weight Acceleration MPG];

Определите X как матрицу измерений смещения, лошадиных сил и веса, и Y в качестве матрицы ускорений и наблюдений MPG. Опустить строки с недостаточным количеством данных.

nans = sum(isnan(data),2) > 0;
X = data(~nans,1:3);
Y = data(~nans,4:5);

Вычислите выборку канонической корреляции.

[A,B,r,U,V] = canoncorr(X,Y);

Просмотр выходных данных A для определения линейных комбинаций смещения, лошадиных сил и веса, составляющих канонические переменные X.

A
A = 3×2

    0.0025    0.0048
    0.0202    0.0409
   -0.0000   -0.0027

A(3,1) отображается как —0.000 потому что он очень маленький. Показ A(3,1) отдельно.

A(3,1)
ans = -2.4737e-05

Первая каноническая переменная X является u1 = 0.0025*Disp + 0.0202*HP — 0.000025*Wgt.

Вторая каноническая переменная X является u2 = 0.0048*Disp + 0.0409*HP — 0.0027*Wgt.

Просмотр выходных данных B для определения линейных комбинаций ускорения и MPG, составляющих канонические переменные Y.

B
B = 2×2

   -0.1666   -0.3637
   -0.0916    0.1078

Первая каноническая переменная Y является v1 = 0.1666*Accel — 0.0916*MPG.

Вторая каноническая переменная Y является v2 = —0.3637*Accel + 0.1078*MPG.

Постройте график оценок канонических переменных X и Y друг против друга.

t = tiledlayout(2,2);
title(t,'Canonical Scores of X vs Canonical Scores of Y')
xlabel(t,'Canonical Variables of X')
ylabel(t,'Canonical Variables of Y')
t.TileSpacing = 'compact';

nexttile
plot(U(:,1),V(:,1),'.')
xlabel('u1')
ylabel('v1')

nexttile
plot(U(:,2),V(:,1),'.')
xlabel('u2')
ylabel('v1')

nexttile
plot(U(:,1),V(:,2),'.')
xlabel('u1')
ylabel('v2')

nexttile
plot(U(:,2),V(:,2),'.')
xlabel('u2')
ylabel('v2')

Figure contains 4 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line. Axes 3 contains an object of type line. Axes 4 contains an object of type line.

Пары канонических переменных {ui, vi} упорядочены от самой сильной к самой слабой корреляции, при этом все остальные пары независимы.

Возвращает коэффициент корреляции переменных u1 и v1.

r(1)
ans = 0.8782

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

свернуть все

Входная матрица, заданная как матрица n-by-d1. Строки X соответствуют наблюдениям, а столбцы - переменным.

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

Входная матрица, заданная как матрица n-by-d2, где X является матрицей n-by-d1. Строки Y соответствуют наблюдениям, а столбцы - переменным.

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

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

свернуть все

Образец канонических коэффициентов для переменных в X, возвращается в виде матрицы d1 на d, где d = min (ранг (X), ранг (Y)).

j-й столбец A содержит линейную комбинацию переменных, которая составляет j-ю каноническую переменную для X.

Если X менее полного ранга, canoncorr выдает предупреждение и возвращает нули в строках A соответствующие зависимым столбцам X.

Образец канонических коэффициентов для переменных в Y, возвращается в виде матрицы d2 на d, где d = min (ранг (X), ранг (Y)).

j-й столбец B содержит линейную комбинацию переменных, которая составляет j-ю каноническую переменную для Y.

Если Y менее полного ранга, canoncorr выдает предупреждение и возвращает нули в строках B соответствующие зависимым столбцам Y.

Выборка канонических корреляций, возвращаемых в виде вектора 1 на d, где d = min (ранг (X), ранг (Y)).

j-й элемент r - корреляция между j-ми столбцами U и V.

Канонические оценки для переменных в X, возвращается в виде матрицы n-за-d, где X является матрицей n-by-d1 и d = min (ранг (X), ранг (Y)).

Канонические оценки для переменных в Y, возвращается в виде матрицы n-за-d, где Y является матрицей n-by-d2 и d = min (ранг (X), ранг (Y)).

Информация проверки гипотез, возвращенная как структура. Эта информация относится к последовательности нулевых гипотез H0 (k), что корреляции (k + 1) st-dth равны нулю для k = 1,..., d-1 и d = min (ранг (X), ранг (Y)).

Поля stats представляют собой векторы 1 на d с элементами, соответствующими значениям k.

ОбластьОписание
Wilks

Лямбда-статистика Уилкса (отношение правдоподобия)

df1

Степени свободы для статистики хи-квадрат и степени свободы числителя для статистики F

df2

Степени свободы знаменателя для статистики F

F

Приблизительная статистика Rao F для H0 (k)

pF

Уровень значимости правого хвоста для F

chisq

Приблизительная статистика хи-квадрата Бартлетта для H0 (k) с модификацией Лоули

pChisq

Уровень значимости правого хвоста для chisq

stats имеет два других поля (dfe и p), которые равны df1 и pChisq, соответственно, и существуют по историческим причинам.

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

Подробнее

свернуть все

Канонический корреляционный анализ

Канонические оценки матриц X и Y данных определяются как

Ui = XaiVi = Ybi

где ai и bi максимизируют коэффициент корреляции Пирсона (Ui, Vi) при условии, что он не коррелирует со всеми предыдущими каноническими показателями и масштабируется так, чтобы Ui и Vi имели нулевое среднее и единичную дисперсию.

Канонические коэффициенты X и Y представляют собой матрицы A и B со столбцами ai и bi соответственно.

Канонические переменные X и Y - это линейные комбинации столбцов X и Y, задаваемые каноническими коэффициентами в A и B соответственно.

Каноническими корреляциями являются значения start( Ui, Vi), измеряющие корреляцию каждой пары канонических переменных X и Y.

Алгоритмы

canoncorr вычисляет A, B, и r использование qr и svd. canoncorr вычисляет U и V как U = (X—mean(X))*A и V = (Y—mean(Y))*B.

Ссылки

[1] Кржановский, В. Дж. Принципы многомерного анализа: перспектива пользователя. Нью-Йорк: Oxford University Press, 1988.

[2] Себер, Г. А. Ф. Многомерные наблюдения. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 1984.

См. также

|

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