Python で多変量正規性テストを実行する方法
単一の変数が正規分布しているかどうかをテストしたい場合は、次のように作成できます。 QQ プロットで分布を視覚化することも、 アンダーソン ダーリング テストやハルケ ベラ テストなどの正式な統計テストを実行することもできます。
ただし、複数の変数がグループとして正規分布しているかどうかをテストしたい場合は、多変量正規性テストを実行する必要があります。
このチュートリアルでは、Python で特定のデータセットに対して Henze-Zirkler 多変量正規性テストを実行する方法を説明します。
関連:多変量コンテキストで外れ値を特定したい場合は、 マハラノビス距離を使用できます。
例: Python での Henze-Zirkler 多変量正規性テスト
Henze-Zirkler 多変量正規性検定は、変数のグループが多変量正規分布に従うかどうかを判定します。検定の帰無仮説と対立仮説は次のとおりです。
H 0 (null): 変数は多変量正規分布に従います。
H a (代替): 変数は多変量正規分布に従いません。
このテストを Python で実行するには、ペンギン ライブラリのmultivariate_normality()関数を使用できます。
まず、ペンギンをインストールする必要があります。
pip install penguin
次に、 multivariate_normality()関数をインポートし、それを使用して、特定のデータセットに対して多変量正規性テストを実行できます。
#import necessary packages from penguin import multivariate_normality import pandas as pd import numpy as np #create a dataset with three variables x1, x2, and x3 df = pd.DataFrame({'x1':np.random.normal(size= 50 ), 'x2': np.random.normal(size= 50 ), 'x3': np.random.normal(size= 50 )}) #perform the Henze-Zirkler Multivariate Normality Test multivariate_normality(df, alpha= .05 ) HZResults(hz=0.5956866563391165, pval=0.6461804077893423, normal=True)
テスト結果は次のとおりです。
- 検定統計量 Hz: 0.59569
- p値: 0.64618
検定の p 値は指定したアルファ値 0.05 以上であるため、帰無仮説を棄却できません。データセットは多変量正規分布に従うと仮定できます。
関連: Henze-Zirkler テストが実際の医療アプリケーションでどのように使用されているかについては、 この研究論文をご覧ください。