통계 z 변환 - tong-gye z byeonhwan

(1) 표준화

표준화에는 크게 Z변환,   [0-1] 변환 2가지가 있다.

표준정규분포 z 변환

우선 정규분포에 대해서 간략히 집고 z변환을 살펴보자.

일상생활 속에서 우리는 다양한 정규분포를 접하고 살게 된다. 만약 100명의 수강생을 대상으로 통계와

R 분석 교육을 받고 시험을 치면 아마도 평균을 중심으로 종모양으로 좌우 분포가 비슷한 성적분포를

갖게 된다. 수강생 100명의 키와 몸무게를 조사해서 히스토그램을 그려보면 이 또한 평균을 중심으로

종모양으로 좌우대칭인 그림을 띄게 된다. 만약 키의 평균과 표준편차를 알려주고 수강생 100명 중에서

한명의 수강생을 뽑아 키를 재서 알려준다면 그 수강생이 전체 100명중 상위 몇 % 의 키에 속할지도

추측할수 있다.

통계학에서 '중심극한정리 ( central limit theorem)'이 정말 중요한 역할을 하게 된다.

중심극한정리란 분포의 모양을 모르는 모집단으로부터 표본을 추출 할때, 표본평균 의 분포는

표본의 크기 n(n> 30)이 커짐에 따라 점점 정규분포로 근사해 간다는 성질을 말한다.

이해가 쉽다. 모집단의 모양이 모르는 상태에서 표본을 추출해 분포를 구하는데 표본의 양이 많아지면

많아질수록 모집단에 가까워진다는건 너무나도 당연하다

이 중심 극한 정리에 근거해서 보통 샘플이 대략 30개 이상이면 표본평균이 정규분포로 근사한다고

가정하고 정규분포 가정에 근거한 다양한 통계분석 기법을 적용할수 있게 된다.

이때 두개 이상의 모집단으로 부터 표본의 크기가 큰 표본을 추출했을 때, 각 집단의 평균과 표준편차가

다르거나, 혹은 scale이 다른 경우에는 다수의 집단간, 변수간 직접적인 비교가 불가능하게 된다.

미국 달러, 유럽의 유로화, 중국의 위안화, 일본의 엔화 그리고 한국의 원화를 각 1000단위를 가지고

있다고 했을때, 이게 서로간에 대비해서 얼마나 많은건지, 값어치가 있는건지 직접 비교하는게 

불가능한것과 같은 이치이다. 이때 특정나라의 통화를 기준으로 삼고 다른 나라의 통화를 기준으로

변환을 하면 각 나라별 통화간의 돈의 가치를 비교할 수 있게 된다. 이게 표준화의 원리이다.

위에서 정규분포의 중요성에 대해서 말했는데, 정규 분포 중에서 평균이 0, 표준편차가 1인 

정규분포를 표준정규분포 라고 한다. 평균이 표준편차가 서로 다른 다수의 집합을 포준정규분포로

표준화를 하면 서로 비교를 할 수 있게 된다.

그럼 이제 R에서 표준정규화를 하는방법을 알아보자

- 한국 성인남성 1000명의 키가 평균 170, 표준편차가 10인 정규분포

- 남아공 성인남성 1000명의 키가 평균 150, 표준편차가 8인 정규분포

두 집단의 키를 평균이 0, 표준편차가 1인 표준정규분포로 표준화를 해보도록 하자

먼저 데이터 생성

 # 한국인 데이터 1000개 생성 평균이 170, 표준편차 10

> height.korean = rnorm(n = 1000, mean = 170, sd = 10)

 # 아프리카인 데이터 1000개 생성 평균이 150, 표준편차 8

> height.africa = rnorm(n = 1000, mean = 150, sd = 8)

 # 두 벡터를 하나의 데이터프레임으로 변환

> height = data.frame(height.korean, height.africa)

 # 데이터 확인

> head(height)

height.korean height.africa

1      156.3376      134.6233

2      175.3921      142.9758

3      156.7807      150.4748

4      167.1871      147.1669

5      148.9505      155.8563

6      153.8240      147.4646

cs

통계 z 변환 - tong-gye z byeonhwan

이제 표준정규화를 해보자 scale 함수를 사용하는 방법도 있거니와 원래 공식인 (x-mean(x))/sd(x)를 

사용해도된다. 결과는 같다.

par(mfrow = c(1,2))

hist(height.korean, freq = TRUE, main ="Korean height frequency histogram")

hist(height.africa, freq = FALSE, main ="African height frequency histogram")

scaled.height.korean = scale(height.korean)

scaled.height.afrian = scale(height.africa)

hist(scaled.height.korean, freq = TRUE, main ="Standized Korean height frequency histogram")

hist(scaled.height.afrian, freq = FALSE, main ="StandizedAfrican height frequency histogram")

cs

통계 z 변환 - tong-gye z byeonhwan

이제 두 대상을 비교 할수 있다. 한국인이 평균보다 키가 큰 사람의 비율이 더 많고

아프리카인들은 평균보다 키가 작은 사람들의 비율이 더 많다.

출저 http://rfriend.tistory.com/52