동일 집단에 대한 전/후 차이의 효과 검정
우리는 현재 표본을 이용하여 평균의 차이가 함의하고 있는 통계적 유의성을 검정하는 일련의 t-test를 살펴보고 있습니다. 단일표본 t-검정을 통해 하나의 표본 평균이 특정한 기준 값과 다른지를 알아보았고, 독립표본 t-검정을 통해 서로 다른 두 집단의 평균의 차이가 통계적으로 유의하게 다른지를 학습했습니다. 그 과정에서 우리는 평균 차이, 표준오차, t-통계량, 자유도, p-value, 효과크기(Cohen's d) 까지 확인했습니다. 또한 등분산 가정이 현실에서 쉽게 깨질 수 있다는 점을 고려하여 독립표본 t-검정에서 현실적인 대안 검정으로 활용되는 Welch t-test의 검정 원리도 짚어보았습니다.
그런데 현실의 데이터 분석에서는 두 집단이 항상 서로 독립적인 것은 아닙니다. 오히려 그 반대의 경우도 자주 등장합니다. 예를 들어 같은 사용자가 웹사이트를 업데이트 하기 전의 유저의 행동과 업데이트 후의 유저의 행동을 비교하거나, 같은 고객에 대하여 프로모션 전의 구매액과 프로모션 후의 구매액을 비교하거나, 같은 매장에 할인 정책을 시행하기 전의 매출 성과와 할인 정책을 시행한 후의 매출 성과를 비교하는 것입니다.
이러한 경우 우리는 더 이상 "서로 다른 두 집단"을 비교하는 것이 아닙니다. 핵심은 같은 대상이 어떤 처치를 기점으로 그 전과 후에 걸쳐 두 번 측정되었다는 점입니다. 이때 독립표본 t-검정을 그대로 적용하여서는 안 됩니다. 왜냐하면 위와 같은 경우에는 서로 다른 독립적인 두 집단이 아니라(즉, 관측 값이 서로 무관한 값이 아니라) 같은 대상에서 나온 서로 연결된 값이기 때문입니다. 이처럼 짝지어진 두 측정 값의 평균 차이를 검정하는 방법이 바로 대응표본 t-검정(Paired samples t-test)입니다. 이번 시간에는 t-검정 시리즈의 마지막인 대응표본 t-검정에 대해서 학습하겠습니다.
대응표본 t-검정의 핵심 아이디어는 단순합니다. 각각의 관측 값에 대한 차이값(Difference score)을 만드는 것입니다. 즉, 관측 값 i에 대하여 처치 후의 관측 값(After, i)과 처치 전의 관측 값(Before, i)의 차이를 계산하는 것입니다. 예를 들어, 아래 세 명의 유저에 대하여 웹사이트 업데이트 전과 후의 헹동 상의 차이(1인당 평균 웹사이트 체류시간) 값을 계산했다고 가정해 보겠습니다.
User1: 14.2(After)-12.4(Before)=1.8(Difference)
User2: 12.1(After)-10.8(Before)=1.3(Difference)
User3: 16.4(After)-15.0(Before)=1.4(Difference)
이때 우리가 검증하고자 하는 것은 After의 평균이나 Before의 평균 그 자체가 아닙니다. 우리의 목표는 "차이 값의 평균이 0인가?" 즉, [μ_difference=0]을 검증하는 것입니다. 따라서 대응표본 t-검정은 사실상 "차이 값에 대한 단일표본 t-검정"과 같습니다. 이것이 대응표본 t-검정을 이해하는 가장 중요한 핵심이라 볼 수 있습니다.
이번 단원에서는 어느 플랫폼 회사에서 주력으로 마케팅하고 있는 모바일 앱 어플리케이션의 업데이트 전과 후의 유저들의 행동 변화에 관한 데이터를 활용하겠습니다. 구체적으로는 유저 1인당 주간 평균 모바일 앱 어플리케이션 체류시간(분)이 업데이트가 된 이후에 증가했는지를 분석해보는 것입니다. 유저 12명에 대한 모바일 앱 어플리케이션 전과 후에 각각 측정한 데이터는 다음과 같습니다.
우리가 이 Data Set에서 알고 싶은 것은 "모바일 앱 어플리케이션 업데이트 이후 유저들의 평균 앱 체류시간이 증가했는가?" 입니다. 사실 이 질문은 방향성이 있습니다. 즉, 업데이터 후가 전보다 증가했는지를 알고 싶은 것입니다. 이에 [d=After-Before]로 정의했기 때문에 업데이트의 효과가 있다면 차이의 평균은 0보다 커야 합니다.
가설 설정과 관련하여 이를 방향성이 없는 양측검정으로 진행할 것인지, 방향성이 있는 단측검정으로 진행할 것인지 검토하게 됩니다. 만약 양측검정 방식을 채택할 경우 "모바일 앱 어플리케이션의 업데이트라는 처치가 있기 전/후의 효과의 유무"로 볼 것입니다. 따라서 귀무가설(H0)의 경우 [H0: μ_d=0], 대립가설(H1)의 경우 [H1: μ_d≠0]으로 설정합니다.
반면 단측검정 방식을 채택할 경우 "모바일 앱 어플리케이션의 업데이트라는 처치가 있은 후 실제 유저 행동 데이터 상으로 효과가 있었는지의 유무"로 볼 것입니다. 따라서 귀무가설(H0)의 경우 [H0: μ_d=0] 또는 [H0: μ_d≤0], 대립가설(H1)의 경우 [H0: μ_d>0]으로 설정합니다.
이 단원에서는 가장 보편적이고 보수적인 검정 방식인 양측검정을 채택하겠습니다.
이번 Data Set에 대한 대응표본 t-검정을 위해 처치 전과 후의 평균의 변화량을 살펴보겠습니다. 이를 위해 모바일 앱 어플리케이션 업데이트 전과 후의 평균을 계산해보겠습니다. 우선, [Before_평균] 입니다. 아래와 같은 방정식으로 평균을 계산하면 31.75가 나옵니다.
다음으로 모바일 앱 어플리케이션 업데이트 후의 평균을 계산해보겠습니다. 아래와 같은 방정식으로 평균을 계산하면 [After_평균]의 경우 34.83이 나옵니다.
즉 이 Data Set에서 모바일 앱 어플리케이션 후 유저들의 평균 체류시간이 약 3.08분 증가했습니다. 하지만 이러한 차이가 우연한 표본의 변동 때문인지, 아니면 모집단 수준에서도 존재하는 통계적으로 유의한 차이인지 검정이 필요합니다.
이 Data Set에서 나타나는 차이 값은 [4,3,4,3,3,4,2,3,3,3,2,3] 입니다. 이 차이 값의 평균(d-bar)이 3.08 입니다. 이제 차이 값의 표준편차를 계산해야 합니다. 표준편차는 [개별 관측 값과 차이 값의 평균의 편차 제곱]의 합을 자유도(df)를 반영한 (n-1)로 나누어 계산합니다. 이 공식을 바탕으로 차이 값의 표본 표준편차를 계산하면, 약 0.67이 나옵니다. 표본의 표준편차는 유저별 변화량이 평균 3.08분 주변에서 얼마의 변동성이 있는지 보여주고 있습니다.
대응표본 t-검정을 통해 밝히려는 검정의 대상은 Before 값과 After 값 그 자체가 아니라 그 차이(Difference)에 관한 것입니다. 따라서 분산 값 역시 Before 분산이나 After 분산이 아니라 "차이 값의 분산"입니다. 독립표본 t-검정에서는 두 집단의 평균 차이의 표준오차를 계산하기 위해 두 집단의 분산과 표본크기를 사용했습니다. 하지만 대응표본 t-검정에서는 이미 각 개인의 전/후 차이를 하나의 값으로 요약했기 때문에 "차이 값이 얼마나 일관되게 나타나는지"가 핵심입니다.
만약 모든 유저가 모바일 앱 어플리케이션 업데이트 이후 거의 비슷한 수준으로 3분 정도로 체류시간이 증가했다면 차이 값의 표준편차는 작아질 것입니다. 반대로 어떤 유저는 크게 늘었고, 어떤 유저는 줄어들었다면 차이 값의 표준편차는 커질 것입니다. 즉, 대응표본 t-검정은 단순히 평균 증가량만 보는 것이 아니라 그 증가가 유저들 사이에서 얼마나 일관되게 나타났는지를 함께 반영합니다.
대응표본 t-검정도 결국 t-검정이기 때문에 표준오차가 필요합니다. 차이 값의 표준오차의 공식은 다음과 같습니다.
차이 값 d1, d2, d3, ········, dn을 하나의 표본이라고 한다면, 그 평균 값 [SE_difference]의 표준오차는 단일표본 t-검정과 정확히 갖은 구조를 갖습니다. 이 Data Set의 표준편차는 0.67, 그리고 표본의 크기는 12이므로, [SE_difference=0.19]가 나옵니다.
대응표본 t-검정의 t-통계량 공식은 아래와 같이 분자는 [표본 차이 값의 평균과 귀무가설 하에서 차이 값의 평균의 차이], 분모는 [차이 값의 평균의 표준오차] 입니다. 귀무가설에 대하여는 차이가 없다[μ_d=0] 이므로, 결국 t-통계량을 계산하는 공식은 [차이 값의 평균을 차이 값의 평균의 표준오차로 나눈 값]이 됩니다.
이 Data Set의 값들을 t-통계량 공식을에 대입하면 [t-통계량=15.9]로 나옵니다. 이 값은 관찰된 평균 변화량이 표준오차 대비 약 16배에 해당할 정도로 매우 큰 값임을 나타냅니다.
유의수준 α=0.05, 양측검정 기준으로 p-value≤0.05이면, 귀무가설 기각, p-value>0.05이면 귀무가설을 기각하지 않는 것으로 판단하겠습니다. 자유도 11, 유의수준 0.05, 양측검정 t-임계값은 대략적으로 ±2.201 입니다. 아래 t-test table에서 확인할 수 있습니다.
우리가 계산한 t-통계량=15.9이므로, 절댓값 기준으로 임계값 2.201보다 훨씬 큰 값입니다. 따라서 귀무가설은 기각됩니다. 자유도 11에서 t-통계량이 15.9이면, p-value 기준으로 p<0.001보다 낮은 확률입니다. 즉, 모바일 앱 어플리케이션 업데이트 전과 후의 평균 체류시간 차이가 0이라는 귀무가설에서, 이 정도로 큰 평균의 변화량은 우연히 관찰될 가능성이 매우 낮습니다.
[ Executivey Summary ] 대응표본 t-검정을 실시한 결과, 모바일 앱 어플리케이션 업데이트 전과 후의 유저들의 모바일 앱 어플리케이션 평균 체류시간에는 통계적으로 유의한 차이가 발견되었습니다. [t(11)≒15.9, p<.001]로 업데이트 후 평균 체류시간은 약 34.83분으로 업데이트 전 평균 31.75분보다 약 3.08분 높게 나타났습니다. 표본 데이터에서 모바일 앱 어플리케이션 업데이트 후 유저들의 평균 체류시간이 증가한 결과는 우연한 표본의 오차만으로는 설명되기 어려울 정도로 일관되게 증가한 것으로 보입니다.
대응표본 t-검정에서도 효과크기를 살펴보아야 합니다. 업데이트 전과 후의 평균 체류시간의 변화가 통계적으로 유의할 정도로 의미가 있다는 사실만으로 실제 얼만큼의 효과가 있었는지를 알 수는 없기 때문입니다. 대응표본 t-검정에서 효과크기는 [Cohen's d=차이 값의 평균/차이 값의 표준편차]로 계산합니다. 차이 값의 평균은 3.08, 차이 값의 표준편차는 0.67이므로, [Cohen's d=3.08/0.67≒4.60]입니다. 이는 매우 큰 효과크기입니다. 즉, "모바일 앱 어플리케이션 전/후 평균 변화량의 차이가 표준편차의 약 4.6배"입니다. 즉, 유저별 평균 체류시간의 변화량이 업데이트 후 일관되게 증가 방향으로 나타났음을 시사합니다.
독립표본 t-검정에서는 전통적인 Student t-test에 따라 두 집단의 평균 차이를 합동표준편차(Pooled standard deviation)으로 나눴습니다. 하지만 대응표본 t-검정에서는 독립된 두 집단이 아니라 같은 대상의 변화량이 핵심이기 때문에, 변화량 자체의 표준편차로 표준화하는 방식을 사용합니다. 즉, 대응표본에서는 효과의 크기를 Before와 After의 변동성이 아닌 '차이 값의 변동성에 비해 평균의 변화가 얼마나 큰 것인지'를 보는 것입니다.
이번 Data Set에서 모바일 앱 어플리케이션의 평균 변화량에 대한 95% 신뢰구간도 계산할 수 있습니다. 우선 신뢰구간을 계산하는 공식은 아래와 같습니다.
①은 3.08, ②는 [t_0.25(df=11)=2.201], ③은 0.19이므로, [CI(95%)=3.08±2.201×0.19] 입니다. 따라서 [CI=3.08±0.42] 이므로 대략 (2.66, 3.50) 정도의 95% 신뢰구간을 얻게 됩니다. 따라서 "모집단 수준에서 모바일 앱 어플리케이션 업데이트 후 체류시간의 평균 증가량은 대략 2.66분에서 3.50분 사이일 가능성이 높다."라고 해석하게 됩니다. 신뢰구간 전체가 0보다 큰 값이므로, 업데이트의 효과가 '증가 방향'이라는 점을 분명히 보여주기도 합니다.