본문 바로가기
@ 통계 교양/통계 Tips (영상)

상관분석을 할 때 주의할 점(이질적 하위표본 효과)

by bigpicture 2020. 2. 1.
반응형

 

 

상관분석을 할 때 주의할 점(이질적 하위표본 효과)

 

상관분석을 할때 주의해야하는 것 중 '이질적 하위표본효과'라는 것이 있습니다. 이질적 하위표본은 heterogeneous subsamples 인데요. 말은 어려운데 예제를 하나 보시면 쉽게 이해하실 수 있을 것입니다. 

 

키와 몸무게 사이의 상관분석을 할 것입니다. 세 집단에 대해 상관분석을 할건데요. 아래 세 집단입니다. 

 

- 전체

- 남자

- 여자

 

데이터는 사이즈코리아라는 사이트에서 가져왔습니다. 

 

(사이즈코리아 데이터 다운로드 방법 :  https://hsm-edu.tistory.com/727). 

 

사용한 데이터 → 

2015_7th_humandata_refined_height_weight_bmi.xlsx
다운로드

 

계산한 상관계수는 아래와 같았습니다. 

 

- 전체 : 0.61

- 남자 : 0.40

- 여자 : 0.27

 

아래는 계산에 사용된 R코드입니다. 

 

library(readxl)

my.data <- read_excel("당신의 경로/2015_7th_humandata_refined_height_weight_bmi.xlsx")

my.data=as.data.frame(my.data)

 

my.data.F=my_data[my_data$gender=="F",]

my.data.M=my_data[my_data$gender=="M",]

 

c0=cor.test(my.data$height,my.data$weight)

c1=cor.test(my.data.F$height,my.data.F$weight)

 

c2=cor.test(my.data.M$height,my.data.M$weight)

 

세 집단의 상관계수 모두 통계적으로 유의했습니다. 전체집단에서의 상관계수는 0.61로 매우 높습니다. 그런데 각각 남녀집단을 따로 보면, 상관계수가 더 낮게 나옵니다. 전체집단에서 상관계수가 높게 나온 이유는 아래 그림을 보면 이해하실 수 있습니다. 

 

 

여성의 경우 height와 weight가 남성에 비해 상대적으로 낮은 곳에 분포되어 있고, 남성의 경우 상대적으로 높은 곳에 있다 보니 두 데이터를 합쳤을 때 분포의 모양이 각각 보다 더 긴 타원모양이 된 것입니다. 

 

각각 보여주는 것과 함께 보여주는 것 중에 우열이 있는 것은 아니지만, 하위표본의 상관계수와 표본들을 합쳤을 때의 상관계수다 달라질 수 있다는 사실을 알고 있는 것은 중요합니다. 

 

)하위표본들은 음의 상관관계를 갖지만, 합쳐 놓았더니 양의 관계를 갖는 더 극단적인 경우도 존재하는데 이를 심슨의 역설이라고 합니다. 심슨의 역설(Simpson's paradox) 다른 글에서 다루겠습니다. 

 

#그래프 R코드

 

#전체집단

plot(0,type="n",xlim=c(130,200),ylim=c(0,150),

     main="Male + Female",xlab="Height",ylab="Weight")

legend("topright",legend=c("male","Female"),fill=c("blue","red"))

points(my.data.F$height/10,my.data.F$weight,col="red")

points(my.data.M$height/10,my.data.M$weight,col="blue")

 

#여성

plot(0,type="n",xlim=c(130,200),ylim=c(0,150),

     main="Female",xlab="Height",ylab="Weight")

points(my.data.F$height/10,my.data.F$weight,col="red")

 

#남성

plot(0,type="n",xlim=c(130,200),ylim=c(0,150),

     main="Male",xlab="Height",ylab="Weight")

 

points(my.data.M$height/10,my.data.M$weight,col="blue")

 

반응형

댓글