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 테스트가 실제 의료 응용 분야에서 어떻게 사용되는지 알아보세요.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다