はじめに
共分散推定は、母集団の共分散行列を推定するために使用される重要な統計手法です。共分散行列は、データセット内の変数間の関係を表し、データの散布図の形状に関する貴重な洞察を提供することができます。この実験では、Python のsklearn.covarianceパッケージを使用して共分散行列を推定するさまざまな方法を探ります。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
経験的共分散
経験的共分散行列は、データセットの共分散行列を推定するために一般的に使用される方法です。最大尤度推定の原理に基づいており、観測値が独立かつ同一分布(i.i.d.)であることを仮定しています。sklearn.covarianceパッケージのempirical_covariance関数を使用して、与えられたデータセットの経験的共分散行列を計算できます。
from sklearn.covariance import empirical_covariance
## Compute the empirical covariance matrix
covariance_matrix = empirical_covariance(data)
縮小共分散
最大尤度推定器は、不偏であるものの、共分散行列の固有値を正確に推定できない場合があり、結果が不正確になることがあります。この問題を軽減するために、縮小と呼ばれる手法が採用されます。縮小は、経験的共分散行列の最小固有値と最大固有値の比率を低下させ、推定の精度を向上させます。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パッケージには、l1 ペナルティを使用して疎な逆共分散行列を推定するためのGraphicalLassoクラスが含まれています。
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パッケージには、MCD 推定を計算するためのMinCovDetクラスが用意されています。
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_
まとめ
共分散推定は、データセットの共分散行列を推定するために使用される基本的な統計手法です。この実験では、Python のsklearn.covarianceパッケージを使用して、共分散推定の様々な方法を検討しました。経験的共分散推定、収縮手法、疎な逆共分散推定、およびロバストな共分散推定について説明しました。データセットの特性と分析の特定の要件に基づいて、適切な方法を選択することが重要です。