Python에서 다변량 정규성 테스트를 수행하는 방법
단일 변수가 정규 분포인지 여부를 테스트하려는 경우 다음을 만들 수 있습니다. QQ 플롯을 사용하여 분포를 시각화하거나 Anderson Darling 테스트 또는 Jarque-Bera 테스트 와 같은 공식적인 통계 테스트를 수행할 수 있습니다 .
그러나 여러 변수가 그룹으로 정규 분포되어 있는지 테스트하려면 다변량 정규성 테스트를 수행해야 합니다.
이 튜토리얼에서는 Python에서 주어진 데이터 세트에 대해 Henze-Zirkler 다변량 정규성 테스트를 수행하는 방법을 설명합니다.
관련 항목: 다변수 컨텍스트에서 이상값을 식별하려면 Mahalanobis 거리를 사용할 수 있습니다 .
예: Python의 Henze-Zirkler 다변량 정규성 테스트
Henze-Zirkler 다변량 정규성 검정은 변수 그룹이 다변량 정규 분포를 따르는지 여부를 확인합니다. 검정의 귀무가설과 대립가설은 다음과 같습니다.
H 0 (널): 변수는 다변량 정규 분포를 따릅니다.
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 테스트가 실제 의료 응용 분야에서 어떻게 사용되는지 알아보세요.