매출 하락 및 상승 요인 분석하기(feat. 상관계수)
요즘은 데이터 분석하기 참 쉬운 시대인 것 같다. 내가 아는 아주 적은 지식을 활용하고 거기에 GPT라는 힘을 붙이면 어떤 분석이든 가능하다.
최근 내가 재직중인 회사의 매출이 점점 줄어들고 있는데, 단순히 사용자 수가 줄어들어 그런 건지 혹은 신규 회원이 들어오지 않아서인지 그 요인을 분석해보고자 한다. 어떤 방법을 사용할 수 있을까?
상관계수란?
어떤 두 가지 지표 기준이 있을 때, 그 두 지표간에 상관관계가 있는지 확인하고 싶으면 '상관계수'를 확인하면 된다.
상관관계란?
상관관계란 쉽게 설명해서 두 변수(=두 지표) 간에 상관이 있는지를 뜻한다.
상관관계 이야기가 나오면 꼭 같이 나오는 주제가 인과관계이다. 인과관계는 단순한 상관의 관계를 말할 뿐 아니라 정말로 A 때문에 B가 일어났다는 이야기다.
예시를 보면 이해하기 쉽다.
- 상관관계 예시: 온도가 높은 날 아이스크림의 구매율이 높았다. (둘 간에 실제로 인과관계가 있는지는 알 수 없다. 단순히 그 날에 아이스크림이 할인하고 있었을 수도)
- 인과관계 예시: 온도가 높은 날 아이스크림이 녹았다. (과학적으로 증명된 사실)
그렇다. 자사의 서비스에서 중요하게 여기는 데이터가 있을 때, 어떤 게 관련이 파악할 수 있는 게 상관관계를 확인하는 과정이다.
그렇다면 어떻게 확인할 수 있을까?
상관계수 확인하는 방법
상관계수를 확인하기 위해 내가 아는 두 가지 방법을 사용할 수 있다.
우선 첫 번째로 쉬운 방법은 '구글 스프레드 시트의 함수'를 사용하는 것, 두 번째 방법은 '파이썬 코드'를 사용하는 것.
구글 스프레드 시트로 상관계수 확인하기
우선 데이터는 DB에서 추출해서 사용해야 한다. DB접근 권한이 없는 분이라면 개발자에게 "'00년도 00월~00년도 00월까지의' '월별 고유한 판매자 수' 랑 '월별 신규판매자수'랑 '월별 총거래액' 좀 뽑아 주세요!" 라고 요청하면 된다. 나는 DB에서 SQL로 직접 뽑았는데, 월별 고유한 판매자 수를 추출했다.
그럼 아래와 같은 월별 '신규판매자수', '판매자수', '거래액' 데이터를 사용할 수 있게 된다.
아래의 데이터를 기준으로 B열과 D열이 상관관계가 있는지 확인하려면 함수를 이렇게 작성하면 된다.
=correl(B1:B33, D1:D33)
그 밖에도 파이썬을 이용할 수도 있다. 만약 추후에 더 심화된 데이터 분석을 한다면 파이썬으로 만들어 나가는 것도 좋은 방법이다.
파이썬으로 상관계수 확인하기
아래의 코드를 사용하면 파이썬에서 두 데이터 간의 상관계수를 확인할 수 있다.
만약 구글스프레드 시트에서 두 열을 복사 붙여넣기 하여 "# 데이터 문자열"에 붙여넣을 경우 "data_string = data_string.replace('\t', ' ')"를 넣어줘야 한다.
import pandas as pd
from io import StringIO
# 데이터 문자열
data_string = """
데이터A_1 데이터B_1
데이터A_2 데이터B_2
데이터A_3 데이터B_3
데이터A_4 데이터B_4
데이터A_5 데이터B_5
데이터A_6 데이터B_6
"""
# 데이터프레임으로 변환
data_string = data_string.replace('\t', ' ')
data = pd.read_csv(StringIO(data_string), sep=" ", header=None, names=['회원가입판매자수', '총거래액'])
# 데이터프레임 출력 (선택 사항)
print(data.head())
# 상관계수 계산
correlation = data['회원가입판매자수'].corr(data['총거래액'])
print(correlation)
내가 가진 '회원가입판매자수(데이터A)'와 '총거래액(데이터B)'을 기준으로 위의 코드를 돌려보았을 때, 아래와 같은 결과가 도출되었다.
0.6224557083789058
상관계수 해석
- 0.90 to 1.00 (또는 -0.90 to -1.00): 매우 강한 양의 (또는 음의) 상관관계
- 0.70 to 0.90 (또는 -0.70 to -0.90): 강한 양의 (또는 음의) 상관관계
- 0.50 to 0.70 (또는 -0.50 to -0.70): 중간 정도의 양의 (또는 음의) 상관관계
- 0.30 to 0.50 (또는 -0.30 to -0.50): 약한 양의 (또는 음의) 상관관계
- 0.00 to 0.30 (또는 0.00 to -0.30): 무시할 수 있는 상관관계
즉, 위의 흐름에 따르면 '회원가입판매자수'와 '총거래액' 사이에는 상관관계가 "중간 정도"라는 것이다. 그런 반면, 위의 스프레드 시트를 보면 '발송완료판매자수'와 '총거래액' 사이에 0.97의 상관계수가 나왔는데, 두 지표는 매우 강한 상관관계를 가지고 있는 것이다.
더 깊게 데이터를 파봐야겠다.