테스트 통계 애그리게이터

테스트 통계 애그리게이터 (Test stats aggregators)

Apache Druid의 druid-stats 확장은 z-점수(z-score)와 p-값(p-value) 같은 테스트 통계를 계산하는 애그리게이터를 제공해요. 수학적 배경과 상세 내용은 Democratizing Experimentation Data for Product Innovations를 참고하세요.

출처: 문서

본문

이 애그리게이터들을 사용하려면 반드시 druid-stats 확장을 포함해야 합니다.

두 표본 z-검정(ztest) 포스트 애그리게이터의 Z-Score

자세한 내용은 Making Sense of the Two-Proportions Test와 An Introduction to Statistics: Comparing Two Means를 참고해 주세요.

z = (p1 - p2) / S.E.  (assuming null hypothesis is true)

p1과 p2는 아래를 참고하세요. S.E.는 표준 오차(standard error)를 뜻하며 다음과 같이 계산합니다.

S.E. = sqrt{ p1 * ( 1 - p1 )/n1 + p2 * (1 - p2)/n2) }

(p1 – p2)는 두 표본 비율 사이의 관측된 차이예요.

zscore2sample 포스트 애그리게이터

  • zscore2sample: 이진 변수(예: 성공 여부)를 연속 변수(예: 전환율)로 변환하면서 두 표본 z-검정을 통해 z-점수를 계산합니다.
{  "type": "zscore2sample",  "name": "<output_name>",  "successCount1": <post_aggregator> success count of sample 1,  "sample1Size": <post_aggregaror> sample 1 size,  "successCount2": <post_aggregator> success count of sample 2,  "sample2Size" : <post_aggregator> sample 2 size}

이 포스트 애그리게이터는 두 모집단 비율을 위해 이진 변수를 연속 변수로 변환한다는 점을 기억해 두세요. 구체적으로는

p1 = (successCount1) / (sample size 1)

p2 = (successCount2) / (sample size 2)

과 같이 계산돼요.

pvalue2tailedZtest 포스트 애그리게이터

  • pvalue2tailedZtest: zscore2sample 포스트 애그리게이터로 계산한 z-점수를 입력받아 양측 z-검정의 p-값을 구합니다 — pvalue2tailedZtest(zscore)
{  "type": "pvalue2tailedZtest",  "name": "<output_name>",  "zScore": <zscore post_aggregator>}

사용 예시 (Example usage)

이 예시에서는 zscore2sample 포스트 애그리게이터로 z-점수를 계산하고, 그 z-점수를 pvalue2tailedZtest 포스트 애그리게이터에 넘겨 p-값을 계산해요.

JSON 쿼리 예시는 다음과 같습니다.

{  ...    "postAggregations" : {    "type"   : "pvalue2tailedZtest",    "name"   : "pvalue",    "zScore" :    {     "type"   : "zscore2sample",     "name"   : "zscore",     "successCount1" :       { "type"   : "constant",         "name"   : "successCountFromPopulation1Sample",         "value"  : 300       },     "sample1Size" :       { "type"   : "constant",         "name"   : "sampleSizeOfPopulation1",         "value"  : 500       },     "successCount2":       { "type"   : "constant",         "name"   : "successCountFromPopulation2Sample",         "value"  : 450       },     "sample2Size" :       { "type"   : "constant",         "name"   : "sampleSizeOfPopulation2",         "value"  : 600       }     }    }}

더 알아보기 (Learn more)