Ковариационная матрица

Ковариационная матрица и линейная трансформация

Ковариационная матрица

При рассмотрении метода главных компонент я не стал подробно останавливаться на том, в чем смысл связи корреляционной функции и линейного преобразования исходных данных. Сейчас пришло время вникнуть в это поподробнее. К тому же этот материал пригодится нам в будущем, когда будем рассматривать такой метод сверхразрешения, как MUSIC.

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

Начнем с формирования исходных данных.

Шум и ничего более

Будем работать с двумя массивами, или как любят говорить в линейной алгебре — векторами. Переменные x0 и x1 будут представлять из себя независимые друг от друга векторы с нормальным распределением со средним 0 и дисперсией равной единице.

Почему переменных будет именно две? Только по той причине, что двумерные распределения удобно смотреть на плоском графике

Источник: http://www.nazim.ru/1783

Нежное введение в ожидаемую стоимость, дисперсию и ковариацию с NumPy

Ковариационная матрица

Дата публикации 2018-02-28

Фундаментальная статистика — полезный инструмент в прикладном машинном обучении для лучшего понимания ваших данных.

Они также являются инструментами, которые обеспечивают основу для более продвинутых операций линейной алгебры и методов машинного обучения, таких как ковариационная матрица и анализ главных компонентов соответственно. Как таковой, важно иметь сильную власть над фундаментальной статистикой в ​​контексте обозначений линейной алгебры.

В этом руководстве вы узнаете, как работают основные статистические операции и как их реализовывать с использованием NumPy с обозначениями и терминологией из линейной алгебры.

После завершения этого урока вы узнаете:

  • Каковы ожидаемые значения, среднее значение и среднее значение и как их рассчитать.
  • Что такое дисперсия и стандартное отклонение и как их рассчитать.
  • Что такое ковариационная, корреляционная и ковариационная матрицы и как их вычислять.

Давайте начнем.

  • Обновлено март / 2018: Исправлена ​​небольшая опечатка в результате для примера с векторной дисперсией. Спасибо Боб.

Обзор учебника

Этот урок разделен на 4 части; они есть:

  1. Ожидаемое значение
  2. отклонение
  3. ковариации
  4. Ковариационная матрица

Ожидаемое значение

По вероятности, среднее значение некоторой случайной величины X называется ожидаемым значением или ожиданием.

Ожидаемое значение использует обозначение E в квадратных скобках вокруг имени переменной; например:

E[X]

Он рассчитывается как взвешенная по вероятности сумма значений, которые можно нарисовать.

E[X] = sum(x1 * p1, x2 * p2, x3 * p3, …, xn * pn)

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

E[X] = sum(x1, x2, x3, …, xn) . 1/n

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

В аннотации среднее значение обозначается строчной греческой буквой mu и рассчитывается по выборке наблюдений, а не по всем возможным значениям.

mu = sum(x1, x2, x3, …, xn) . 1/n

Или написано более компактно:

mu = sum(x . P(x))

Где x — вектор наблюдений, а P (x) — расчетная вероятность для каждого значения.

При вычислении для конкретной переменной, такой как x, среднее значение обозначается как имя переменной в нижнем регистре со строкой выше, называемой x-bar.

_ x = sum from 1 to n (xi) . 1/n

Среднее арифметическое можно рассчитать для вектора или матрицы в NumPy с помощью функции mean ().

В приведенном ниже примере определяется 6-элементный вектор и вычисляется среднее значение.

from numpy import array from numpy import mean v = array([1,2,3,4,5,6]) print(v) result = mean(v) print(result)

При запуске примера сначала печатается определенный вектор и среднее значение в векторе.

[1 2 3 4 5 6] 3.5

Функция среднего значения может вычислить средние значения строки или столбца матрицы, указав аргумент оси и значение 0 или 1 соответственно.

В приведенном ниже примере определяется матрица 2 × 6 и вычисляются средние значения столбца и строки.

from numpy import array from numpy import mean M = array([[1,2,3,4,5,6],[1,2,3,4,5,6]]) print(M) col_mean = mean(M, axis=0) print(col_mean) row_mean = mean(M, axis=1) print(row_mean)

При выполнении примера сначала печатается определенная матрица, затем вычисленные средние значения столбца и строки.

[[1 2 3 4 5 6] [1 2 3 4 5 6]] [ 1. 2. 3. 4. 5. 6.] [ 3.5 3.5]

отклонение

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

Дисперсия обозначается как функция Var () для переменной.

Var[X]

Дисперсия рассчитывается как среднеквадратическая разница каждого значения в распределении от ожидаемого значения. Или ожидаемое квадратичное отличие от ожидаемого значения.

Var[X] = E[(X — E[X])2]

Предполагая, что ожидаемое значение переменной было вычислено (E [X]), дисперсия случайной величины может быть рассчитана как сумма квадратов разности каждого примера от ожидаемого значения, умноженного на вероятность этого значения.

Var[X] = sum (p(x1) . (x1 — E[X])2, p(x2) . (x2 — E[X])2, …, p(x1) . (xn — E[X])2)

Если вероятность каждого примера в распределении равна, вычисление дисперсии может отбросить отдельные вероятности и умножить сумму квадратов разностей на обратную величину количества примеров в распределении.

Var[X] = sum ((x1 — E[X])2, (x2 — E[X])2, …,(xn — E[X])2) . 1/n

В статистике дисперсию можно оценить из выборки примеров, взятых из домена.

В реферате выборочная дисперсия обозначается сигмой в нижнем регистре с 2 верхними индексами, указывающими, что единицы возведены в квадрат, а не то, что вы должны возвести в квадрат окончательное значение. Сумма квадратов разностей умножается на обратную величину количества примеров минус 1, чтобы скорректировать смещение.

sigma2 = sum from 1 to n ( (xi — mu)2 ) . 1 / (n — 1)

В NumPy дисперсию можно рассчитать для вектора или матрицы с помощью функции var (). По умолчанию функция var () вычисляет дисперсию населения. Чтобы вычислить выборочную дисперсию, вы должны установить аргумент ddof в значение 1.

В приведенном ниже примере определяется 6-элементный вектор и вычисляется выборочная дисперсия.

from numpy import array from numpy import var v = array([1,2,3,4,5,6]) print(v) result = var(v, ddof=1) print(result)

При выполнении примера сначала печатается определенный вектор, а затем вычисленная выборочная дисперсия значений в векторе

[1 2 3 4 5 6] 3.5

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

В приведенном ниже примере определяется матрица 2 × 6 и рассчитывается выборочная дисперсия столбца и строки.

from numpy import array from numpy import var M = array([[1,2,3,4,5,6],[1,2,3,4,5,6]]) print(M) col_mean = var(M, ddof=1, axis=0) print(col_mean) row_mean = var(M, ddof=1, axis=1) print(row_mean)

При выполнении примера сначала печатается определенная матрица, а затем значения дисперсии выборки столбца и строки.

[[1 2 3 4 5 6] [1 2 3 4 5 6]] [ 0. 0. 0. 0. 0. 0.] [ 3.5 3.5]

Стандартное отклонение рассчитывается как квадратный корень из дисперсии и обозначается строчными буквами «s».

s = sqrt(sigma2)

Чтобы придерживаться этого обозначения, иногда дисперсия обозначается как s 2, где 2 — верхний индекс, снова показывая, что единицы возведены в квадрат.

NumPy также предоставляет функцию для вычисления стандартного отклонения напрямую через функцию std (). Как и в случае функции var (), аргумент ddof должен быть установлен в 1 для расчета стандартного отклонения несмещенной выборки, а стандартные отклонения столбца и строки можно рассчитать, установив аргумент оси в 0 и 1 соответственно.

В приведенном ниже примере показано, как рассчитать стандартное отклонение выборки для строк и столбцов матрицы.

from numpy import array from numpy import std M = array([[1,2,3,4,5,6],[1,2,3,4,5,6]]) print(M) col_mean = std(M, ddof=1, axis=0) print(col_mean) row_mean = std(M, ddof=1, axis=1) print(row_mean)

При выполнении примера сначала печатается определенная матрица, а затем значения стандартного отклонения выборки столбца и строки.

[[1 2 3 4 5 6] [1 2 3 4 5 6]] [ 0. 0. 0. 0. 0. 0.] [ 1.87082869 1.87082869]

ковариации

По вероятности ковариация является мерой совместной вероятности для двух случайных величин. Он описывает, как две переменные изменяются вместе.

Он обозначается как функция cov (X, Y), где X и Y — две рассматриваемые случайные величины.

cov(X,Y)

Ковариация рассчитывается как ожидаемое значение или среднее значение произведения разностей каждой случайной величины от их ожидаемых значений, где E [X] — ожидаемое значение для X, а E [Y] — ожидаемое значение y.

cov(X, Y) = E[(X — E[X] . (Y — E[Y])]

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

cov(X, Y) = sum (x — E[X]) * (y — E[Y]) * 1/n

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

cov(X, Y) = sum (x — E[X]) * (y — E[Y]) * 1/(n — 1)

Знак ковариации можно интерпретировать как то, увеличиваются ли две переменные вместе (положительно) или уменьшаются вместе (отрицательно). Величина ковариации не легко интерпретируется. Нулевое значение ковариации указывает, что обе переменные полностью независимы.

NumPy не имеет функции для вычисления ковариации между двумя переменными напрямую. Вместо этого у него есть функция для вычисления ковариационной матрицы с именем cov (), которую мы можем использовать для получения ковариации. По умолчанию функция cov () вычисляет несмещенную или выборочную ковариацию между предоставленными случайными величинами.

В приведенном ниже примере определены два вектора одинаковой длины с одним возрастающим и одним убывающим. Мы ожидаем, что ковариация между этими переменными будет отрицательной.

Мы получаем доступ только к ковариации для двух переменных, так как возвращается элемент [0,1] квадратной ковариационной матрицы.

from numpy import array from numpy import cov x = array([1,2,3,4,5,6,7,8,9]) print(x) y = array([9,8,7,6,5,4,3,2,1]) print(y) Sigma = cov(x,y)[0,1] print(Sigma)

При запуске примера сначала печатаются два вектора, за которыми следует ковариация значений в двух векторах. Значение является отрицательным, как мы и ожидали.

[1 2 3 4 5 6 7 8 9] [9 8 7 6 5 4 3 2 1] -7.5

Ковариация может быть нормализована до значения от -1 до 1, чтобы сделать величину интерпретируемой путем деления ее на стандартное отклонение X и Y. Результат называется корреляцией переменных, также называемой коэффициентом корреляции Пирсона, названным для разработчик метода.

r = cov(X, Y) / sX sY

Где r — коэффициент корреляции X и Y, cov (X, Y) — выборочная ковариация X и Y, а sX и sY — стандартные отклонения X и Y соответственно.

NumPy предоставляет функцию corrcoef () для непосредственного расчета корреляции между двумя переменными. Как и cov (), он возвращает матрицу, в данном случае корреляционную матрицу. Как и в случае результатов cov (), мы можем получить доступ только к корреляции интересов из значения [0,1] из возвращенной квадратной матрицы.

from numpy import array from numpy import corrcoef x = array([1,2,3,4,5,6,7,8,9]) print(x) y = array([9,8,7,6,5,4,3,2,1]) print(y) Sigma = corrcoef(x,y) print(Sigma)

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

[1 2 3 4 5 6 7 8 9] [9 8 7 6 5 4 3 2 1] -1.0

Ковариационная матрица

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

Диагональ ковариационной матрицы — это дисперсии каждой из случайных величин.

Ковариационная матрица является обобщением ковариации двух переменных и отражает то, как все переменные в наборе данных могут изменяться вместе.

Ковариационная матрица обозначается как заглавная греческая буква сигма. Ковариация для каждой пары случайных величин рассчитывается, как указано выше.

Sigma = E[(X — E[X] . (Y — E[Y])]

Куда:

Sigma(ij) = cov(Xi, Xj)

И X — это матрица, в которой каждый столбец представляет случайную величину.

Ковариационная матрица предоставляет полезный инструмент для разделения структурированных отношений в матрице случайных величин Это можно использовать для декорреляции переменных или применять в качестве преобразования к другим переменным. Это ключевой элемент, используемый в методе сокращения данных анализа основных компонентов, или сокращенно PCA.

Ковариационная матрица может быть рассчитана в NumPy с помощью функции cov (). По умолчанию эта функция рассчитывает выборочную ковариационную матрицу.

Функция cov () может быть вызвана с одной матрицей, содержащей столбцы, по которым нужно вычислить ковариационную матрицу, или двумя массивами, например, по одному для каждой переменной.

Ниже приведен пример, который определяет два 9-элементных вектора и вычисляет из них несмещенную ковариационную матрицу.

from numpy import array from numpy import cov x = array([1,2,3,4,5,6,7,8,9]) print(x) y = array([9,8,7,6,5,4,3,2,1]) print(y) Sigma = cov(x,y) print(Sigma)

При выполнении примера сначала печатаются два вектора, а затем вычисленная ковариационная матрица.

Значения массивов были придуманы таким образом, чтобы при увеличении одной переменной уменьшалась другая. Мы ожидаем увидеть отрицательный знак ковариации для этих двух переменных, и это то, что мы видим в ковариационной матрице.

[1 2 3 4 5 6 7 8 9] [9 8 7 6 5 4 3 2 1] [[ 7.5 -7.5] [-7.5 7.5]]

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

расширения

В этом разделе перечислены некоторые идеи по расширению учебника, которые вы, возможно, захотите изучить.

  • Изучите каждый пример, используя свои собственные маленькие надуманные данные.
  • Загрузите данные из файла CSV и примените каждую операцию к столбцам данных.
  • Напишите свои собственные функции для реализации каждой статистической операции.

Если вы исследуете какое-либо из этих расширений, я хотел бы знать.

Дальнейшее чтение

Этот раздел предоставляет больше ресурсов по теме, если вы хотите углубиться.

Резюме

В этом уроке вы узнали, как работают фундаментальные статистические операции и как их реализовать, используя NumPy с обозначениями и терминологией из линейной алгебры.

В частности, вы узнали:

  • Каковы ожидаемое значение, среднее значение и среднее значение и как рассчитать тогда.
  • Что такое дисперсия и стандартное отклонение и как их рассчитать.
  • Что такое ковариационная, корреляционная и ковариационная матрицы и как их вычислять.

Источник: https://www.machinelearningmastery.ru/introduction-to-expected-value-variance-and-covariance/

Глава 4.Моделирование случайных векторов

Ковариационная матрица

Случайный вектор- это упорядоченный набор (система)случайных величин. Ранее уже встречалисьнаборы независимых случайных величин.В этой главе рассматриваются системыслучайных величин, зависящих друг отдруга.

Примеры случайных векторов: вектор скорости зенитной ракеты,наводимой на цель, совершающейпротиворакетный маневр; вектор состоянияреальной атмосферы (температура,давление, плотность, влажность, направлениеи скорость ветра); вектор свойствконструкционного материала (плотность,временное сопротивление , модульупругости и пр.).

4.1. Ковариация

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

Слово ковариацияпроисходит от латинского co— вместе и variatio– изменение.

Здесь и далее нулемотмечены центрированные случайныевеличины.

Если Xи Y — непрерывные случайные величины, то

(4.1)

где — плотность совместного распределенияслучайных величин.

За характеристикулинейной зависимости между Xи Y применяется отношение ковариации кпроизведению средних квадратическихотклонений называемое коэффициентомкорреляции

Ковариация икоэффициент корреляции независимыхслучайных величин равны нулю. Если X= Y,то ЕслиX= —Y,то

Величина ковариацииобычно устанавливается опытным путем.Статистическая оценка ковариациинаходится по соотношениям

Обработка опытныхданных должна включать также оценкуточности определения ковариации.

4.2. Математическое ожидание и ковариационная матрица случайного вектора

Как правило, подвектором будем понимать матрицу-столбец

Учтем, чтоматематическое ожидание матрицы равноматрице, составленной из математическихожиданий ее элементов.

Ковариационнойматрицей случайного вектора называетсяматрица, составленная из дисперсий иковариаций проекций вектора.

(4.2)

Ковариационнаяматрица симметрична относительноглавной диагонали так как .Это означает, что.

4.3. Линейное преобразование случайного вектора

Из определенияматематического ожидания следует, что

Здесь A,B,C — неслучайныематрицы, структура которых допускаетприведенные операции сложения иумножения.

Для линейногопреобразования случайного вектора

справедливоследующее

Действительно

Последний результаточень важен и будет часто использоваться.

4.4. Собственные векторы ковариационной матрицы

Как следует из4.2, случайный вектор Xс mкомпонентами имеет квадратную исимметричную относительно главнойдиагонали ковариационную матрицуK порядка m.Вектор Zи переменная называются собственным вектором исобственным значением матрицы, еслиони удовлетворяют равенству

, (4.3)

из которого следует,что умножение собственного вектораслева на матрицу K изменяет его модуль, но не изменяетнаправления.

Перепишем приведенноеравенство в виде однородной системылинейных уравнений

(4.4)

Здесь E— единичная матрица порядка m. Отличное от нуля решение этой системысуществует только тогда, когда определительсистемы равен нулю.

Это уравнениестепени m относительно неизвестной .Оно называется характеристическимуравнением матрицы. Доказано, что еслиматрица вещественна и симметрична, товсе ееmкорней — вещественны и различны. Подстановкасобственных значений матрицы в исходнуюсистему уравнений (4.4) дает возможностьопределить собственные векторы

Собственные векторыортогональны, то есть

Для доказательстваэтого важного свойства составимпроизведение и раскроем его двумя различными способами,используя равенство (4.3). Во-первых,

Во-вторых,

Поскольку ,полученные выражения равны только приусловии ортогональности векторов.

Система (4.4) определяет лишь направление, но не длину(модуль) собственных векторов. Действительновектор W=CZ,отличающийся от собственного векторатолько длиной, также удовлетворяетравенству (4.4).

.

Поэтому будемсчитать, что модуль каждого собственноговектора равен единице

Образуем из векторовZквадратную матрицу Fпорядка m:

F(4.5)

Как установлено,столбцы этой матрицы, во-первых,ортогональны, а во-вторых, нормированы.

Установим еще односвойство матрицы F. Умножим матрицу Fслева на матрицу F транспонированную ираскроем произведение.

Такимобразом, транспонирование матрицы Fодновременно является операциейобращения:

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

Источник: https://studfile.net/preview/962469/

Все термины
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: