아래 글은 모두 'step by step [파이썬 비즈니스 통계분석]' 교재를 기초로 진행한 내용입니다. 모든 장은 이전 장과 이어져 있으니, 세부 내용 및 이전 글이 궁금하시다면 해당 블로그의 이전 장과 교재를 참고해주시면 되겠습니다.~~
1. T-검정
두 개 이하의 집단에서 수치형 변수의 평균을 구하고, 일치성을 판단하는 t - 검정 기법을 알아보자!
T - 검정이란?
평균을 비교하는 분석 기법이다. 2개 이하의 집단에서 평균을 비교하는 분석 기법은 t- 검정과 z- 검정이 있다!
모집단의 분산을 알고 있고, 표본의 수가 많을 때엔 z-검정을 사용한다. 하지만, 대부분의 경우에는 t-검정을 사용하는데, 분석 상황에서 모집단의 분산을 알고 있기가 힘들기 때문에 그렇다.
Ex)
- A 통신사 고객들의 하루 평균 통화량이 60분이라고 알려진 상태에서 실제 최근 1개월 간 A 통신사 이용 고객들의 하루 평균 통화량을 구해 비교한다.
1-1) 일표본 t-검정(one sample t-test) : 특정 수치로 알려진 모집단의 평균과 주어진 표본의 평균을 비교한다.
기존의 평균값들이 맞는지 재확인할 필요가 있을 때 우리는 일표본 t-검정을 사용한다. 단일 표본의 수치형 변수의 평균값이 기존에 받아들여졌던 특정값(모집단의 평균)과 실제로 일치하는지 판단할 수 있는 통계분석 기법.
모분산을 아는 경우(z-검정) / 모분산을 모르는 경우(t-검정)으로 구분할 수 있다. 검정 통계량 값을 산출할 때 z-검정의 경우 정확한 모집단의 표준편차를 이용하지만, t-검정의 경우 모집단의 추정 표준편차를 이용한다! 따라서 모분산을 모르는 경우가 대부분이기 때문에, t-검정을 사용하는 건 크게 상관이 없다.
그렇다면, t값이 의미하는 건 무엇인가? : 이론적 평균(모집단 평균)과 실제 평균(표본 평균)의 차이가 허용 가능한 오차수준(표준오차)에 비해 몇 배 더 큰 지를 나타내는 값이다. 따라서, t값이 커질수록, 모집단의 평균과 표본평균의 차이가 크다는 의미이며, 이는 '우리 기업의 평균 고객 연령은 30세이다'와 같이 기존에 받아들여졌던 특정 수치가 실제로는 다름을 의미한다.

t값을 도출했다면, 통계분포표를 이용해 가설을 검증한다.
특징)
- 분석될 총 자료 수(n)를 파악하고, 자유도를 확인한다. (일표본 검정의 경우 자유도는 집단 수 - 1)
- 연구자의 목적에 맞게 유의수준을 지정한다.
- 해당 자료의 자유도와 유의확률을 바탕으로 통계분포표의 임계치 값을 확인한다. 가령, 자유도가 15, 유의수준을 95% (0.05)로 정했다면 검정 통계량 t값의 임계치는 1.753으로 제시된다.
- 도출된 임계치와 계산된 t 통계량 값을 비교해 가설의 채택여부를 결정한다.
# 실습
작년 A 쇼핑 vip 고객들의 평균 구매액은 약 700만원. 이에 A 쇼핑은 올해 vip 그룹 고객들의 평균 구매액 목표치를 10% 성장한 770만원으로 결정했다. 올해 vip 고객들의 평균 구매액 목표치인 770만원을 달성했는지 판단하기 위해 일표본 t-검정을 통해 검정해보자!
Ex)
- H0(귀무가설) : A 쇼핑 vip 고객들의 총 매출액 평균은 770만원이다.
- H1(연구가설) : A 쇼핑 vip 고객들의 총 매출액 평균은 770만원이 아니다.
t-value , p-value(유의확률)을 우선 구해보자.
from scipy import stats
print('총매출액 평균: ', df.총_매출액.mean())
print(stats.ttest_1samp(df['총_매출액'], 7700000))
# 총매출액의 평균: 7068689.76 원
# t-value: -2.8657... , p-value: 0.00424...
결과
A쇼핑 vip 고객들의 총 매출액 산술평균값은 7,068,690원, t-검정값은 -2.86, 유의확률 0.0042 이므로, A 쇼핑 vip 고객들의 총 매출액 평균은 770만원이라는 귀무가설은 기각된다. 작년 매출액 평균과 거의 차이가 없으며, 목표치를 달성하지 못하였다. 매출액 목표치를 너무 높게 설정한 것은 아닌지 검토할 필요가 있으며, vip 고객들의 매출액에 영향을 미치는 원인을 조사하여 매출 신장의 대책을 마련해야 한다.
1-2) 독립표본 t-검정(two sample t-test) : 독립된 두 표본 집단의 평균을 비교한다.
Ex)
- A 통신사와 B 통신사 고객들의 하루 평균 통화량을 비교한다면?
쇼핑몰은 크게 온라인 쇼핑몰과 오프라인 쇼핑몰로 운영되는데, 두 채널의 고객 평균 객단가는 동일한가? 만약 두 채널의 평균 객단가가 유의한 차이를 보인다면 각 쇼핑채널에 대한 전략이 달라져야 한다. 이 문제를 검토할 수 있도록 지원하는 분석 기법이 독립표본 t-검정이다.
Ex)
- 남/녀 그룹의 구매액 차이, 수도권과 비수도권 고객의 교차구매지수 비교, 유지고객과 이탈고객 간의 구매빈도 차이 등. 두 개의 독립된 그룹 간의 특정값의 평균을 비교하기 위해 독립표본 t-검정을 사용할 수 있다.
결국, 서로 다른(독립된) 모집단 간의 평균을 비교하기 위한 검정기법이 바로 독립표본 t-검정. 산출 방식: 두 표본의 분산이 같을 경우와 다른 경우 적용되는 공식이 다르지만, 두 표본의 표준편차 차이 값을 산출하는 공식만 다를 뿐 기본 원리 자체는 동일하다.
t값은 두 표본의 평균 차이값과 두 모집단의 평균 차이값 간의 편차가 허용 가능한 오차수준(표준오차)에 비해 몇 배 더 큰지를 나타내기 때문에, 일표본 t-검정과 동일하게 t값이 커질수록 두 집단 평균의 차이가 크다!

# 실습
A 쇼핑의 마케팅 부서는 콜센터를 통해 클레임을 받는다. 클레임 고객은 상대적으로 매장을 찾는 횟수가 적어져 이탈위험도가 높을 것이라고 예상된다. 이를 위해 클레임 고객과 비클레임 고객 간의 매장 방문 횟수가 실제로 차이가 있는지 검증해보자.
- H0(귀무가설) = A 쇼핑 클레임 고객들과 비클레임 고객들의 방문횟수 차이는 없다.
- H1(연구가설) = A 쇼핑 클레임 고객들과 비클레임 고객들의 방문횟수 차이는 있다.
먼저, 평균과 등분산 여부, t-value와 p-value값을 알아보자.
등분산??
Equal Variance. 관측값의 두 분산이 같은 분산을 가지는 형태.
클레임이 없는 고객은 no_claim 에, 클레임이 있는 고객은 claim에, 넣고, 각각의 방문빈도를 데이터 프레임의 배열 형태로 만든다. 이어서 stats 모듈의 bartlett()함수를 이용해 등분산 검정을 수행하고, pvalue 값까지 도출한다. 등분산 검정 결과를 바탕으로 F값은 13.62...., p-value는 0.05 미만이 나옴으로써 귀무가설이 기각되고, 두 집단의 분산은 동일하지 않다는 것을 알게 되었다.
print(stats.ttest_ind(df2, df3, equal_var = False)
print('클레임 접수여부(0) 고객 평균방문빈도: ', no_claim.방문빈도.mean())
print('클레임 접수여부(1) 고객 평균방문빈도: ', no_claim.방문빈도.mean())
# Ttest_indResult(statistic = 2.59572... , p-value = 0.009577...)
# 클레임 접수여부(0) 고객 평균방문빈도: 28.18484288...
# 클레임 접수여부(1) 고객 평균방문빈도: 24.73638344...
독립표본 t-검정은 ttest_ind() 함수를 사용한다. equal_var 인자는 등분산 여부에 따라 등분산일 경우, True, 등분산이 아닐 경우 False로 설정한다.
결과
위에서 등분산(더보기)이 아님을 알았으므로, False로 설정한 뒤 각 고객에 따른 방문 빈도 횟수 평균을 출력한다. 따라서 등분산이 가정되지 않은 t 통계량을 확인한 상태에서 가설 검증을 수행해야 했다. 여기서 클레임 접수 경험이 있는 고객의 평균 방문 횟수는 24회, 없는 고객은 평균 방문 횟수가 28회, t-값은 2.60, p-value는 0.0096으로 도출되었다. 귀무가설이 기각됨과 동시에 클레임 접수 여부에 따라 방문 빈도는 차이가 있다고 말할 수 있다.
차이가 크진 않지만, 통계적으로 유의한 차이가 있으므로, 클레임 접수 경험이 있는 고객들을 대상으로 별도의 관리를 할 필요가 있다!
1-3) 쌍체표본 t-검정(paired sample t-test) : 실험 전 집단과 실험 후 집단과 같이 쌍체로 이루어진 두 표본 집단의 평균을 비교한다.
A 통신사 고객 중 S사의 새로운 기기로 교체한 고객들의 교체 이전과 이후 하루 평균 통화량을 비교한다.
동일한 표본이 두 개의 서로 다른 상황(실험 처리 or 시간의 흐름)에서 특정 수치형 변수의 평균이 동일한지의 여부를 판단하는 분석법이다. t값은 실험 전과 후 혹은 특정 시점과 그 이후 시점과 같이 쌍체로 이루어진 두 표본의 평균 차이값과 두 쌍체 모집단의 평균 차이값의 편차가 허용 가능한 오차수준(표준오차)에 비해 몇 배 더 큰지를 나타낸다. 따라서, t값이 커질수록 두 쌍체 그룹의 평균의 차이가 크다는 말과 같다.

특징)
- 독립 표본 t-검정과는 달리, 쌍체표본 t-검정은 분석 대상의 표본이 반드시 대응되어야 한다.
- 쌍체 표본 데이터는 시간 상 전후의 개념이 있기 때문에, 집단 간의 독립성 가정은 필요하지 않으며, 두 모분산이 같다고 가정할 필요도 없다.
- 두 데이터가 완전한 쌍체를 이루지 않는다면, 결측값이 존재하는 것이므로, 결측값을 처리해야 한다.
-> 삭제법, 표본 평균법, 단순 대치법, 다중 대치법, Hot-deck 대체법 등을 사용해서 결측값을 처리해야 한다!(나중에 알아보자.)
# 실습
A 쇼핑 마케팅 팀에서는 단순 포인트 적립 및 결제 시 차감 사용 방식으로 운영한 멤버십 제도를 등급별 사은품 및 쿠폰 지급 기능이 추가된 로열티 프로그램으로 개선했다. 이를 통한 고객들의 로열티 프로그램 만족도의 변화가 통계적으로 유의한지 알아보기 위해 신규 멤버십 프로그램 도입 전과 후의 고객만족도에 대한 쌍체표본 t-검정을 수행해보자!
- H0(귀무가설) : A 쇼핑 고객들의 멤버십 프로그램 도입 전 만족도와 도입 후 만족도의 차이는 없다.
- H1(연구가설) : A 쇼핑 고객들의 멤버십 프로그램 도입 전 만족도와 도입 후 만족도의 차이는 있다.
stats.ttest_rel(df['멤버쉽_프로그램_가입후_만족도'], df['멤버쉽_프로그램_가입전_만족도'])
# TtestResult(statistic = 29.5604107..., p-value = 1.73191405..)
결과
t-value : 29.5604... p-value : 1.7319...e-138 이 도출됐다. 귀무가설은 기각되고, 신규 프로그램의 가입 전 고객만족도와 가입 후 고객만족도의 차이는 있다고 볼 수 있다. 따라서, 단순 포인트 중심의 멤버십 프로그램보다 고객 구매가 증대될수록 받는 사은품의 수준과 쿠폰 금액이 커지는 새로운 멤버십 프로그램을 고객들이 더 선호함을 알 수 있다.
결론
마케팅에 활용되는 분석 방법과 적용이 이루어지니 실무에 임하는 느낌이다. 특히 멤버십 프로그램의 적용 후, 적용 전의 차이를 도출해내는 쌍체 표본 t-검정 과정이 굉장히 뚜렷하고 분명한 인사이트를 제공했고, 이를 바탕으로 새로운 프로그램과 혹은 아이템을 개발하는 과정이 또 필요하구나를 알 수 있었다.
결국, 데이터를 기반한 통계적 분석이 첫 번째고, 이를 활용한 사업, 프로젝트를 어떻게 알차게 짜야하는지가 중요하구나!!!
재밌다 재밌어!!
이미지출처)
"https://www.flaticon.com/kr/free-icons/-" 아이콘 제작자: paonkz - Flaticon
'데이터 분석(DA) > 📊 통계분석' 카테고리의 다른 글
범주형 데이터의 분석 (0) | 2024.01.12 |
---|---|
상관관계 분석 (0) | 2024.01.06 |
기술통계분석 (0) | 2023.12.31 |
마케팅을 위한 통계분석 [Business Statistics Analysis] (1) | 2023.12.28 |
Step by Step [파이썬 비즈니스 통계분석] (1) | 2023.12.26 |