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 -by- d матрица, где d = min (ранг (X), ранг (Y)).

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

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

Выборка канонических коэффициентов для переменных в Y, возвращается как d2 -by- 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 -by- d матрица, где X является n -by- d1 матрицей и d = min (ранг (X), ранг (Y)).

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

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

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

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

Лямбда Вилкса (отношение вероятностей) статистическая

df1

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

df2

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

F

Приблизительная статистическая F Рао H0(k)

pF

Правый уровень значимости для F

chisq

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

pChisq

Правый уровень значимости для chisq

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

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

Подробнее о

свернуть все

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

Канонические счета матриц данных X и Y заданы как

Ui=XaiVi=Ybi

где a i и b я максимизирую коэффициент корреляции Пирсона (U i, V i) при условии некоррелированности со всеми предыдущими каноническими оценками и масштабирования так, чтобы U i и V i имели нулевую среднюю и единичную дисперсию.

Канонические коэффициенты X и Y являются матрицами A и B с столбцами a i и b i, соответственно.

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

Каноническими корреляциями являются значения и (U i, V i), измеряющие корреляцию каждой пары канонических переменных 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] Себер, Г. А. Ф. Многомерные наблюдения. Hoboken, NJ: John Wiley & Sons, Inc., 1984.

См. также

|

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