corrcoef
Коэффициенты корреляции.
| Библиотека |
|
Синтаксис
Вызов функции
-
R,P,RL,RU = corrcoef(A)— возвращает матрицуRкоэффициентов корреляции для матрицыA, где столбцы матрицыAпредставляют собой случайные переменные, а строки — измерения.Также возвращает матрицу p-значений
Pдля проверки гипотезы об отсутствии связи между наблюдаемыми явлениями (нулевая гипотеза). Если внедиагональный элемент матрицыPменьше уровня значимости (по умолчанию0.05), то соответствующая корреляция вRсчитается значимой.
-
___ = corrcoef(___, Name,Value)— задает дополнительные опции для любого из предыдущих синтаксисов одним или несколькими аргументамиName,Value.
Аргументы
Входные аргументы
#
A —
входной массив
матрица
Details
Входной массив, заданный как матрица.
-
Если
A— скаляр, то функцияcorrcoef(A)возвращаетNaN. -
Если
A— вектор, то функцияcorrcoef(A)возвращает1.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
B —
дополнительный входной массив
вектор | матрица | многомерный массив
Details
Дополнительный входной массив, заданный как вектор, матрица или многомерный массив.
-
AиBдолжны быть одинакового размера. -
Если
AиB— скаляры, тоcorrcoef(A,B)возвращает1. Однако еслиAиBравны, тоcorrcoef(A,B)возвращаетNaN. -
Если
AиB— матрицы или многомерные массивы, тоcorrcoef(A,B)преобразует каждый входной аргумент в его векторное представление. -
Если
AиB— пустые массивы0×0, тоcorrcoef(A,B)возвращает матрицу2×2со значениямиNaN.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Входные аргументы «имя-значение»
Укажите необязательные пары аргументов в формате Name, Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения.
Используйте запятые для разделения имени и значения, а Name заключите в кавычки.
Пример: R = corrcoef(A, "Alpha", 0.01).
#
Alpha —
уровень значимости
0.05 (по умолчанию) | скаляр в интервале (0, 1)
#
Rows —
использование значений NaN
"all" (по умолчанию) | "complete" | "pairwise"
Details
Использование значений NaN, заданное одним из следующих значений:
-
"all"— включить все значенияNaNво входные данные перед вычислением коэффициентов корреляции. -
"complete"— пропустить все строки входных данных, содержащие значенияNaN, перед вычислением коэффициентов корреляции. Эта опция всегда возвращает положительно полуопределенную матрицу. -
"pairwise"— пропустить все строки, содержащиеNaN, только попарно для каждого вычисления коэффициента корреляции в двух столбцах. Эта опция может вернуть матрицу, которая не является положительно полуопределенной.
Выходные аргументы
#
R —
коэффициенты корреляции
матрица
Details
Коэффициенты корреляции, возвращаемые в виде матрицы.
-
Для одной входной матрицы, матрица
Rимеет размер[size(A,2) size(A,2)], основанный на количестве случайных переменных (столбцов), представленных матрицейA. Диагональные элементы по соглашению равны единице, а внедиагональные элементы представляют собой коэффициенты корреляции пар переменных. Значения коэффициентов могут варьироваться от−1до1, где−1означает прямую отрицательную корреляцию,0— отсутствие корреляции, а1— прямую положительную корреляцию. МатрицаRсимметрична. -
Для двух входных матриц,
Rпредставляет собой матрицу2×2с единицами по диагонали и коэффициентами корреляции вне диагонали. -
Если какая-либо случайная переменная является константой, ее корреляция со всеми другими переменными не определена, и соответствующее значение строки и столбца равно
NaN.
#
P —
p-значения
матрица
Details
P-значения, возвращаемые в виде матрицы. Матрица P симметрична и имеет тот же размер, что и R. Все элементы на диагонали — единицы, а элементы вне диагонали — p-значения для каждой пары переменных. P-значения варьируются от 0 до 1, где значения, близкие к 0, соответствуют значимой корреляции в R и низкой вероятности подтверждения нулевой гипотезы.
#
RL —
нижняя граница для коэффициента корреляции
матрица
Details
Нижняя граница коэффициента корреляции, возвращаемая в виде матрицы. Матрица RL симметрична и имеет тот же размер, что и R. Все диагональные элементы — единицы, а недиагональные элементы представляют собой нижнюю границу 95% доверительного интервала для соответствующего коэффициента в R. Аргумент RL не возвращается, если R содержит комплексные значения.
#
RU —
верхняя граница для коэффициента корреляции
матрица
Details
Верхняя граница коэффициента корреляции, возвращаемая в виде матрицы. Матрица RU симметрична и имеет тот же размер, что и R. Все диагональные элементы — единицы, а недиагональные элементы представляют собой верхнюю границу 95% доверительного интервала для соответствующего коэффициента в R. Аргумент RU не возвращается, если R содержит комплексные значения.
Примеры
Случайные столбцы матрицы
Details
Вычислим коэффициенты корреляции для матрицы с двумя нормально распределенными случайными столбцами и одним столбцом, определенным через другой. Поскольку третий столбец матрицы A является кратным второму, эти две переменные напрямую коррелируют, следовательно, коэффициент корреляции в элементах (2,3) и (3,2) матрицы R равен 1.
import EngeeDSP.Functions: corrcoef, randn
x = randn(6,1)
y = randn(6,1)
A = [x y 2*y .+ 3]
R = corrcoef(A)[1]
3×3 Matrix{Float64}:
1.0 -0.322277 -0.322277
-0.322277 1.0 1.0
-0.322277 1.0 1.0
Две случайные переменные
Details
Вычислим матрицу коэффициентов корреляции между двумя нормально распределенными случайными векторами, каждый из которых содержит 10 измерений.
import EngeeDSP.Functions: corrcoef, randn
A = randn(10,1)
B = randn(10,1)
R = corrcoef(A,B)[1]
2×2 Matrix{Float64}:
1.0 0.193892
0.193892 1.0
Матрицы p-значений, верхних и нижних границ доверительного интервала
Details
Вычислим коэффициенты корреляции и p-значения нормально распределенной случайной матрицы с добавленным четвертым столбцом, равным сумме значений трех других столбцов. Поскольку последний столбец матрицы A представляет собой линейную комбинацию остальных, возникает корреляция между четвертой переменной и каждой из трех других переменных. Следовательно, четвертая строка и четвертый столбец матрицы P содержат очень малые p-значения, что указывает на наличие значимых корреляций.
import EngeeDSP.Functions: corrcoef, randn
A = randn(50,3)
A = hcat(A, sum(A, dims=2))
R,P,RU,RL=corrcoef(A)
Выведем матрицу R.
print("R:")
R
R:
4×4 Matrix{Float64}:
1.0 -0.0191831 -0.0562013 0.512678
-0.0191831 1.0 -0.252374 0.497031
-0.0562013 -0.252374 1.0 0.511839
0.512678 0.497031 0.511839 1.0
Выведем матрицу P p-значений.
print("P:")
P
P:
4×4 Matrix{Float64}:
1.0 0.894805 0.698269 0.000140925
0.894805 1.0 0.0770341 0.000240879
0.698269 0.0770341 1.0 0.000145133
0.000140925 0.000240879 0.000145133 1.0
Выведем матрицы RL и RU нижних и верхних границ коэффициентов.
print("RL:")
RL
RL:
4×4 Matrix{Float64}:
1.0 -0.295951 -0.329396 0.273336
-0.295951 1.0 -0.495887 0.253795
-0.329396 -0.495887 1.0 0.272283
0.273336 0.253795 0.272283 1.0
print("RU:")
RU
RU:
4×4 Matrix{Float64}:
1.0 0.260556 0.225677 0.692241
0.260556 1.0 0.0279365 0.681144
0.225677 0.0279365 1.0 0.691648
0.692241 0.681144 0.691648 1.0
Значения NaN
Details
Создадим нормально распределенную матрицу, содержащую значения NaN, и вычислим матрицу коэффициентов корреляции, исключив все строки, содержащие NaN.
import EngeeDSP.Functions: corrcoef, randn
A = randn(5, 3)
A[1, 3] = NaN
A[3, 2] = NaN
A
5×3 Matrix{Float64}:
0.194551 1.40891 NaN
0.279785 -0.534099 -0.792337
0.0512203 NaN -0.952975
-0.774466 -0.176248 0.353905
0.786782 -0.24375 1.59703
R = corrcoef(A,"Rows","complete")[1]
3×3 Matrix{Float64}:
1.0 -0.369186 0.340384
-0.369186 1.0 0.748195
0.340384 0.748195 1.0
Используем опцию "all", чтобы включить все значения NaN в расчет.
R = corrcoef(A,"Rows","all")[1]
3×3 Matrix{Float64}:
1.0 NaN NaN
NaN NaN NaN
NaN NaN NaN
Используем опцию "pairwise" для попарного вычисления коэффициента корреляции для каждого столбца. Если один из столбцов содержит значение NaN, эта строка будет пропущена.
R = corrcoef(A,"Rows","pairwise")[1]
3×3 Matrix{Float64}:
1.0 0.00819072 0.300542
0.00819072 1.0 0.748195
0.300542 0.748195 1.0
Дополнительно
Коэффициент корреляции
Details
Коэффициент корреляции двух случайных величин является мерой их линейной зависимости. Если каждая переменная имеет скалярных измерений, то коэффициент корреляции Пирсона определяется как
где
-
и — среднее значение и стандартное отклонение ;
-
и — среднее значение и стандартное отклонение .
В качестве альтернативы, коэффициент корреляции можно определить через ковариацию и :
Матрица коэффициентов корреляции двух случайных величин — это матрица коэффициентов корреляции для каждой попарной комбинации переменных:
Поскольку и всегда напрямую коррелируют сами с собой, элементы по диагонали равны 1, то есть