1. 상관관계 분석(Correlation Analysis)이란?
상관계수(Correlation)는 두 변수간 연관성을 알아보는 지표이다.
상관계수로 키와 몸무게, 공부한 시간과 성적과의 관계나 판매 촉진비와 매출 간의 관계를 파악할 수 있다.
상관계수 중에는 피어슨(Pearson) 상관계수가 가장 많이 알려져 있다. 피어슨 상관계수는 -1.00 ~ 1.00 사이의 값을 가지며 -1.00이나 1.00에 가까울수록 변수 간 연관성이 높다고 볼 수 있으나, 인과관계를 이야기하는 것이 아니니 주의해야한다.
예를 들어, 경찰서와의 거리와 범죄율과는 상관관계가 높을 수 있는데 경찰서가 많아서 범죄율이 낮을 수는 있지만, 범죄율이 낮아서 경찰서가 많다는 것은 이상한 논리이다. 그리고 통화량과 물가 간의 상관관계가 높더라도 물가 상승의 원인이 반드시 통화량의 증가 때문이라고 볼 수 없고, 통화량이 증가하면 물가가 오르지 않을 가능성도 많기 때문이다. (이 경우는 통제 변수나 또 다른 분석이 필요하다.)
- 상관계수 = 0 : 변수간 연관성이 없다.
- 상관계수 > 0 : 양의 상관관계 (하나의 변수가 증가하면 다른 변수도 증가)
- 상관계수 < 0 : 음의 상관관계 (하나의 변수가 증가하면 다른 변수는 감소)
2. 파이썬(Python) 코드
파이썬에서는 Pandas 패키지를 이용해서 상관관계를 분석할 수 있으며 두 변수간 상관계수를 확인하기 위해서는 아래와 같이 실행한다.
import pandas as pd
# 기온데이터 로드
df = pd.read_csv('.\datasets\weather_2019_daejeon.csv', encoding='cp949')
# 기온, 풍속, 지면온도의 subset을 생성
df_subset = df[['기온(°C)', '풍속(m/s)', '지면온도(°C)']]
# 기온과 풍속간 상관계수
corr1 = df_subset['기온(°C)'].corr(df_subset['풍속(m/s)'])
# 기온과 지면온도간 상관계수
corr2 = df_subset['기온(°C)'].corr(df_subset['지면온도(°C)'])
print('기온과 풍속 간 상관계수 : {:.2f}'.format(corr1))
print('기온과 지면온도 간 상관계수 : {:.2f}'.format(corr2))
위 코드의 출력 값이다.
기온과 풍속 간 상관계수 : 0.77
기온과 지면온도 간 상관계수 : 0.90
전체 변수들의 상관계수를 확인할 수도 있다.
corr = df_subset.corr(method = 'pearson')
print(corr)
'데이터분석 > 확률과 통계' 카테고리의 다른 글
변수들간의 관련성(상관관계) - 상관계수, 순위상관 (0) | 2021.01.31 |
---|---|
데이터의 산포(흩어짐)를 파악하는 지표 - 최대값, 최소값, 사분위수, 분산, 표준편차 (0) | 2021.01.11 |
데이터를 설명하는 대표값 - 평균, 중앙값, 최빈값 (0) | 2021.01.09 |
귀무가설과 대립가설 (0) | 2020.01.02 |
분산, 표준편차, 변동(CV)계수 (0) | 2020.01.01 |
댓글