상관관계 및 상관분석
1. 상관관계(Correlation)의 이해와 기초
1) 상관관계란?
- 두 변수 간의 관계를 나타내는 통계적 개념으로, 한 변수의 변화가 다른 변수의 변화와 어떤 관계가 있는지를 나타낸다 즉, 한 변수가 증가할 때 다른 변수가 증가하거나 감소하는 패턴이 있는지를 분석하는 것이다.
2) 상관계수의 해석
- r = 1 → 완전한 양의 상관관계 (한 변수가 증가할 때 다른 변수도 완전히 비례하여 증가)
- 0.7 <= r < 1 → 강한 양의 상관관계
- 0.3 <= r < 0.7 → 약한 양의 상관관계
- r = 0 → 상관관계 없음 (두 변수 간 관계가 없음)
- −0.3 <= r < 0.3 → 약한 음의 상관관계
- −0.7 <= r < -0.3 → 강한 음의 상관관계
- r = -1 → 완전한 음의 상관관계 (한 변수가 증가할 때 다른 변수는 완전히 반비례하여 감소)
3) 상관관계와 인과관계
- 상관관계가 있다고 해서 반드시 인과관계(causation)가 있는 것은 아니다
- 아이스크림 판매량과 익사 사고 수는 높은 상관관계를 보이지만, 이는 여름철이라는 공통 요인(Confounding Variable) 때문이다. 따라서 상관관계를 해석할 때는 반드시 외부 요인과 논리적인 관계를 고려해야 한다.
4) 상관계수의 한계
- 상관계수는 선형 관계(linear relationship)만 측정한다. 즉, 비선형 관계(곡선 형태의 관계)는 측정하지 못할 수 있다.
- 극단값(Outliers)에 민감하여 데이터에 이상치가 많으면 왜곡될 수 있다.
- 상관계수 값이 낮다고 해서 반드시 두 변수 간에 관계가 없는 것은 아니다(비선형 관계 가능성).
5) 그로스 마케팅에서 상관관계 응용
(1) 시나리오: 제품 할인율과 판매량 간의 관계 분석
날짜 | 할인율 (%) | 판매량 (개) |
2024-02-01 | 5 | 120 |
2024-02-02 | 10 | 150 |
2024-02-03 | 8 | 135 |
2024-02-04 | 15 | 200 |
2024-02-05 | 12 | 180 |
2024-02-06 | 18 | 230 |
2024-02-07 | 20 | 250 |
2024-02-08 | 25 | 300 |
2024-02-09 | 22 | 270 |
2024-02-10 | 30 | 350 |
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import pearsonr
# 데이터 생성
data = {
"날짜": pd.date_range(start="2024-02-01", periods=10, freq="D"),
"할인율": [5, 10, 8, 15, 12, 18, 20, 25, 22, 30],
"판매량": [120, 150, 135, 200, 180, 230, 250, 300, 270, 350]
}
df = pd.DataFrame(data)
# 상관계수 계산
correlation, p_value = pearsonr(df["할인율"], df["판매량"])
# 데이터 시각화
plt.figure(figsize=(8, 6))
sns.regplot(x="할인율", y="판매량", data=df)
plt.title(f"할인율 vs 판매량 (상관계수: {correlation:.2f})")
plt.xlabel("할인율 (%)")
plt.ylabel("판매량 (개)")
plt.show()
# 상관계수 출력
print(f"Pearson 상관계수: {correlation:.2f}")
print(f"P-value: {p_value:.4f}")
# 할인율별 판매량 증가율 계산
df["판매량 증가율"] = df["판매량"].pct_change() * 100
print("\\n판매량 증가율 데이터:")
print(df[["날짜", "할인율", "판매량", "판매량 증가율"]])
- 실행 결과
- 상관계수(Pearson Correlation Coefficient) 출력
- 예를 들어, 할인율과 판매량 간의 상관계수가 1. 완전한 양의 상관관계가 있음을 의미.
- 즉, 할인율이 높아질수록 판매량이 증가하는 경향이 있음
- 상관계수(Pearson Correlation Coefficient) 출력
- 시각화 그래프
- 할인율과 판매량의 관계를 산점도(Scatter Plot) 및 회귀선(Regression Line)으로 시각화.
- 데이터가 직선에 가까울수록 강한 상관관계를 의미.
- 판매량 증가율 분석
- 판매량 증가율 = (현재 판매량 - 이전 판매량) / 이전 판매량 × 100
- 예를 들어, 할인율이 10%에서 15%로 증가할 때 판매량이 150개 → 200개로 증가했다면 증가율은 33.3%.
- 결론
- 할인율과 판매량 간의 강한 양의 상관관계가 발견, 적절한 할인 전략을 활용하여 매출을 극대화할 수 있음.
- 반대로, 상관관계가 낮거나 역으로 감소한다면, 너무 높은 할인율이 오히려 수익성을 해칠 가능성이 있음.
- 최적 할인율을 결정하기 위해 ROI(투자 대비 효과)를 추가 분석하면 더 정교한 마케팅 전략을 수립할 수 있음.
(2) 마케팅 보고서: 광고비, 방문자 수, 장바구니 추가 횟수가 매출에 미치는 영향 분석
- 개요
- 본 보고서는 광고비, 웹사이트 방문자 수, 장바구니 추가 횟수가 매출에 미치는 영향을 분석하여 최적의 마케팅 전략을 수립하는 것을 목표로 한다.
- 데이터 분석을 통해 가장 영향력이 큰 요인을 확인하고, 향후 마케팅 방향성을 제시한다.
- 데이터 개요
- 본 분석은 10일간의 데이터를 활용하여 아래 4개의 주요 변수 간 관계를 분석하였다.
날짜 | 광고비 (만원) | 방문자 수 | 장바구니 추가 횟수 | 매출 (만원) |
2024-02-01 | 50 | 1200 | 150 | 300 |
2024-02-02 | 60 | 1350 | 180 | 350 |
2024-02-03 | 55 | 1250 | 160 | 320 |
2024-02-04 | 70 | 1500 | 210 | 400 |
2024-02-05 | 65 | 1450 | 200 | 390 |
2024-02-06 | 80 | 1600 | 230 | 450 |
2024-02-07 | 75 | 1550 | 220 | 420 |
2024-02-08 | 90 | 1800 | 270 | 500 |
2024-02-09 | 85 | 1750 | 260 | 470 |
2024-02-10 | 100 | 2000 | 300 | 550 |
마케팅 데이터의 주요 지표 분석 및 통계분석
1. 마케팅 데이터의 주요 지표 분석
- 데이터 분석은 소비자 행동을 이해하고, 마케팅 전략을 최적화하며, 비즈니스 성과를 개선하는 데 중요한 역할을 한다.
- 주요 지표를 통해 마케팅 캠페인의 효과성을 측정하고, 향후 전략을 수립하는 데 활용할 수 있다.
- 각 지표를 종합적으로 분석하여 트래픽 증가 → 전환율 최적화 → 광고 효율성 개선 → 고객 유지 및 충성도 향상이라는 선순환 구조를 구축하는 것이 중요하다.
- 마케팅 목표에 맞는 주요 지표를 설정하고, 지속적으로 모니터링하며 최적화하는 것이 데이터 기반 마케팅의 핵심
1) 트래픽(Website Traffic) 관련 지표
: 웹사이트 방문자는 마케팅 성과를 측정하는 핵심 요소이다.
- 방문자 수 (Visitors)
- 특정 기간 동안 웹사이트를 방문한 총 사용자 수
- 신규 방문자(New Visitors) vs. 재방문자(Returning Visitors) 비교 분석 가능
- 페이지뷰(Page Views)
- 방문자가 특정 웹사이트에서 본 페이지 수
- 페이지뷰가 많을수록 사용자가 많은 콘텐츠를 소비했음을 의미
- 세션(Session)
- 사용자가 웹사이트를 방문해 특정 시간 동안 머무른 활동 단위
- 평균 세션 길이(Average Session Duration)를 분석해 사용자의 관심도를 평가
- 이탈률 (Bounce Rate)
- 방문자가 한 페이지를 본 후 바로 이탈하는 비율
- 이탈률이 높으면 콘텐츠 개선이 필요할 가능성이 있음
2) 전환(Conversion) 관련 지표
: 마케팅의 궁극적인 목표는 방문자가 특정 행동(구매, 가입 등)을 하도록 유도하는 것.
- 전환율(Conversion Rate)
- 방문자 중 실제 구매, 회원가입, 문의 등의 행동을 한 비율
- 웹사이트, 랜딩 페이지, 광고 캠페인의 성과를 평가하는 핵심 지표
- 이탈률(Exit Rate)
- 특정 페이지에서 사용자가 웹사이트를 떠나는 비율
- 특정 페이지에서 이탈률이 높은 경우, UX/UI 개선 필요
- 장바구니 이탈율 (Cart Abandonment Rate)
- 전자상거래에서 구매 직전 단계까지 갔다가 결제하지 않고 이탈한 비율
- 결제 프로세스 최적화를 통해 개선 가능
3) 광고 성과(Advertising Performance) 관련 지표
: 디지털 광고(검색 광고, SNS 광고 등)의 효율성을 측정하는 데 중요한 요소.
- 클릭률 (Click-Through Rate, CTR)
- 광고 노출 대비 클릭 수 비율
- CTR이 높으면 광고가 효과적이라는 의미
- 광고 비용 대비 매출 (Return on Ad Spend, ROAS)
- 광고비 대비 매출 성과를 측정하는 지표
- ROAS가 높을수록 광고 투자 대비 효과가 큼
- 고객 획득 비용 (Customer Acquisition Cost, CAC)
- 신규 고객 1명을 획득하는 데 소요된 비용
- CAC가 낮을수록 마케팅 효율성이 높음
4) 고객 유지(Customer Retention) 관련 지표
고객 유지율이 높은 기업은 장기적인 수익성을 확보할 수 있습니다.
- 고객 유지율 (Customer Retention Rate, CRR)
- 기존 고객이 계속해서 서비스를 이용하는 비율
- 고객 경험 개선 및 충성도 프로그램 강화로 향상 가능
- 반복 구매율 (Repeat Purchase Rate, RPR)
- 고객이 제품을 한 번 이상 구매하는 비율
- VIP 고객 프로그램을 활용해 증가 가능
- 순추천고객지수 (Net Promoter Score, NPS)
- 고객이 브랜드를 추천할 가능성을 평가하는 지표
- 일반적으로 0~10점 척도로 측정되며, 다음과 같이 분류됨:
- 0~6점: 비추천 고객 (Detractors)
- 7~8점: 중립 고객 (Passives)
- 9~10점: 추천 고객 (Promoters)
- 높은 NPS는 브랜드 충성도가 높다는 의미
5) 소셜 미디어 성과(Social Media Performance) 관련 지표
SNS에서의 브랜드 인지도 및 소비자 반응을 측정하는 지표입니다.
- 팔로워 증가율 (Follower Growth Rate)
- 소셜 미디어 팔로워 수가 증가하는 속도를 측정
- 참여율 (Engagement Rate)
- 사용자가 콘텐츠에 반응한 비율 (좋아요, 댓글, 공유 등)
- 콘텐츠가 타겟 고객에게 얼마나 잘 도달했는지 평가 가능
- 도달률 (Reach Rate)
- 게시물이 얼마나 많은 사용자에게 도달했는지를 측정
2. 지표 분석 예제
1) 시나리오 1: 방문자 수와 페이지뷰 분석
- 시나리오 설명
- 어느 전자상거래 사이트는 마케팅 캠페인(A/B 테스트)을 진행하면서 방문자 수와 페이지뷰 증가를 모니터링하고 있다. 캠페인 A와 B 중 어떤 것이 더 많은 방문자와 페이지뷰를 유도했는지 분석한다.
import pandas as pd
import matplotlib.pyplot as plt
# 하드코딩된 방문자 및 페이지뷰 데이터
data_visits = {
"Date": ["2025-01-01", "2025-01-02", "2025-01-03", "2025-01-04", "2025-01-05"],
"Campaign": ["A", "A", "B", "B", "A"],
"Visitors": [5000, 5200, 7000, 6800, 5500],
"Page_Views": [12000, 13000, 18000, 17500, 12500]
}
df_visits = pd.DataFrame(data_visits)
# 데이터 출력
display(df_visits)
# 방문자 및 페이지뷰 시각화
plt.figure(figsize=(8, 5))
plt.plot(df_visits["Date"], df_visits["Visitors"], label="Visitors", marker="o", linestyle="dashed")
plt.plot(df_visits["Date"], df_visits["Page_Views"], label="Page Views", marker="s", linestyle="dotted")
plt.xlabel("Date")
plt.ylabel("Count")
plt.title("Visitors & Page Views per Campaign")
plt.legend()
plt.grid()
plt.show()
2) 시나리오 2: 전환율(Conversion Rate)과 광고비 분석
- 시나리오 설명
- 회사는 광고를 집행하면서 광고비에 따라 전환율(Conversion Rate)이 얼마나 영향을 받는지 분석하고 있다.
- 광고비가 많을수록 전환율이 증가하는가?
# 하드코딩된 광고비 및 전환율 데이터
data_conversion = {
"Date": ["2025-01-01", "2025-01-02", "2025-01-03", "2025-01-04", "2025-01-05"],
"Ad_Spend ($)": [1000, 2000, 1500, 2500, 3000],
"Conversion_Rate (%)": [2.5, 3.8, 3.0, 4.5, 5.2]
}
df_conversion = pd.DataFrame(data_conversion)
display(df_conversion)
# 광고비와 전환율 시각화
plt.figure(figsize=(8, 5))
plt.scatter(df_conversion["Ad_Spend ($)"], df_conversion["Conversion_Rate (%)"], color="red", alpha=0.7)
plt.xlabel("Ad Spend ($)")
plt.ylabel("Conversion Rate (%)")
plt.title("Ad Spend vs. Conversion Rate")
plt.grid()
plt.show()
3) 시나리오 3: ROAS(광고 수익률) 분석
- 시나리오 설명
- 회사는 광고 투자 대비 매출 성과(ROAS, Return on Ad Spend)를 측정하고 있다.
- 광고 비용을 늘릴수록 ROAS가 증가하는가?
# 하드코딩된 광고비 및 ROAS 데이터
data_roas = {
"Date": ["2025-01-01", "2025-01-02", "2025-01-03", "2025-01-04", "2025-01-05"],
"Ad_Spend ($)": [1000, 2000, 3000, 4000, 5000],
"Revenue ($)": [5000, 9000, 14000, 18000, 22000]
}
df_roas = pd.DataFrame(data_roas)
# ROAS 계산 추가
df_roas["ROAS"] = (df_roas["Revenue ($)"] / df_roas["Ad_Spend ($)"]).round(2)
display(df_roas)
# 광고비 대비 ROAS 시각화
plt.figure(figsize=(8, 5))
plt.plot(df_roas["Ad_Spend ($)"], df_roas["ROAS"], marker="o", linestyle="dashed", color="blue")
plt.xlabel("Ad Spend ($)")
plt.ylabel("ROAS")
plt.title("Ad Spend vs. ROAS")
plt.grid()
plt.show()
4) 시나리오 4: 신규 고객 수와 CAC 분석
- 시나리오 설명
- 회사는 특정 기간 동안 신규 고객 획득 비용(CAC, Customer Acquisition Cost) 을 측정하고 있다.
- 광고비 대비 신규 고객 증가가 얼마나 효율적인가?
# 하드코딩된 신규 고객 및 CAC 데이터
data_cac = {
"Date": ["2025-01-01", "2025-01-02", "2025-01-03", "2025-01-04", "2025-01-05"],
"New_Customers": [100, 200, 150, 250, 300],
"Ad_Spend ($)": [2000, 4000, 3500, 5000, 6000]
}
df_cac = pd.DataFrame(data_cac)
# CAC 계산 추가
df_cac["CAC ($)"] = (df_cac["Ad_Spend ($)"] / df_cac["New_Customers"]).round(2)
display(df_cac)
# 신규 고객 수 대비 CAC 시각화
plt.figure(figsize=(8, 5))
plt.scatter(df_cac["New_Customers"], df_cac["CAC ($)"], color="green", alpha=0.7)
plt.xlabel("New Customers")
plt.ylabel("CAC ($)")
plt.title("New Customers vs. CAC")
plt.grid()
plt.show()
5) 시나리오 5: SNS 팔로워 증가 분석
- 시나리오 설명
- 기업은 SNS 마케팅 캠페인을 진행하면서 팔로워 증가율을 모니터링하고 있다.
- SNS 활동이 팔로워 증가에 효과적인가?
# 하드코딩된 SNS 팔로워 증가 데이터
data_followers = {
"Date": ["2025-01-01", "2025-01-02", "2025-01-03", "2025-01-04", "2025-01-05"],
"Posts": [3, 4, 2, 5, 6], # 하루 동안 올린 게시글 수
"Followers_Growth": [50, 80, 45, 100, 120] # 하루 동안 증가한 팔로워 수
}
df_followers = pd.DataFrame(data_followers)
display(df_followers)
# SNS 활동과 팔로워 증가율 시각화
plt.figure(figsize=(8, 5))
plt.scatter(df_followers["Posts"], df_followers["Followers_Growth"], color="purple", alpha=0.7)
plt.xlabel("Posts per Day")
plt.ylabel("Followers Growth")
plt.title("Posts vs. Followers Growth")
plt.grid()
plt.show()
3. 마케팅 보고서를 통한 주요지표 연습
1) 쿠팡 데이터를 통한 주요 지표 분석 연습
2) 롯데온 데이터를 이용한 주요 지표 분석 연습
3) 신세계몰(SHINSEGAE MALL) 데이터를 통한 주요 지표 분석 연습
- 배경: 신세계몰은 백화점 및 마트와 연계된 온라인 쇼핑몰로, 최근 온라인 시장의 경쟁 심화 속에서 광고 효율성과 전환율 개선을 위한 전략이 필요하다. 기존 고객 유지와 신규 고객 유입을 동시에 강화하는 것이 목표다.
- 과제:
- 방문자 수 증가에도 불구하고 전환율이 낮아 수익성이 정체되고 있음.
- 광고비 대비 매출(ROAS)이 낮아 광고 예산을 효율적으로 재분배할 필요가 있음.
- SNS 채널의 팔로워는 증가하지만 실제 구매 연결이 약함.
- 고객 이탈률이 높아 재구매율을 높이는 전략이 필요함.