놀고 싶어요

[R Programming] 상관분석 (Correlation Analysis) 본문

R

[R Programming] 상관분석 (Correlation Analysis)

챌린지 2021. 5. 18. 17:12

 

 

데이터 분석 초입 단계에서 어떤 변수가 중요한지, 각 변수끼리 무슨 관계가 있는지 모르므로 제일 먼저 변수 간의 관계를 파악하려는 시도를 다양하게 한다.

1.시각화(visualization)

2.탐색적 데이터 분석(EDA)

 

이러한 초기의 과정들이 결국 상관분석의 한 부분이 된다.

깊이 있는 분석이 어떤 분석을 중심으로 진행되어야 하는가를 다양한 가능성으로부터 점점 좁혀가는 과정, 방법에 상관분석이 종종 사용된다.

 

상관분석 (Correlation analysis)

수치형 데이터간의 관계

 

데이터 간에 관계가 있는가 하는 상관분석을 가장 쉽게 하는 방법은 산점도(scatter plot)을 그리는 방법이다.

시각화(visualization): 빠르고 간략하게 상관성 여부를 파악할 수 있지만 계량적으로 얼마나 관계가 강한지 말하려면 상관분석을 함께 사용해야 한다.

 

상관분석 특징

1. 두 수치형 데이터 간의 직선적 관계를 알려준다. - 직선성외에는 알려주는 것이 없다.

상관관계는 여러 개의 변수를 한 번에 분석에 포함할 수 있지만 항상 변수 2개씩에 대해 분석을 수행한다. - 2개씩 여러번의 분석을 수행한다.

수치형 데이터에 대해서만 사용 가능하다. (카이제곱 독립성 검정에서는 범주형 데이터만 다룬다.)

 

상관분석으로 알 수 있는 결과는

수치형 변수 두 개가 서로 연관되어 보이는지, 연관이 있다면 양의 관계인지 음의 관계인지 알려준다.

(양의 관계: 하나의 변수가 증가할 때 다른 하나도 증가하는 경향이 있다. (감소할 때는 감소))

 

2. 직선적 관계, 음/양의 관계와는 단순히 관련이 있다.

양의 관계인지 음의 관계인지는 알 수 있지만 인과관계(원인-결과 관계)를 얘기하는 것은 아니다. - 중요

상관 분석이 알려주는 것은 인과관계가 아니다.

 

 

3. 상관계수가 데이터 안에 존재하는 진짜 상관성과 일치하지 않는 경우가 종종 있다.

여러가지 이유로 이러한 현상이 나타날 수 있다.

Ex) 직선성이 아닌 경우, 몇 개의 그룹으로 나눠진 경우, 이상값이 일부 극단값으로 존재하는 경우

-> 상관분석에 전적으로 기대하는 것은 바람직하지 않다.

 

 

==> 인과관계 설명 및 예측에 활용할 수 있도록 확인해 내는 것이 뒤따라 와야 한다.

(인과관계를 찾아볼 수 있는 방법: 회귀분석)

 

 

 


예시 (함수의 사용방법과 분석 결과에 대한 해석에 초점을 둠)

현재의 데이터를 구별 총 대여건수로 요약 -> 인구 정보 결합 -> 구별 총 대여건수와 구별 인구 간의 상관분석 수행
산점도

5개 구의 총 대여 건수 count_by_Gu 변수 선언

count_by_Gu <- bike_data2 %>% group_by(Gu) %>% summarise(count=n())

count_by_Gu

 

구별 대여 건수를 집계한 count_by_Gu와 population(인구 정보) 결합하여 by_Gu 변수 생성

by_Gu <- inner_join(count_by_Gu, population, by='Gu')

 

산점도 그리기 (구별 총 대여건수와 구별 인구 간의 상관분석 수행)

plot(by_Gu$count, by_Gu$Population, cex=2, lwd=3)

cex=2 원의 크기, lwd=3 원을 그리는 선의 두께

 

데이터가 적어 분석의 의미가 높지 않다. 너무 흩어져 있어 상관계수가 높지 않지만 대체로 음의 관계를 갖는다.

 

 

 

 

 

 

cor(by_Gu$count, by_Gu$Population)

cor() 상관계수를 구하는 함수

반환 값은 상관계수 뿐이다.

 

-1 <= 상관계수 <= 1

절대값이 클수록 강한 상관관계가 있다.

 

 

cor.test() 함수

상관계수에 대한 가설 검정을 하는 함수. 계량적 정보를 보여줌

cor.test(by_Gu$count, by_Gu$Population)

가장 널리 쓰이는 피어슨 상관계수 (pearson)에 대한 가설검정을 수행한다.

p-value = 0.558

유의수준 0.05보다 큰 값으로 귀무가설을 받아 들인다. (귀무가설: 상관관계가 없다.)

 

상관관계가 없다 -> p-value  가 유의수준보다 크므로 귀무가설 기각할 수없다. 구별 자전거 대여 회수와 구별 인구간에는 상관관계가 없다.

cor = -0.3547744, p-value = 0.558

상관계수가 통계적으로 유의한 값이 아니다. (통계적으로 평가하기에 적절한 데이터는 아니다.)

-> 데이터를 더 확보하여 분석을 다시 수행할 필요가 있다.