Оценка ковариационной матрицы с использованием Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

Введение

Оценка ковариации - это важнейший статистический метод для оценки ковариационной матрицы совокупности. Ковариационная матрица описывает взаимосвязь между переменными в наборе данных и может дать ценные сведения о форме точечного графика данных. В этом практическом занятии мы изучим различные методы оценки ковариационной матрицы с использованием пакета sklearn.covariance в Python.

Советы по работе с ВМ

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

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

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Эмпирическая ковариация

Эмпирическая ковариационная матрица - это широко используемый метод оценки ковариационной матрицы набора данных. Она основана на принципе максимального правдоподобия и предполагает, что наблюдения независимы и имеют одинаковое распределение (i.i.d.). Функция empirical_covariance из пакета sklearn.covariance может быть использована для вычисления эмпирической ковариационной матрицы заданного набора данных.

from sklearn.covariance import empirical_covariance

## Compute the empirical covariance matrix
covariance_matrix = empirical_covariance(data)

Сокращенная ковариация

Максимальный правдоподобие оцениватель, хотя и несмещенный, может не точно оценивать собственные значения ковариационной матрицы, что приводит к неточным результатам. Чтобы уменьшить этот недостаток, используется метод сжатия (shrinkage). Сжатие уменьшает соотношение между наименьшим и наибольшим собственными значениями эмпирической ковариационной матрицы, повышая точность оценки. В пакете sklearn.covariance есть класс ShrunkCovariance, который можно использовать для подгонки сжатого оценивателя под данные.

from sklearn.covariance import ShrunkCovariance

## Create a ShrunkCovariance object and fit it to the data
shrunk_estimator = ShrunkCovariance().fit(data)

## Compute the shrunk covariance matrix
shrunk_covariance_matrix = shrunk_estimator.covariance_

Сжатие Ледоита-Вольфа

Метод сжатия Ледоита-Вольфа позволяет получить оптимальный коэффициент сжатия, минимизирующий среднеквадратичную ошибку между оцененной и истинной ковариационной матрицами. В пакете sklearn.covariance есть функция ledoit_wolf, которая может быть использована для вычисления оценщика Ледоита-Вольфа для заданного набора данных.

from sklearn.covariance import ledoit_wolf

## Compute the Ledoit-Wolf estimator of the covariance matrix
ledoit_wolf_covariance_matrix = ledoit_wolf(data)[0]

Разреженная обратная ковариация

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

from sklearn.covariance import GraphicalLasso

## Create a GraphicalLasso object and fit it to the data
graphical_lasso = GraphicalLasso().fit(data)

## Compute the sparse inverse covariance matrix
sparse_inverse_covariance_matrix = graphical_lasso.precision_

Рустой (устойчивый) расчет ковариации

В реальных наборах данных часто есть выбросы или ошибки измерений, которые могут значительно повлиять на расчитанную ковариационную матрицу. Для обработки таких ситуаций можно использовать методы устойчивого (устойчивого) расчета ковариации, такие как минимальный детерминант ковариации (MCD). В пакете sklearn.covariance есть класс MinCovDet для вычисления оценки MCD.

from sklearn.covariance import MinCovDet

## Create a MinCovDet object and fit it to the data
min_cov_det = MinCovDet().fit(data)

## Compute the robust covariance matrix
robust_covariance_matrix = min_cov_det.covariance_

Резюме

Расчет ковариации - это фундаментальная статистическая техника, используемая для оценки ковариационной матрицы набора данных. В этом практическом занятии мы изучили различные методы расчета ковариации с использованием пакета sklearn.covariance в Python. Мы рассмотрели эмпирический расчет ковариации, методы сжатия, расчет разреженной обратной ковариации и устойчивый расчет ковариации. Важно выбирать подходящий метод в зависимости от характеристик набора данных и конкретных требований анализа.