BigQuery에서 AB 테스트 결과의 검정(모비의 차이의 검정)
개요와 동기
사용자를 두 개 이상의 그룹으로 나누어 각 그룹에 대한 조치를 실시하여 반응의 차이AB 테스트를 관찰하고 통계 검정에서 각 그룹의 반응이 통계적으로 현저한 차이가 있는지 확인하는 것이 중요하다.
인용: Unity Analythics ABTesting의 통계 검정 결과 화면significant=yes
은 통계적 의미차가 있음)
https://docs.unity3d.com/ja/2020.1/Manual/UnityAnalyticsABTesting.html
AB 테스트에서 테스트 대상으로 전환 여부를 결정할 때 아래 표에'모비율차의 감정'을 실시한다.
CV입니다.
CV 없음
컨트롤 그룹
300
2000
treatment 그룹 (개입 그룹) 1
380
2200
treatment군(개입군)2
450
1800
↑ BigQuery로 이런 표를 낸 뒤 지금까지 어머니의 비율을 측정할 수 있는 도구에 수치를 입력해 의미 차이가 있는지 검증했지만 BigQuery 안에서 감정을 할 수 있다면 편리할 것 같아서 실제로 해보겠습니다.
UDF(사용자정의 함수) 구현
BigQuery에서 모든 Javascript 함수를 UDF로 정의할 수 있습니다.
BigQuery에서 모든 Javascript 함수를 UDF로 정의할 수 있습니다.
https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions
UDF 문서에 따라 필요한 js 라이브러리를 GCS bucket에 설치한 후 다음과 같은 UDF를 정의한다.
CREATE OR REPLACE FUNCTION `util.abba_test`(
baseSuccess FLOAT64,
baseTotal FLOAT64,
variationSuccess FLOAT64,
variationTotal FLOAT64,
numOfGroups FLOAT64
)
RETURNS STRUCT<
pValue FLOAT64,
proportion FLOAT64,
lowerBound FLOAT64,
upperBound FLOAT64,
relativeLowerBound FLOAT64,
relativeUpperBound FLOAT64
>
DETERMINISTIC
LANGUAGE js
OPTIONS (
library=[
"gs://udf-bucket/path/to/jstat.min.js",
"gs://udf-bucket/path/to/stats.js"
])
AS """
const ALPHA = 0.05 // 有意水準は5%とする
const experiment = new Abba.Experiment(numOfGroups-1, baseSuccess, baseTotal, ALPHA, jStat)
const result = experiment.getResults(variationSuccess, variationTotal)
return {
"pValue": result.pValue,
"proportion": result.proportion.value,
"lowerBound": result.proportion.lowerBound,
"upperBound": result.proportion.upperBound,
"relativeLowerBound": result.relativeImprovement.lowerBound,
"relativeUpperBound": result.relativeImprovement.upperBound,
}
"""
매개변수와 반환 값은 다음과 같습니다.
# 引数:
- baseSuccess: 基準となる母集団の成功人数
- baseTotal: 基準となる母集団の人数
- variationSuccess: 比較する母集団の成功人数
- variationTotal: 比較する母集団の人数
- numOfGroups: 母集団の数。2集団の比較のときは2 (Bonferroni調整に使用する)
# 返り値:
- 以下の要素を含んだ構造体
- pValue: p値
- proportion: 母集団から推定される成功者の割合
- lowerBound: 母集団から推定される成功者の割合の、信頼区間の下限
- upperBound: 母集団から推定される成功者の割合の、信頼区間の上限
- relativeLowerBound: 基準となる母集団からの、比較する母集団の改善率の下限
- relativeUpperBound: 基準となる母集団からの、比較する母集団の改善率の上限
캡처:UDF 활용
처음에 보여준 ABC 테스트 결과를 검정하려면 다음과 같은 내용을 물어야 한다.WITH data AS (
SELECT 'control' _label, 300 success, 2000 total
UNION ALL
SELECT 'treatment1' _label, 380 success, 2200 total
UNION ALL
SELECT 'treatment2' _label, 450 success, 1800 total
)
SELECT
_label,
success,
total,
util.abba_test(
first_value(success) over (order by _label = 'control' desc), -- control群のCV数
first_value(total) over (order by _label = 'control' desc), -- control群の人数
success,
total,
count(1) over() -- 群の数(今回はABCテストなので3)
).*,
FROM data
GROUP BY 1,2,3
ORDER BY 1
↓ 소수를 보기 어려우므로 포맷
_label
success
total
pValue
proportion
lowerBound
upperBound
relativeLowerBound
relativeUpperBound
control
300
2000
1.000
0.150
0.133
0.169
-0.168
0.168
treatment1
380
2200
0.083
0.173
0.155
0.192
-0.019
0.318
treatment2
450
1800
0.000
0.250
0.228
0.274
0.469
0.854
이 ABC 테스트에서.
WITH data AS (
SELECT 'control' _label, 300 success, 2000 total
UNION ALL
SELECT 'treatment1' _label, 380 success, 2200 total
UNION ALL
SELECT 'treatment2' _label, 450 success, 1800 total
)
SELECT
_label,
success,
total,
util.abba_test(
first_value(success) over (order by _label = 'control' desc), -- control群のCV数
first_value(total) over (order by _label = 'control' desc), -- control群の人数
success,
total,
count(1) over() -- 群の数(今回はABCテストなので3)
).*,
FROM data
GROUP BY 1,2,3
ORDER BY 1
총결산
UDF에서 AB 테스트를 실시하는 검정(모비의 차이의 검정)을 통해 현재까지 인력 복제 도구로만 실시할 수 있는 AB 테스트의 통계적 검정.
루커 대시보드 등 각종 BI 도구와 조합하면 인력 계산이 안 되는 강력한 대시보드를 만들 수 있다.
시험을 준비하다
통계 심사 수법에 대한 상세한 설명
https://github.com/thumbtack/abba 모비율이 낮은 검정 내부에서 사용하는 신뢰 구간은'아그레스티-컬신뢰 구간', 다중 ABC 테스트(즉 ABC 테스트) 때는'본페로니 조정'을 통해 유의미한 수준의 조정이 이뤄진다.
상세한 상황을 알고 싶은 사람은 아래의 참고 문헌을 참고하세요.저도 너무 디테일한 부분을 잘 설명할 자신이 없어요.
통계 심사 수법에 대한 상세한 설명
https://github.com/thumbtack/abba 모비율이 낮은 검정 내부에서 사용하는 신뢰 구간은'아그레스티-컬신뢰 구간', 다중 ABC 테스트(즉 ABC 테스트) 때는'본페로니 조정'을 통해 유의미한 수준의 조정이 이뤄진다.
상세한 상황을 알고 싶은 사람은 아래의 참고 문헌을 참고하세요.저도 너무 디테일한 부분을 잘 설명할 자신이 없어요.
α/N
.라이센스 태그
abba
Copyright (c) 2014 Thumbtack
BSD 3-Clause "New" or "Revised" License
jStat
Copyright (c) 2013 jStat
MIT License
Reference
이 문제에 관하여(BigQuery에서 AB 테스트 결과의 검정(모비의 차이의 검정)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gecko655/items/eddc687707886ea4174e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)