corr

Линейная или ранговая корреляция

Описание

rho = corr(X) возвращает матрицу парного коэффициента линейной корреляции между каждой парой столбцов в матрице входа X.

пример

rho = corr(X,Y) возвращает матрицу парного коэффициента корреляции между каждой парой столбцов в вход матрицах X и Y.

пример

[rho,pval] = corr(X,Y) также возвращается pval, матрица p значений для проверки гипотезы об отсутствии корреляции с альтернативной гипотезой ненулевой корреляции .

пример

[rho,pval] = corr(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Для примера, 'Type','Kendall' задает вычисление коэффициента тау-корреляции Кендалла.

Примеры

свернуть все

Найдите корреляцию между двумя матрицами и сравните ее с корреляцией между два векторов-столбцов.

Сгенерируйте выборочные данные.

rng('default')
X = randn(30,4);
Y = randn(30,4);

Введите корреляцию между столбцом 2 матрицы X и столбец четвертый матрицы Y.

Y(:,4) = Y(:,4)+X(:,2);

Вычислим корреляцию между столбцами X и Y.

[rho,pval] = corr(X,Y)
rho = 4×4

   -0.1686   -0.0363    0.2278    0.3245
    0.3022    0.0332   -0.0866    0.7653
   -0.3632   -0.0987   -0.0200   -0.3693
   -0.1365   -0.1804    0.0853    0.0279

pval = 4×4

    0.3731    0.8489    0.2260    0.0802
    0.1045    0.8619    0.6491    0.0000
    0.0485    0.6039    0.9166    0.0446
    0.4721    0.3400    0.6539    0.8837

Как ожидалось, коэффициент корреляции между столбцом 2 X и столбец четвертый Y, rho(2,4), является самым высоким, и это представляет высокую положительную корреляцию между двумя столбцами. Соответствующее значение p, pval(2,4), равен нулю до четырех цифр, показанных на рисунке. Потому что p-значение меньше, чем уровень значимости 0.05, это указывает на отказ от гипотезы об отсутствии корреляции между этими двумя столбцами.

Вычислим корреляцию между X и Y использование corrcoef.

[r,p] = corrcoef(X,Y)
r = 2×2

    1.0000   -0.0329
   -0.0329    1.0000

p = 2×2

    1.0000    0.7213
    0.7213    1.0000

Функция MATLAB ® corrcoef, в отличие от corr function, преобразует входные матрицы X и Y в векторы-столбцы, X(:) и Y(:), перед вычислением корреляции между ними. Поэтому введение корреляции между столбцом 2 матрицы X и столбец четвертый матричных Y больше не существует, поскольку эти два столбца находятся в разных разделах преобразованных векторов-столбцов.

Значение недиагональных элементов r, который представляет коэффициент корреляции между X и Y, низкая. Это значение почти не указывает на корреляцию между X и Y. Точно так же значение off-диагональных элементов p, который представляет значение p, намного выше уровня значимости 0.05. Это значение указывает, что недостаточно доказательств, чтобы отклонить гипотезу об отсутствии корреляции между X и Y.

Проверьте альтернативные гипотезы на положительную, отрицательную и ненулевую корреляцию между столбцами двух матриц. Сравните значения коэффициента корреляции и p-значения в каждом случае.

Сгенерируйте выборочные данные.

rng('default')
X = randn(50,4);
Y = randn(50,4);

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

Y(:,4) = Y(:,4)+0.7*X(:,1);

Введите отрицательную корреляцию между столбцом 2 X и во втором столбце Y.

Y(:,2) = Y(:,2)-2*X(:,2);

Протестируйте альтернативную гипотезу о том, что корреляция больше нуля.

[rho,pval] = corr(X,Y,'Tail','right')
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.3327    0.8405    0.5097    0.0000
    0.7962    1.0000    0.6192    0.0836
    0.7803    0.0615    0.9927    0.2298
    0.9940    0.9397    0.2398    0.3982

Как ожидалось, коэффициент корреляции между столбцом один из X и столбец четвертый Y, rho(1,4), имеет наивысшее положительное значение, представляющее высокую положительную корреляцию между этими двумя столбцами. Соответствующее значение p, pval(1,4), равен нулю до четырех цифр, показанных, что ниже уровня значимости 0.05. Эти результаты указывают на отказ от нулевой гипотезы об отсутствии корреляции между двумя столбцами и приводят к выводу, что корреляция больше нуля.

Протестируйте альтернативную гипотезу, что корреляция меньше нуля.

[rho,pval] = corr(X,Y,'Tail','left')
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.6673    0.1595    0.4903    1.0000
    0.2038    0.0000    0.3808    0.9164
    0.2197    0.9385    0.0073    0.7702
    0.0060    0.0603    0.7602    0.6018

Как ожидалось, коэффициент корреляции между столбцом 2 X и во втором столбце Y, rho(2,2), имеет отрицательное число с наибольшим абсолютным значением (-0.86), представляющий высокую отрицательную корреляцию между этими двумя столбцами. Соответствующее значение p, pval(2,2), равен нулю до четырех цифр, показанных, что ниже уровня значимости 0.05. Снова эти результаты указывают на отказ от нулевой гипотезы и приводят к выводу, что корреляция меньше нуля.

Протестируйте альтернативную гипотезу, что корреляция не равна нулю.

[rho,pval] = corr(X,Y)
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.6654    0.3190    0.9807    0.0000
    0.4075    0.0000    0.7615    0.1673
    0.4393    0.1231    0.0147    0.4595
    0.0120    0.1206    0.4797    0.7964

Значения p, pval(1,4) и pval(2,2), являются обеими от нуля до четырех цифр, показанных на рисунке. Потому что значения p ниже, чем уровень значимости 0.05, коэффициенты корреляции rho(1,4) и rho(2,2) значительно отличаются от нуля. Поэтому нулевая гипотеза отвергается; корреляция не равна нулю.

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

свернуть все

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

Пример: X = randn(10,5)

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

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

Пример: Y = randn(20,7)

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: corr(X,Y,'Type','Kendall','Rows','complete') возвращает коэффициент tau корреляции Кендалла, используя только те строки, которые не содержат отсутствующих значений.

Тип корреляции, заданный как разделенная разделенными запятой парами, состоящая из 'Type' и одно из этих значений.

corr вычисляет p -значения для корреляции Пирсона, используя распределение t Стьюдента для преобразования корреляции. Эта корреляция точна, когда X и Y происходит из нормального распределения. corr вычисляет p -значения для тау Кендалла и ро Спирмана, используя либо точные распределения сочетаний (для небольших размеров выборки), либо приближения с большой выборкой.

Пример: 'Type','Spearman'

Строки для использования в расчетах, заданные как разделенная разделенными запятой парами, состоящая из 'Rows' и одно из этих значений.

ЗначениеОписание
'all'Используйте все строки входов независимо от отсутствующих значений (NaNс).
'complete'Используйте только строки входов без отсутствующих значений.
'pairwise'Вычислите rho(i,j) использование строк без отсутствующих значений в столбце i или j.

The 'complete' значение, в отличие от 'pairwise' значение, всегда приводит к положительному определенному или положительному полуопределенному rho. Кроме того, 'complete' значение обычно использует меньше наблюдений для оценки rho когда строки входа (X или Y) содержат отсутствующие значения.

Пример: 'Rows','pairwise'

Альтернативная гипотеза, заданная как разделенная разделенными запятой парами, состоящая из 'Tail' и одно из значений в таблице. 'Tail' задает альтернативную гипотезу, по которой можно вычислить p значения для проверки гипотезы об отсутствии корреляции.

ЗначениеОписание
'both'Протестируйте альтернативную гипотезу о том, что корреляция не 0.
'right'Протестируйте альтернативную гипотезу о том, что корреляция больше 0
'left'Протестируйте альтернативную гипотезу о том, что корреляция меньше 0.

corr вычисляет p значения для двуххвостого теста путем удвоения более значимых из двух однохвостых p значений.

Пример: 'Tail','left'

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

свернуть все

Парный коэффициент линейной корреляции, возвращенный как матрица.

  • Если вы вводите только матрицу X, rho - симметричная k -by- k матрица, где k - количество столбцов в X. Введите rho(a,b) - парный коэффициент линейной корреляции между a столбца и b столбца в X.

  • Если вы вводите матрицы X и Y, rho является k матрицей 1-by- k 2, где k 1 и k 2 - количество столбцов в X и Y, соответственно. Введите rho(a,b) - парный коэффициент линейной корреляции между столбцом a в X и столбец, b в Y.

p - значения, возвращенные как матрица. Каждый элемент pval - p -значение для соответствующего элемента rho.

Если pval(a,b) является маленьким (меньше 0.05), затем корреляция rho(a,b) значительно отличается от нуля.

Подробнее о

свернуть все

Коэффициент линейной корреляции Пирсона

Коэффициент линейной корреляции Пирсона является наиболее часто используемым коэффициентом линейной корреляции. Для столбцов, Xa в матрице X и Yb столбцов в матрице Y, со средствами X¯a=i=1n(Xa,i)/n, и Y¯b=j=1n(Xb,j)/n, коэффициент линейной корреляции Пирсона rho(a,b) определяется как:

rho(a,b)=i=1n(Xa,iX¯a)(Yb,iY¯b){i=1n(Xa,iX¯a)2j=1n(Yb,jY¯b)2}1/2,

где n - длина каждого столбца.

Значения коэффициента корреляции могут варьироваться от –1 на +1. Значение –1 указывает на совершенную отрицательную корреляцию, в то время как значение +1 указывает на совершенную положительную корреляцию. Значение 0 указывает на отсутствие корреляции между столбцами.

Коэффициент Тау Кендалла

Тау Кендалла основан на подсчёте количества (i,j) пар, для i<j, которые являются конкордантными - то есть для которыхXa,iXa,j и Yb,iYb,j иметь тот же знак. Уравнение для тау Кендалла включает регулировку для связей в нормализующей константе и часто упоминается как тау-b.

Для Xa столбца в матрице X и Yb столбца в матрице Y, коэффициент тау Кендалла определяется как:

τ=2Kn(n1),

где K=i=1n1j=i+1nξ*(Xa,i,Xa,j,Yb,i,Yb,j), и

ξ*(Xa,i,Xa,j,Yb,i,Yb,j)={1если(Xa,iXa,j)(Yb,iYb,j)>00если(Xa,iXa,j)(Yb,iYb,j)=01если(Xa,iXa,j)(Yb,iYb,j)<0.

Значения коэффициента корреляции могут варьироваться от –1 на +1. Значение –1 указывает, что один рейтинг столбца является обратным другому, в то время как значение +1 указывает, что два рейтинга совпадают. Значение 0 указывает на отсутствие связи между столбцами.

Ро Спирмана

Ро Спирмана эквивалентно Линейному Коэффициенту Корреляции Пирсона, применяемому к рейтингам столбцов Xa и Yb.

Если все ранги в каждом столбце различны, уравнение упрощает:

rho(a,b)=16d2n(n21),

где d - различие между рангами двух столбцов, и n - длина каждого столбца.

Совет

Переменное различие между corr(X,Y) и MATLAB® функциональные corrcoef(X,Y) является ли это corrcoef(X,Y) возвращает матрицу коэффициентов корреляции для двух векторов-столбцов X и Y. Если X и Y не векторы-столбцы, corrcoef(X,Y) преобразует их в векторы-столбцы.

Ссылки

[1] Гиббонс, Джей Ди. Непараметрический статистический вывод. 2-й эд. М. Деккер, 1985.

[2] Холландер, М. и Д. А. Вульф. Непараметрические статистические методы. Уайли, 1973.

[3] Кендалл, M.G. Ранг Методы Корреляции. Гриффин, 1970.

[4] Best, D.J., and D.E. Roberts. Алгоритм AS 89: Вероятности верхнего хвоста ро Спирмана. Прикладная статистика, 24: 377-379.

Расширенные возможности

См. также

| | |

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