*sas 공식 블로그에 있는 글을 요약해서 번역한 포스트 입니다.
** 원본 링크 : https://blogs.sas.com/content/iml/2012/03/02/testing-data-for-multivariate-normality.html
Testing data for multivariate normality
I've blogged several times about multivariate normality, including how to generate random values from a multivariate normal distribution.
blogs.sas.com
개인 프로젝트 중 다변량 정규검정을 시행할 일이 있어 인터넷을 뒤지던 중 위의 포스트를 찾았다.
핵심아이디어는 다음과 같다.
* notation
X : 데이터
n : X 의 데이터 수
p : X의 차원 수
cov = X의 공분산 행렬
u : X의 평균 행벡터
다변량 데이터 X가 다변량 정규분포를 따른다는 하에서,
X의 평균점 까지의 마할라노비스 거리의 제곱은 자유도가 P인 카이제곱 분포를 따른다.
X의 평균점 까지의 마할라노비스 거리 의 제곱!
=
X−u' *inverseCov * X−u
카이제곱 분포의 성질을 아는 사람이라면 이는 자명한 성질이다.
표준정규분포를따르는변수Z1......Zn이있다고하면,Z1 Zn의제곱합은자유도가n인카이제곱분포를따른다
이를 이용하여, 자유도가 p 인 카이제곱 분포의 분위 수n분위수 벡터와, 마할라노비스 거리 벡터의 분위수 벡터로
probability QQplot을 그렸을 때, 그래프가 직선에 가깝게 나타난다면, X는 다변량 정규분포를 따른다고 예상할 수 있다.
이걸 SAS로 표현하면 다음과 같다.
proc iml;
use X;
read all into x;
mean = mean(x);
cov = cov(x);
md = (x - J(149,1)*mean) * inv(cov) * (x - J(149,1)*mean)`;
md2 =diag(md)*J(149,1);
call sort(md2, 1);
s = (T(1:149) - 0.375) / (149 + 0.25);
chisqQuant = quantile("ChiSquare", s, ncol(X));
call scatter(md2, chisqQuant);
run;

이를 보면, 내가 분석한 데이터 셋은 어느정도 정규성을 따른다고 봐도 될 것 같다.
'Statistic 전공' 카테고리의 다른 글
[다변량 통계학] Levine Test 와 Welch's Anova 0 | 2022.10.29 |
---|