가격 탄력성 추정 — log-log 회귀와 instrumental variable로 가격 효과 분리
가격을 5% 올리면 매출이 어떻게 바뀌나. 단순 회귀로 가격을 매출에 회귀하면 동시 인과(simultaneity) 함정에 빠집니다. log-log 회귀 + instrumental variable로 진짜 가격 탄력성을 분리하는 방법, 마케터·운영자가 가격 의사결정에 같이 가져갈 도구.
가격을 5% 올리면 매출은 얼마나 바뀌나. 운영팀과 재무팀이 매주 묻는 질문이고, 답은 가격 탄력성 한 숫자에 압축됩니다. 단순 회귀로 가격을 매출에 회귀하면 동시 인과(simultaneity)의 함정에 빠져 진짜 효과의 절반·반대 방향이 나옵니다. log-log 회귀 + instrumental variable로 가격 탄력성을 깨끗하게 분리하는 도구, 그리고 마케터가 의사결정에서 어떻게 활용할지 정리합니다. 이 시리즈의 마지막 글입니다.
1. 가격 탄력성이란
가격 탄력성(price elasticity of demand)의 한 줄 정의는 다음입니다.
가격 1% 변화에 수요(또는 매출량) 몇 % 변화하느냐의 비율입니다. 가격을 5% 올렸을 때 수요가 7% 빠지면 탄력성 -1.4. 음수가 일반적이고(가격 올리면 수요 감소), 절댓값이 클수록 가격에 민감.
운영적 의미:
- — 탄력적: 가격 인상이 매출 감소로 이어짐 (가격 동결·인하 검토)
- — 비탄력적: 가격 인상이 매출 증가로 이어짐 (가격 인상 가능)
- — 단위 탄력적: 매출 그대로
이 한 숫자가 가격 의사결정의 핵심 입력입니다. 카테고리·세그먼트·시즌별로 다르고, 같은 상품이라도 시간에 따라 흔들립니다.
2. log-log 회귀 — 탄력성을 직접 회귀 계수로
가격 탄력성을 추정하는 가장 단순한 회귀는 log-log 회귀입니다. 양변에 자연로그를 씌워 회귀합니다.
이 회귀의 계수 가 그대로 가격 탄력성이 됩니다. log 변환 덕분에 절대값이 아니라 비율 변화를 다루기 때문입니다.
운영 코드는 한 줄.
import numpy as npimport statsmodels.formula.api as smf
df['ln_q'] = np.log(df['quantity'])df['ln_p'] = np.log(df['price'])model = smf.ols('ln_q ~ ln_p', data=df).fit()eta = model.params['ln_p'] # 가격 탄력성이게 본문의 유일한 코드입니다. 단순한 단일 회귀로 탄력성이 나오는 듯 보이지만, 마케팅·이커머스 데이터의 가격 탄력성 추정은 이 단순 회귀로 끝나지 않습니다.
3. Simultaneity bias — 단순 회귀가 거짓말하는 이유
가격과 수요는 동시에 움직입니다. 가격이 수요에 영향을 주는 만큼, 수요(또는 수요 충격)도 가격에 영향을 줍니다.
- 시즌 수요 폭증 → 운영팀이 가격 인상으로 대응
- 경쟁사 신상품으로 수요 위축 → 가격 인하로 대응
- 재고 처분 → 가격 인하 + 그 결과로 수요 증가
이 동시성(simultaneity) 때문에 단순 회귀의 는 진짜 수요 곡선의 기울기가 아니라 수요 곡선과 공급(가격 책정) 곡선이 만나 그린 점들의 패턴이 됩니다. 결과:
- 진짜 탄력성이 -1.5 인데 단순 회귀로 -0.3 같이 작은 값 나옴
- 어떤 데이터에서는 양수가 나오기도 함 (가격 올렸을 때 매출 늘어 보임)
- 카테고리별로 결과가 일관되지 않음
운영자가 “단순 회귀 결과로는 가격 인상이 매출에 도움 되는 것처럼 나온다”고 보고하면, 그건 simultaneity bias의 산물일 가능성이 큽니다.
4. Instrumental variable — 외생적 가격 변동만 골라내기
simultaneity를 푸는 표준 도구가 instrumental variable(IV)입니다. 9편의 CACE/LATE 글에서 본 IV 프레임이 여기에 그대로 적용됩니다.
좋은 IV의 조건은 다음입니다.
- 가격 에 영향을 줌 (relevance)
- 수요 충격 과 무관 (exclusion restriction)
마케팅 가격 분석에서 자주 쓰이는 IV 후보:
- 비용 충격 — 원자재 가격·환율 변화 (수요와 무관, 가격에만 영향)
- 경쟁사 가격 — 같은 카테고리 다른 브랜드의 가격 (자기 상품 수요 충격과 약한 상관)
- 지역 간 가격 차이 — 다른 지역의 가격 (지역 수요 충격과 무관할 때)
- 약속된 프로모션 일정 — 사전 결정된 할인 일정 (가격을 외생적으로 변동시킴)
운영 코드는 9편 글에서 본 IV 2SLS와 거의 같습니다. 비용 충격 cost_shock을 instrument로 두고, ln(price)를 ln(quantity)에 회귀하는 형태. linearmodels의 IV2SLS로 한 줄. 이 회귀는 비용 충격이 일으킨 가격 변동만 떼어내 그 부분에서만 수요가 어떻게 반응했는지를 봅니다. 시즌·수요 충격 같은 동시성 부분은 자동으로 제거됩니다.
5. MMM 안에서 가격 변수 — 탄력성의 또 다른 추정 자리
huny.log의 MMM 입문 글에서 다룬 marketing mix modeling은 가격 변수를 자연스럽게 넣을 수 있습니다. MMM 회귀식의 한 변수로 가격이 들어가면, 광고·시즌·매크로 환경을 동시에 보정하면서 가격 탄력성을 함께 추정할 수 있습니다.
광고 효과·시즌·요일 효과를 명시적으로 보정하면 가격 변수에 들어가는 simultaneity가 일부 줄어듭니다. 완전한 IV는 아니지만, 마케팅 운영에서 자주 쓰이는 실용적 절충입니다.
| 도구 | 강점 | 약점 |
|---|---|---|
| 단순 log-log 회귀 | 단순 | simultaneity 노출 |
| log-log + IV (2SLS) | 인과 보증 | 좋은 IV 찾기 어려움 |
| MMM 안의 가격 변수 | 광고·시즌 동시 보정 | 부분적 보정 |
| 가격 변경 자연실험 + DiD | 인과 보증 + 단순 | 가격 변경 이벤트 필요 |
운영적으로 자주 쓰이는 결합 패턴은 다음입니다.
- 정기 가격 분석 — MMM 안의 가격 변수 (분기별 보고)
- 큰 가격 변경 검증 — DiD (1편 DiD) 또는 Synthetic DiD
- 인과 정밀도 필요 — IV (비용 충격·경쟁사 가격 활용)
6. 마케팅 실무 케이스 3개
6-1. 카테고리별 탄력성 매트릭스
같은 카테고리 안에서 SKU별·세그먼트별 탄력성을 매트릭스로 정리합니다. 신선식품의 탄력성은 보통 -1.5~-2.0(매우 탄력적), 가공식품은 -0.5~-1.0(중간), 명품은 0에 가깝습니다(비탄력적). 카테고리별 매트릭스가 가격 의사결정의 토대가 됩니다.
6-2. 가격 인상의 매출 영향 사전 시뮬레이션
가격 5% 인상 안을 검토할 때, 카테고리별 탄력성을 바탕으로 매출 영향을 시뮬레이션합니다. 탄력성 -1.2면 5% 가격 인상은 6% 수량 감소 + 5% 단가 상승 → 매출 약 1% 감소 예상. 의사결정자에게 “수량은 6% 줄지만 단가가 5% 올라 매출은 약 1% 감소” 같은 형태로 보고할 수 있습니다.
6-3. 프로모션·할인 효과 측정
할인은 가격 인하의 한 형태입니다. 같은 탄력성 프레임으로 “20% 할인의 수량 증가 효과”를 추정할 수 있습니다. 다만 할인은 마케팅 채널의 인지·제시 방식에 따라 효과가 다르므로, 채널별로 다른 탄력성을 추정하는 게 안전합니다.
7. 가격 탄력성 추정이 깨질 때 — 흔한 함정 3가지
7-1. 한 가지 가격 변동만 사용
같은 가격에서 데이터만 많으면 탄력성 추정은 거의 0이 됩니다. 가격 변동(variation)이 있어야 추정 가능합니다. 가격 인상·인하·프로모션 시점이 들어 있는 데이터로 분석하세요. 가격 변동이 너무 작으면 분산 폭발로 신뢰구간이 매우 넓어집니다.
7-2. 객단가 변화를 놓침
가격 인상이 반드시 단순 가격 인상으로만 작동하지 않습니다. 일부 유저는 더 싼 SKU로 옮기고, 일부는 SKU 자체를 안 사고 떠납니다. 단일 가격-수량 관계만 보면 객단가 변화·SKU 이동 같은 부수 효과를 놓칩니다.
7-3. 시간에 따른 탄력성 변화
탄력성은 시간에 따라 흔들립니다. 시즌·경쟁사·매크로 환경이 변하면 같은 카테고리도 다른 탄력성을 가집니다. 분기별로 탄력성을 다시 추정하는 운영이 필요합니다. 한 번 추정한 -1.2를 1년 동안 그대로 쓰면 의사결정이 한 발 늦습니다.
8. 시리즈 마무리 — 마케터가 가져가는 도구상자
10편 시리즈를 통해 마케팅 의사결정의 도구 지형을 한 단계 더 채웠습니다.
- 1편 Sequential testing — A/B를 매일 봐도 되는 통계 프레임
- 2편 Shapley value 어트리뷰션 — 채널 기여도의 공정한 분배
- 3편 Stratified A/B — 분산 도구상자의 두 번째 무기
- 4편 코호트 retention curve — 같은 곡선에서 5가지 질문
- 5편 Switchback experiment — 자원 공유 시장의 실험 설계
- 6편 Survival 분석 — 이탈 시점 분포와 hazard ratio
- 7편 FDR — 메트릭 다수 검정의 거짓 양성 통제
- 8편 Thompson Sampling — cold start 환경의 의사결정
- 9편 CACE/LATE — 부분 준수 환경의 인과 효과
- 10편 가격 탄력성 — IV로 분리하는 가격 효과
이전 시리즈에서 다룬 도구들과 함께 보면, 마케터가 가져갈 도구상자가 다음처럼 짜입니다.
- 실험 설계 — A/B + Sequential + Stratified + Switchback
- 인과추론 — DiD + Geo-lift + Synthetic DiD + IV (CACE/LATE·가격 탄력성)
- 예측·신뢰구간 — 베이지안 + Conformal Prediction
- 고객 모델 — BG/NBD + Survival + Uplift
- 어트리뷰션·기여도 — Shapley + MMM + 다중 터치
- 운영·통계 안전 — FDR + Thompson Sampling + Cold start
각 도구는 자기 자리의 답을 줍니다. 도구를 더 안다고 모든 자리에 만능이 되는 건 아니지만, 맞는 자리에 맞는 도구를 골라가는 감각은 의사결정의 깊이를 다르게 만듭니다.
9. 마치며 — 도구는 의사결정의 신뢰를 만든다
10편을 통해 마케팅 의사결정의 인프라를 한 단계 두텁게 했습니다. 모든 도구가 모든 자리에 필요한 건 아니지만, 도구상자에 들어 있다는 것이 의사결정 자리에 들어갈 때 자신감의 토대가 됩니다.
같은 데이터에 두 도구의 결과를 함께 보고하고, 그 차이가 어디서 오는지 설명할 수 있다면, 의사결정은 단단해진다.
다음 시리즈는 huny가 직접 풀고 싶은 자리·풀어본 자리를 우선해 다른 도메인(ai·project·essay)을 보강하는 방향으로 가는 게 자연스러울 것 같습니다.
참고
- Hausman (1978), Specification Tests in Econometrics, Econometrica — IV 검정의 표준 도구
- Berry, Levinsohn & Pakes (1995), Automobile Prices in Market Equilibrium, Econometrica — 산업조직학의 BLP 모델 — 마케팅 가격 분석 표준
- Nevo (2000), A Practitioner’s Guide to Estimation of Random-Coefficients Logit Models of Demand — 실무 적용 가이드
- Athey & Wager (2019), Estimating Treatment Effects with Causal Forests, Observational Studies — ML 기반 탄력성 추정
- linearmodels — Python IV·panel 패키지 — 운영 적용 표준
- huny.log 내부 글: DiD, MMM 입문, CACE/LATE, Conformal Prediction
퍼포먼스 마케팅 카테고리의 다른 글
전체 보기 →-
2026·06·05
ROAS 보고서가 늘 거짓말하는 이유 — incrementality 3대장
Meta 대시보드 ROAS 5가 실제로는 1.x인 이유. last-click·view-through·incremental 세 가지 ROAS의 차이와, holdout·geo-lift·ghost ads·conversion lift로 진짜 증분을 측정하는 법을 마케터 시선으로 정리합니다.
-
2026·05·16
DSP·SSP·DMP 인프라 해부 — 매체 영업 미팅에서 듣는 약자들의 정체
매체 영업 미팅에서 DSP, SSP, DMP, CDP, ad exchange, 헤더비딩 같은 약자들이 쏟아집니다. 각각이 어느 회사이고, 광고비가 어디로 흘러가며, 마케터가 의사결정할 때 어떤 의미를 갖는지 한 글에 정리합니다.
-
2026·05·16
Lookback window가 ROAS를 바꾸는 법 — click 7d, view 1d, 28d, 90d의 차이
같은 캠페인이라도 attribution lookback window를 click 7d / view 1d / 28d / 90d 중 어느 걸로 보느냐에 따라 ROAS가 두 배까지 차이납니다. 매체별 default와 그것을 마케터가 어떻게 의사결정에 써야 하는지를 정리합니다.
-
2026·05·09
Brand lift study 설계 — 광고가 인지·호감도를 끌어올렸나
브랜드 광고는 ROAS로 잡히지 않고 인지·호감도·구매의향으로만 측정됩니다. 노출 그룹과 비노출 그룹을 비교하는 brand lift study의 설계, 표본 계산, 실무 함정을 마케터 시선에서 정리.