R에서 다변량 정규성 테스트를 수행하는 방법


단일 변수가 정규 분포인지 여부를 테스트하려면 QQ 플롯을 만들어 분포를 시각화하거나 Anderson Darling 테스트 또는 Jarque-Bera 테스트 와 같은 공식적인 통계 테스트를 수행할 수 있습니다.

그러나 여러 변수가 그룹으로 정규 분포되어 있는지 테스트하려면 다변량 정규성 테스트를 수행해야 합니다.

이 튜토리얼에서는 R의 특정 데이터 세트에 대해 다음과 같은 다변량 정규성 테스트를 수행하는 방법을 설명합니다.

  • 마르디아의 시험
  • 에너지 테스트
  • 다변량 첨도 및 왜도 테스트

관련 항목: 다변수 컨텍스트에서 이상값을 식별하려면 Mahalanobis 거리를 사용할 수 있습니다.

예: Mardia의 R 테스트

Mardia 테스트는 변수 그룹이 다변량 정규 분포를 따르는지 여부를 확인합니다. 검정의 귀무가설과 대립가설은 다음과 같습니다.

H 0 (널): 변수는 다변량 정규 분포를 따릅니다.

H a (대안): 변수가 다변량 정규 분포를 따르지 않습니다 .

다음 코드는 QuantPsyc 패키지를 사용하여 R에서 이 테스트를 수행하는 방법을 보여줍니다.

 library (QuantPsyc)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mult.norm(data)$ mult.test

Beta-hat kappa p-val
Skewness 1.630474 13.5872843 0.1926626
Kurtosis 13.895364 -0.7130395 0.4758213

mult.norm() 함수는 데이터세트의 왜도와 첨도 모두에서 다변량 정규성을 테스트합니다. 두 p-값이 모두 0.05 이상이므로 검정의 귀무가설을 기각할 수 없습니다. 데이터 세트의 세 변수가 다변량 분포를 따르지 않는다는 증거는 없습니다.

예: R의 에너지 테스트

에너지 테스트는 변수 그룹이 다변량 정규 분포를 따르는지 여부를 결정하는 또 다른 통계 테스트입니다. 검정의 귀무가설과 대립가설은 다음과 같습니다.

H 0 (널): 변수는 다변량 정규 분포를 따릅니다.

H a (대안): 변수가 다변량 정규 분포를 따르지 않습니다 .

다음 코드는 에너지 패키지를 사용하여 R에서 이 테스트를 수행하는 방법을 보여줍니다.

 library (energy)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mvnorm.etest(data, R= 100 )

Energy test of multivariate normality: estimated parameters

data: x, sample size 50, dimension 3, replicates 100
E-statistic = 0.90923, p-value = 0.31

검정의 p-값은 0.31 입니다. 이 수치는 0.05 이상이므로 검정의 귀무가설을 기각할 수 없습니다. 데이터 세트의 세 변수가 다변량 분포를 따르지 않는다는 증거는 없습니다.

참고: R=100 인수는 테스트를 실행할 때 사용할 부스트 매핑된 복제본 100개를 지정합니다. 표본 크기가 더 작은 데이터 세트의 경우 이 숫자를 늘려 검정 통계량의 보다 신뢰할 수 있는 추정치를 생성할 수 있습니다.

추가 리소스

R에서 QQ 플롯을 생성하고 해석하는 방법
R에서 Anderson-Darling 테스트를 수행하는 방법
R에서 Jarque-Bera 테스트를 수행하는 방법
R에서 Shapiro-Wilk 테스트를 수행하는 방법

의견을 추가하다

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