통계분석

단순 회귀 분석 & 다중 회귀 분석

dltmfdltmf 2025. 2. 24. 21:10

1. 회귀 분석 개념

 

1.1 회귀분석이란?

  • 통계학에서 두 개 이상의 변수 사이의 관계를 분석하고 예측 모델을 구축하는 기법
  • 이 분석은 주어진 데이터로부터 변수 간의 상관관계를 파악하고, 이를 바탕으로 미래의 값을 예측하거나 변수들이 어떻게 상호작용하는지 이해하는 데 사용됨

 

1.2 주요 구성 요소

  • 종속 변수 (Dependent Variable, Y):
    • 분석의 목표가 되는 변수.
    • 예를 들어, 판매량, 수익, 체중 등 예측하거나 설명하고자 하는 대상
  • 독립 변수 (Independent Variable, X):
    • 종속 변수에 영향을 주는 변수
    • 예를 들어, 광고비, 교육 수준, 운동량 등이 해당
  • 오차항 (Error Term, ε):
    • 모델이 설명하지 못하는 부분, 즉 관측된 값과 예측된 값 사이의 차이를 의미
    • 이는 측정오차나 누락된 변수 등 여러 요인에 의해 발생할 수 있음

 

1.3 회귀 모델 형태

회귀분석에서는 주어진 데이터에 가장 적합한 함수를 찾는 것. 

이 함수는 선형(linear) 또는 비선형(nonlinear) 형태를 가질 수 있으며, 대표적인 방법으로 최소제곱법(OLS, Ordinary Least Squares)을 사용하여 모델의 파라미터를 추정함

 


2. 회귀 분석 종류

 

2.1 단순 회귀 분석

: 단순 회귀 분석은 하나의 독립 변수하나의 종속 변수 사이의 선형 관계를 모델링하는 가장 기본적인 형태의 회귀분석

 

[모델 수식]

수식 상세 설명

 

2.2 다중 회귀 분석

: 다중 회귀 분석은 단순 회귀 분석의 확장으로, 하나의 종속 변수와 두 개 이상의 독립 변수 간의 관계를 동시에 분석하는 통계적 기법. 이를 통해 여러 요인이 종속 변수에 미치는 영향을 동시에 고려할 수 있으며, 보다 정교한 예측 모델을 구축할 수 있음

 

[모델 수식]

수식 상세 설명

 

 

2.3 최소제곱법 (OLS)

  • 단순 회귀 분석에서는 최소제곱법을 통해 β0와 β1를 추정
  • 이 방법은 각 관측치에서 예측값과 실제값 사이의 잔차(residual)의 제곱합을 최소화하는 파라미터를 찾는 방법

※  잔차 분석: 잔차를 분석하면 모델이 데이터의 변동성을 얼마나 잘 설명하는지, 그리고 이상치나 패턴이 존재하는지 확인할 수 있음

 

2.4 모델 적합도 평가 및 검정

 

[결정계수 (R²)]

결정계수( R^2 )는 회귀 모델이 데이터를 얼마나 잘 설명하는지를 나타내는 지표

  • 종속 변수의 변동 중에서 모델이 설명하는 비율을 나타냄
  • 0과 1 사이의 값을 가지며,
    • 1에 가까울수록 모델의 설명력이 좋음을 의미
    • 0이면 모델이 평균값만큼도 설명하지 못한다는 뜻
    • 음수인 경우, 이는 모델이 데이터 설명에 실패하고 있음(즉, 평균값을 그대로 예측하는 것보다 성능이 나쁨)을 의미

수식 추가 설명

 


 

3. 실습 

3.1 단순 회귀 분석 보고서

 

이메일 발송 최적화 전략:

회귀분석을 통한  클릭률 예측 및 마케팅 전략 제안

 

 

1. 개요

본 보고서는 온라인 쇼핑몰의 광고 이메일 발송 수가 클릭률에 미치는 영향을 분석하여, 효율적인 마케팅 전략 수립을 위한 인사이트를 도출하는 것을 목적으로 합니다. 단순 회귀 분석을 활용하여 발송한 이메일 수와 클릭률 간의 관계를 정량적으로 파악하고, 이를 바탕으로 예산 배분 및 캠페인 전략을 재검토합니다.

 

2. 데이터 개요

  • 데이터 수집 기간: 최근 3개월 간의 이메일 캠페인 데이터
  • 주요 변수:
    • 발송한 이메일 수: 각 캠페인별 집행한 광고 예산
    • 클릭률: 이메일 발송으로 인한 클릭 수

 

3.3. 분석 방법

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 1. 가상의 데이터 준비
data = {
    'emails_sent': [1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000],
    'click_rate': [1.2, 2.5, 3.8, 4.2, 5.1, 6.3, 7.0, 7.8, 8.5, 9.2]
}
df = pd.DataFrame(data)

# 2. 독립 변수(X)와 종속 변수(y) 설정
X = df[['emails_sent']]
y = df['click_rate']

# 3. 단순 회귀 모델 생성 및 학습
model = LinearRegression()
model.fit(X, y)

# 4. 모델 파라미터 및 결정계수(R²) 출력
intercept = model.intercept_
slope = model.coef_[0]
r2 = r2_score(y, model.predict(X))

print("회귀식: 클릭률 = {:.2f} + {:.5f} * 발생한 이메일 수".format(intercept, slope))
print("결정계수 (R²): {:.4f}".format(r2))

# 5. 예측 및 시각화
df['predicted_click_rate'] = model.predict(X)

plt.scatter(df['emails_sent'], df['click_rate'], color='blue', label='실제 클릭률')
plt.plot(df['emails_sent'], df['predicted_click_rate'], color='red', label='회귀 직선')
plt.title('이메일 마케팅 캠페인 발송 수에 따른 클릭률')
plt.xlabel('이메일수 (건)')
plt.ylabel('클릭률')
plt.legend()
plt.show()

[파이썬으로 회귀 분석 코드 구현]

  • 모델 선택: 단순 회귀 분석 (발송한 이메일 수를 독립 변수, 클릭률을 종속 변수로 설정)
  • 추정 방법: 최소제곱법(OLS)을 사용하여 회귀계수(절편, 기울기)를 추정
  • 모델 평가: 결정계수(R²)를 통해 모델의 설명력을 평가

 

3.4. 분석 결과

  • 회귀식 도출:
    • 클릭률 = 0.77 + 0.00087 * 발생한 이메일 수
    • 해석: 이메일을 1건 추가 발송할 때마다 클릭률이 평균적으로 0.00087 증하하며, 이메일 발송 수가 0인 경우에도 기본적으로 약 0.77정도의 클릭률이 발생하는 것으로 추정됨  
  • 결정계수 (R²): 0.99
    • 해석: 모델이 클릭률의 변동성 중 99%를 설명할 수 있으므로, 이메일 발송 수와 클릭률 간의 선형관계가 매우 강하다는 결론을 도출할 수 있음

 

3.5. 마케팅 전략 시사점

  1. 예산 증액의 효과:
    1. 이메일 1,000건 추가 발송할 경우 약 8~9건의 클릭률 증대를 기대할 수 있음
    2. 전략 수립 시 이메일 발송 수 증가가 클릭률 향상에 효과적일 가능성이 높으므로, ROI를 고려하여 추가 예산 배분을 검토할 필요가 있음
  2. 기본 전환수의 의미:
    1. 이메일 발송 수가 0일 때도 0.77정도의 클릭률이 발생하는 것은 기존 고객의 충성도로 인한 지속적인 서비스 사용 또는 자연 유입 효과를 반영할 수 있음
    2. 이를 토대로 이메일 발송 외에도 기존 고객 리텐션 전략과 자연 유입을 위한 SEO 강화 등이 필요
  3. 모델 신뢰도:
    1. 결정계수 값이 0.99로 매우 높아, 이메일 발송 수와 클릭률 간의 관계를 안정적으로 설명할 수 있음을 확인함
    2. 다만, 본 분석은 과거 데이터를 기반으로 하므로, 미래 캠페인 실행 시에도 외부 요인(경쟁, 시장 변화 등)을 함께 고려해야 함

 

3.6. 결론 및 제언

  • 결론: 본 회귀 분석 결과, 이메일 발송 수와 클릭률 간의 선형적 관계가 매우 명확하게 나타났으며, 추가 이메일 발송 집행 시 클릭률 증대 효과가 기대됨.
  • 제언:
    • 이메일 발송 수 증가을 통한 클릭률 향상 전략을 적극 검토할 것
    • 이메일 발송 외에도 기존 고객 리텐션 전략과 자연 유입을 위한 SEO 강화 등으로 다양한 마케팅 채널을 복합적으로 운영할 것
    • 정기적으로 회귀 분석을 수행하여 시장 상황 변화에 따른 모델의 유효성을 검증할 것

 


 

3.2 다중 회귀 분석 실습

 

광고 채널별 예산을 비롯한 마케팅 및 주요 경영 지표가 매출에 미치는 영향 분석

 

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 하드코딩된 마케팅 데이터 생성
data = {
    "광고비_Google ($)": [5000, 7000, 9000, 11000, 13000, 15000, 17000, 19000, 21000, 23000],
    "광고비_Facebook ($)": [4000, 6000, 8000, 10000, 12000, 14000, 16000, 18000, 20000, 22000],
    "광고비_TikTok ($)": [3000, 5000, 7000, 9000, 11000, 13000, 15000, 17000, 19000, 21000],
    "웹사이트 방문자 수 (명)": [15000, 18000, 21000, 24000, 27000, 30000, 33000, 36000, 39000, 42000],
    "광고 클릭 수 (회)": [1000, 1300, 1600, 1900, 2200, 2500, 2800, 3100, 3400, 3700],
    "SNS 공유 횟수 (회)": [200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000],
    "고객 유지율 (%)": [70, 72, 74, 76, 78, 80, 82, 84, 86, 88],
    "신규 고객 비율 (%)": [20, 25, 30, 35, 40, 45, 50, 55, 60, 65],
    "구매 전환율 (%)": [5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5],
    "평균 구매 단가 ($)": [50, 55, 60, 65, 70, 75, 80, 85, 90, 95],
    "매출 ($)": [100000, 130000, 160000, 190000, 220000, 250000, 280000, 310000, 340000, 370000]
}

df = pd.DataFrame(data)

# 다중 회귀 분석 수행
X = df.drop(columns=["매출 ($)"])
y = df["매출 ($)"]

model = LinearRegression()
model.fit(X, y)

# 예측 결과
predicted_sales = model.predict(X)
r2 = r2_score(y, predicted_sales)

# 회귀 계수 출력
coef_dict = {column: coef for column, coef in zip(X.columns, model.coef_)}

# 새로운 캠페인 데이터 적용
new_campaign = np.array([
    7500,   # 광고비_Google ($)
    5000,   # 광고비_Facebook ($)
    6000,   # 광고비_TikTok ($)
    25000,  # 웹사이트 방문자 수 (명)
    2000,   # 광고 클릭 수 (회)
    900,    # SNS 공유 횟수 (회)
    75,     # 고객 유지율 (%)
    35,     # 신규 고객 비율 (%)
    6.5,    # 구매 전환율 (%)
    65      # 평균 구매 단가 ($)
]).reshape(1, -1)

predicted_sales_new = model.predict(new_campaign)[0]
marketing_cost = 7500 + 5000 + 6000
roi = ((predicted_sales_new - marketing_cost) / marketing_cost) * 100

# 최종 결과
results = {
    "회귀 분석 결정계수 (R²)": r2,
    "회귀 계수 목록": coef_dict,
    "예측 매출 (새 캠페인)": predicted_sales_new,
    "ROI (%)": roi
}

results

[파이썬으로 회귀 분석 코드 구현]

회귀 분석 코드_출력값

문제 1: 다중 회귀 분석 해석

  1. 가장 높은 영향력을 가지는 변수는 무엇인가?
    • 회귀계수 값이 가장 큰 웹사이트 방문자 수가 가장 높은 영향력을 가짐
  2. 특정 변수(예: SNS 공유 횟수)가 음수의 회귀 계수를 가지면 어떤 의미인가?
    • sns 공유 횟수가 음수의 회귀 계수를 갖는다면, sns 공유 횟수가 늘어날수록 오히려 매출은 감소함을 의미함
    • 이는 해당 sns 게시물이 우리 브랜드 이미지에 악영향을 끼치는 것일 확률이 높음

문제 2: ROI 계산

  1. 위 데이터를 다중 회귀 모델에 적용하여 새로운 캠페인의 예상 매출을 예측하시오.
    • 예상 매출 = 2.847500 + 2.845000 + 2.846000 + 4.325000 + 4.22000 + 2.8900 + 0.00275 + 0.00735 + 0.00076.5 + 0.00765 =161675.41
  2. 총 마케팅 비용이 광고비_Google + 광고비_Facebook + 광고비_TikTok이라고 가정할 때, ROI를 계산하시오.
    • marketing_cost = 7500 + 5000 + 6000
    • roi = ((predicted_sales_new - marketing_cost) / marketing_cost) * 100
    • 773.92%

 

4. 그로스 마케팅 현업 시나리오에서 다중 회귀 분석이 활용되는 사례

 

다중 회귀 분석은 광고 성과 분석, 고객 유지율 예측, 전환율 최적화 등 다양한 그로스 마케팅 시나리오에서 활용됩니다.

  • ROI가 높은 광고 채널을 찾아 예산 최적화합니다.
  • 고객 이탈을 예측하여 맞춤형 리텐션 전략을 수립합니다.
  • 이커머스 할인 전략의 최적 포인트를 도출합니다.
  • 앱 사용자 행동을 분석하여 전환율을 개선합니다.
  • B2B 세일즈 리드 전환을 최적화합니다.

 

1. 온라인 광고 캠페인 최적화 (Performance Marketing)

  • 여러 광고 채널(예: Facebook Ads, Google Ads, TikTok Ads)의 광고비와 전환율, 클릭률(CTR), CPA(Cost Per Acquisition) 간의 관계를 분석하여 예산을 최적 배분합니다.
  • 활용 예시 (독립변수 → 종속변수)
    • 독립 변수(X):
      • 광고비 (Google Ads, Facebook Ads, TikTok Ads)
      • 광고 클릭률 (CTR)
      • 방문자 수
      • 전환율 (Conversion Rate)
    • 종속 변수(y):
      • 최종 매출 또는 신규 고객 수
  • 다중 회귀 분석 적용
    • 매출 = β0 + β1 × Google Ads 예산 + β2 × Facebook Ads 예산 + β3 × CTR + β4 × 전환율 + ε
  • 분석 결과를 기반으로, 가장 ROI(투자 대비 수익률)가 높은 광고 채널에 예산을 집중 투자할 수 있습니다.

 

2. 구독 기반 서비스의 고객 이탈 예측 (Churn Prediction)

  • 넷플릭스(Netflix)나 스포티파이(Spotify) 같은 구독 서비스(SaaS)에서 고객이 언제 구독을 취소(Churn)할지 예측합니다.
  • 특정 변수(예: 앱 사용 시간, 이메일 오픈률, 프로모션 사용 여부)가 고객 유지율에 미치는 영향을 분석합니다.
  • 활용 예시 (독립변수 → 종속변수)
    • 독립 변수(X):
      • 월별 앱 사용 시간
      • 이메일 클릭률(이메일 마케팅 반응도)
      • 고객 서비스 이용 횟수
      • 할인 쿠폰 사용 여부
    • 종속 변수(y):
      • 고객 이탈 여부 (0 = 유지, 1 = 이탈)
  • 다중 회귀 분석 적용
    • 고객 이탈 확률 = β0 + β1 × 앱 사용 시간 + β2 × 이메일 반응 + β3 × 쿠폰 사용 여부 + ε
  • 결과 해석
    • 이메일 반응도가 높은 고객은 이탈 확률이 낮다면, 이메일 마케팅을 강화합니다.
    • 앱 사용 시간이 짧은 고객이 이탈할 가능성이 크다면, 푸시 알림 및 개인화 추천 기능을 강화합니다.

 

3. 이커머스(쇼핑몰)에서 가격 할인과 매출의 관계 분석

  • 아마존(Amazon)이나 쿠팡(Coupang)과 같은 이커머스 플랫폼에서 할인율과 매출 간의 관계를 분석합니다.
  • 특정 카테고리(예: 전자제품, 의류 등)에서 어떤 할인율이 가장 효과적인지 데이터 기반으로 최적화합니다.
  • 활용 예시 (독립변수 → 종속변수)
    • 독립 변수(X):
      • 할인율 (%)
      • 제품 카테고리
      • 고객 리뷰 수
      • 광고 노출 수
      • 배송 속도 (익일 배송 여부)
    • 종속 변수(y):
      • 매출 증가율
  • 다중 회귀 분석 적용
    • 매출 = β0 + β1 × 할인율 + β2 × 광고 노출 + β3 × 리뷰 수 + β4 × 배송 속도 + ε
  • 결과 해석
    • 할인율을 20% 이상으로 높여도 매출 증가가 미미하면, 추가 할인보다 광고 최적화가 더 효과적입니다.
    • 제품 리뷰가 많을수록 매출 증가에 긍정적인 영향을 미치면, 리뷰 유도 캠페인을 강화합니다.

 

4. 앱 설치 및 사용자 행동 예측 (App Marketing)

  • 모바일 앱(배달의민족, 카카오톡 등)에서 광고 유형(예: 배너 광고 vs. 동영상 광고)이 앱 설치 및 사용자 행동에 미치는 영향을 분석합니다.
  • 신규 사용자가 앱을 다운로드한 후, 앱 내에서 결제까지 이어지는 경로를 최적화합니다.
  • 활용 예시 (독립변수 → 종속변수)
    • 독립 변수(X):
      • 광고 유형 (배너 vs. 동영상)
      • 앱 설치 후 7일 이내 방문 횟수
      • 앱 내 푸시 알림 클릭률
      • 첫 결제까지 소요된 시간
    • 종속 변수(y):
      • 최종 결제율 (다운로드 후 구매까지 이어진 비율)
  • 다중 회귀 분석 적용
    • 결제율 = β0 + β1 × 광고 유형 + β2 × 방문 횟수 + β3 × 푸시 알림 반응 + ε
  • 결과 해석
    • 앱 설치 후 7일 이내 방문 횟수가 많을수록 결제율이 높다면, 초기 7일 동안 집중적으로 사용자 리텐션 전략을 적용합니다.

 

5. B2B 마케팅 성과 분석 및 리드 전환 최적화

  • B2B SaaS(예: 세일즈포스, HubSpot)에서 잠재 고객(리드)이 실제 유료 고객으로 전환될 확률을 예측합니다.
  • 웹사이트 방문, 이메일 반응, 세일즈 콜 횟수 등이 유료 고객 전환율(Conversion Rate)에 미치는 영향을 분석합니다.
  • 활용 예시 (독립변수 → 종속변수)
    • 독립 변수(X):
      • 이메일 오픈률
      • 세일즈 콜 횟수
      • 무료 체험 신청 여부
      • 제품 데모 시청 여부
      • 리드 스코어 (CRM 분석)
    • 종속 변수(y):
      • 유료 고객 전환율 (%)
  • 다중 회귀 분석 적용
    • 유료 전환율 = β0 + β1 × 이메일 오픈률 + β2 × 세일즈 콜 횟수 + β3 × 무료 체험 신청 + ε
  • 결과 해석
    • 무료 체험을 한 고객이 유료 전환 가능성이 높다면, 무료 체험 홍보를 강화합니다.
    • 이메일 오픈율이 높으면 전환율도 높다면, 이메일 마케팅을 최적화합니다.

 

6. 최적화 및 채널별 성과 분석

  • 문제점
    • 기업이 Google, Facebook, TikTok 등의 여러 광고 채널을 운영하지만, 어떤 채널이 가장 효과적인지 불분명할 수 있습니다.
    • 예산을 어떻게 배분해야 ROI를 극대화할지 모호합니다.
  • 다중 회귀 분석 적용

  • 각 광고 채널이 매출에 미치는 영향력을 분석하고, ROI가 높은 채널에 더 많은 예산을 배분하는 전략을 세울 수 있습니다.
  • 광고비 대비 성과가 낮은 채널은 예산을 줄이고 다른 채널에 집중할 수 있습니다.

 

7.  웹사이트 방문자 수와 전환율의 관계 분석

  • 문제점
    • 웹사이트 방문자가 많아도 전환율(Conversion Rate)이 낮으면 실제 매출이 늘어나지 않을 가능성이 있습니다.
    • 방문자 수를 늘릴 것인지, 전환율을 높일 것인지 최적의 전략을 선택해야 합니다.
  • 다중 회귀 분석 적용

  • 방문자 수와 전환율이 각각 매출에 미치는 영향을 분석하여 어떤 요소를 우선적으로 개선해야 할지 결정할 수 있습니다.
  • 만약 전환율보다 방문자 수가 매출에 더 큰 영향을 미친다면, 방문자 유입을 늘리는 것이 더 효과적인 전략이 될 수 있습니다.

 

8. 할인율과 매출의 관계 분석 (프로모션 최적화)

  • 문제점
    • 할인을 많이 제공하면 매출이 증가할 수도 있지만, 수익성이 낮아질 위험이 있습니다.
    • 어떤 할인율이 가장 적절한지 데이터 기반으로 결정해야 합니다.
  • 다중 회귀 분석 적용

  • 할인율을 높이면 매출이 증가하는지, 또는 일정 할인율을 넘어서면 매출 증가 효과가 둔화되는지 파악 가능합니다.
  • 할인율을 최적화하여 수익성과 매출을 동시에 높이는 전략을 세울 수 있습니다.

 

9. 고객 유지율과 신규 고객 비율 분석 (리텐션 최적화)

  • 문제점
    • 신규 고객을 유치하는 것이 중요하지만, 기존 고객을 유지하는 것이 더 높은 ROI를 제공할 수 있습니다.
    • 고객 유지율과 신규 고객 비율이 매출에 미치는 영향을 분석해야 합니다.
  • 다중 회귀 분석 적용

  • 고객 유지율이 높을수록 매출이 증가하는지, 아니면 신규 고객 유입이 더 중요한지 분석 가능합니다.
  • 만약 기존 고객 유지율이 매출에 더 큰 영향을 미친다면, 신규 고객 유치보다는 기존 고객 유지 전략에 집중하는 것이 효과적일 수 있습니다.

 

10. SNS 공유와 매출의 관계 분석 (바이럴 마케팅 효과 측정)

  • 문제점
    • SNS 공유 횟수가 많아도 실제 매출 증가로 이어지지 않을 수도 있습니다.
    • 어떤 조건에서 SNS 공유가 매출 증가로 연결되는지 분석해야 합니다.
  • 다중 회귀 분석 적용

$$ \text{매출} = \beta_0 + \beta_1 \cdot \text{SNS 공유 횟수} + \beta_2 \cdot \text{구매 전환율} + \epsilon $$

  • 만약 SNS 공유 횟수가 증가할수록 매출이 감소하는 경우, 공유가 실제 구매로 연결되지 않는 문제를 나타낼 수 있습니다.
  • SNS 마케팅 전략을 조정하여 구매로 연결되는 공유 방식(예: 할인 쿠폰 제공)을 강화할 필요가 있습니다.