A / B 테스트 시스템에서 일하는 소프트웨어 개발자입니다. 통계에 대한 배경 지식이 없지만 지난 몇 개월 동안 지식을 얻었습니다.
일반적인 테스트 시나리오는 웹 사이트에서 두 개의 URL을 비교하는 것입니다. 방문자가 방문한 LANDING_URL
다음 URL_CONTROL
또는 로 무작위로 전달됩니다 URL_EXPERIMENTAL
. 방문자는 샘플을 구성하며 방문자가 해당 사이트에서 원하는 조치를 수행 할 때 승리 조건이 달성됩니다. 이는 전환을 구성하며 전환율은 전환율입니다 (일반적으로 백분율로 표시). 특정 URL의 일반적인 전환율은 0.01 % ~ 0.08 % 범위입니다. 새 URL을 기존 URL과 비교하는 방법을 결정하기 위해 테스트를 실행합니다. URL_EXPERIMENTAL
성능이 우수한 것으로 표시 되면 로 URL_CONTROL
교체 URL_CONTROL
합니다 URL_EXPERIMENTAL
.
우리는 간단한 가정 테스트 기술을 사용하여 시스템을 개발했습니다. 나는 다른 CrossValidated 질문에 대한 답변을 사용 여기에 이 시스템을 개발.
테스트는 다음과 같이 설정됩니다.
- 의 전환율 추정치
CRE_CONTROL
는URL_CONTROL
이력 데이터를 사용하여 계산됩니다. - 원하는 목표 전환율
CRE_EXPERIMENTAL
의이URL_EXPERIMENTAL
세트이다. - 0.95의 유의 수준이 일반적으로 사용됩니다.
- 0.8의 거듭 제곱이 일반적으로 사용됩니다.
이러한 모든 값을 함께 사용하여 원하는 샘플 크기를 계산합니다. power.prop.test
이 샘플 크기를 얻기 위해 R 함수 를 사용하고 있습니다.
모든 샘플이 수집 될 때까지 테스트가 실행됩니다. 이 시점에서의 신뢰 구간 CR_CONTROL
및이 CR_EXPERIMENTAL
계산된다. 겹치지 않으면 0.95의 레벨과 0.8의 힘으로 승자를 선언 할 수 있습니다.
테스트 사용자에게는 다음과 같은 두 가지 주요 관심사가 있습니다.
1. 테스트 도중 어느 시점에서 확실한 승자를 보여주기 위해 충분한 샘플을 수집하면 테스트를 중단 할 수 없습니까?
2. 테스트 종료시 당첨자가 선언되지 않은 경우 당첨자를 찾기에 충분한 샘플을 수집 할 수 있는지 확인하기 위해 테스트를 더 오래 실행할 수 있습니까?
사용자가 우리 자신의 사용자가 원하는 것을 정확하게 수행 할 수 있도록하는 많은 상용 도구가 존재합니다. 나는 위의 내용에 많은 오류가 있음을 읽었지만 중지 규칙에 대한 아이디어를 발견했으며 자체 시스템에서 그러한 규칙을 사용할 가능성을 탐색하고 싶습니다.
다음은 두 가지 접근 방식입니다.
1.를 사용 power.prop.test
하여 현재 측정 된 전환율을 현재 샘플 수와 비교하고 우승자를 선언하기에 충분한 샘플이 수집되었는지 확인하십시오.
예 : 시스템에 다음과 같은 동작이 있는지 테스트가 설정되었습니다.
CRE_CONTROL
: 0.1CRE_EXPERIMENTAL
: 0.1 * 1.3- 이 매개 변수를 사용하면 샘플 크기
N
는 1774입니다.
그러나 테스트가 진행되고 325 개의 샘플에 도달하면 CRM_CONTROL
(제어를위한 측정 된 변환 속도)는 0.08이고 CRM_EXPERIMENTAL
0.15입니다. power.prop.test
이 전환율로 실행되며 N
325 인 것으로 밝혀졌습니다. 정확하게 CRM_EXPERIMENTAL
승자라고 선언 하는 데 필요한 샘플 수 ! 이 시점에서 테스트가 끝날 수 있기를 희망합니다. 마찬가지로, 테스트가 1774 개 샘플에 도달하지만 승자가 발견되지 않은 경우 2122 개 샘플에 도달하면 CRM_CONTROL
0.1의 샘플을 표시하기에 충분 하며 CRM_EXPERIMENTAL
0.128은 승자가 선언 될 수있는 결과입니다.
A의 관련 질문 사용자는 이러한 테스트는 초기 적은 수의 샘플을 가지고도에 취약 정지 격려로 인해 덜 신빙성 조언 추정 바이어스 및 유형 I 및 유형 II 오류의 수가 증가. 이 중지 규칙을 작동시키는 방법이 있습니까? 이는 프로그래밍 시간이 단축되므로 선호되는 접근 방식입니다. 어쩌면이 중지 규칙은 테스트의 신뢰성을 측정하는 어떤 종류의 수치 점수를 조기에 중단해야한다면 효과가 있을까요?
이러한 테스트 방법은 우리가 처한 상황에 맞게 설계되었습니다. 사용자가 테스트에서 초과 시간을 낭비하지 않는 방식으로 테스트를 시작하고 종료 할 수있는 방법은 무엇입니까? 테스트를 너무 오래 실행하거나 다른 매개 변수로 테스트를 다시 시작해야합니다.
위의 두 가지 방법 중 SPRT를 선호합니다. 수학이 좀 더 이해하기 쉽고 프로그래밍하기가 더 쉬울 수 있기 때문입니다. 그러나이 맥락에서 가능성 함수 를 사용하는 방법을 이해하지 못합니다 . 만약 누군가가 우도 비 계산 방법에 대한 예, 우도 비의 누적 합을 구하고, 귀무 가설과 대립 가설을 받아 들일 때 모니터링을 계속할 상황을 설명하는 예를 계속하면, SPRT가 올바른 방법인지 판단하는 데 도움이됩니다.