통계적 의미가 타당성과 같지 않음(또는 상상의 리프트를 얻는 이유)

게시 됨: 2020-10-06

매우 일반적인 시나리오: 비즈니스는 1년 동안 수십, 수십 개의 A/B 테스트를 실행하고 그 중 다수가 "승리"합니다. 일부 테스트는 수익을 25% 이상 증가시킵니다.

그러나 변경 사항을 롤아웃하면 수익이 25% 증가하지 않습니다. 그리고 이러한 모든 테스트를 실행한 지 12개월이 지났지만 전환율은 여전히 ​​거의 동일합니다. 어떻게 왔어요?

대답은 이것입니다. 당신의 상승은 상상적이었습니다. 처음부터 상승세가 없었습니다.

예, 테스트 도구에서 통계적 유의 수준이 95%(또는 그 이상)라고 말했습니다. 글쎄, 그것은 큰 의미가 없습니다. 통계적 의미와 타당성은 동일하지 않습니다.

통계적 유의성은 정지 규칙이 아닙니다.

테스트 결과 95% 또는 99% 신뢰 수준에 도달했다고 해서 성공적인 변형이 있다는 의미는 아닙니다.

다음은 이전에 사용한 예입니다. 테스트를 시작한 지 이틀 후 결과는 다음과 같습니다.

test results two days after starting an a/b test.

내가 구축한 변형은 89% 이상(오차 범위에 중복 없음)으로 심하게 손실되었습니다. 여기에서는 변형 1이 대조군을 이길 확률이 0%라고 말합니다.

통계적으로 유의미한 결과입니까? 그렇습니다. A/B 테스트 계산기에 동일한 숫자를 입력하면 동일한 결과가 표시됩니다. 이 유의성 계산기를 사용한 결과는 다음과 같습니다.

통계적 유의성 계산기의 결과입니다.

따라서 100% 유의미한 테스트 및 852.8% 증가(또는 오히려 대조군이 치료보다 800% 이상 더 우수함)입니다. 테스트를 끝내자, 응? 컨트롤 승리! 아니면 시간을 좀 더 주는 것이 어떻습니까?

10일 후의 모습입니다.

a/b test results after more time.


맞습니다. 컨트롤을 이길 확률이 0%였던 변형이 이제 95%의 신뢰도로 승리했습니다. 무슨 일이야? '의미 100%'와 '승률 0%'가 무의미해진 이유는? 왜냐하면 그들은 그렇습니다.

테스트를 일찍 종료하면 잘못된 승자를 선택할 가능성이 큽니다. 이 시나리오에서 많은(대부분의?) 비즈니스는 여전히 변경 사항을 구현하고(예: 트래픽의 100%에 가장 적합한 변형을 롤아웃), 실제로 800% 상승도는 0이 되거나 심지어 음수(손실)가 됩니다.

상상의 상승보다 더 나쁜 것은 당신이 지금 가지고 있는 잘못된 자신감입니다. 당신은 무언가를 배웠다고 생각하고 그 학습을 사이트의 다른 곳에서 계속 적용합니다. 그러나 학습은 실제로 무효이므로 모든 노력과 시간을 완전히 낭비하게 됩니다.

두 번째 테스트 스크린샷(10일 후)과 동일합니다. 95% 유의도라고 표시되지만 여전히 "조리"되지 않았습니다. 샘플이 너무 작습니다. 전환의 절대적 차이는 19건의 거래에 불과합니다. 그것은 하루 만에 바뀔 수 있습니다.

톤 웨슬링.

Ton Wesseling은 이에 대해 다음과 같이 말했습니다.

일단 중요한 테스트를 중단하는 것은 A/B 테스트 국가에서 치명적인 죄 1번이라는 것을 알아야 합니다. A/A 테스트의 77%(동일한 페이지에 대한 동일한 페이지)는 특정 시점에서 의미에 도달합니다.

진정한 의미가 무엇인지 배우십시오.

통계적 유의성만으로는 테스트 종료 여부를 결정할 수 없습니다. 정지 규칙이 아닙니다.

통계적 유의성은 B가 A보다 우수할 확률을 알려주지 않습니다. 또한 A보다 B를 선택할 때 실수할 확률을 알려주지 않습니다.

이것들은 둘 다 매우 일반적인 오해이지만 그것은 거짓입니다. p-값이 실제로 무엇인지 알아보려면 이 게시물을 읽으십시오.

테스트를 더 오래 실행하십시오.

며칠 후에 테스트를 중지하면 잘못하고 있는 것입니다. 하루에 10,000건의 거래가 발생하더라도 상관 없습니다. 트랜잭션의 절대적인 수가 중요하지만 순수한 시간도 필요합니다.

매트

Conductrics의 Matt Gershoff는 그 이유를 다음과 같이 설명합니다.

온라인 테스트 실행의 어려움 중 하나는 사용자 집단을 통제할 수 없다는 것입니다. 사용자가 시간과 요일, 계절에 따라 다르게 배포하는 경우 문제가 될 수 있습니다. 이 때문에 관련 데이터 주기 동안 데이터를 수집하고 싶을 것입니다. 그런 식으로, 우리의 치료는 평균 사용자 인구의 더 대표적인 표본에 노출됩니다.

주중, 주말 등의 기간 동안 계속 샘플링해야 하기 때문에 세분화가 실제로 문제를 해결하지 못한다는 점에 유의하십시오. 그리고 외부 이벤트와 평균을 산출하기 위해 매일 또는 요일 부분을 두 번 치고 싶을 것입니다. 전환에 대한 영향 시간 기반 기능/세그먼트의 정확한 추정치를 얻기 위해 트래픽 흐름/전환에 영향을 미칠 수 있습니다.

다음 시나리오를 항상 봅니다.

  • 처음 며칠: B가 큰 승리를 거두고 있습니다. 일반적으로 신규성 요인 때문입니다.
  • 1주차 이후: B가 강세를 보였습니다.
  • 2주 후: B가 여전히 이기고 있지만 상대적인 차이는 더 작습니다.
  • 4주 후: 평균으로의 회귀 - 상승이 사라졌습니다.

따라서 4주 전에(아마도 며칠 후에도) 테스트를 중단하면 성공적인 변형이 있다고 생각하지만 그렇지 않습니다. 라이브로 구현하면 내가 "가상 리프트"라고 부르는 것을 갖게 됩니다. 테스트 도구가 25% 이상의 성장을 보였기 때문에 효과가 있다고 생각하지만 은행 계좌에는 성장이 보이지 않습니다.

테스트를 더 오래 실행하십시오. 2개의 비즈니스 주기를 포함하고, 절대 전환/거래가 충분하고, 시간적으로 충분한 지속 시간이 있는지 확인하십시오.

가상 리프트의 예

다음은 전자 상거래 클라이언트에 대해 실행한 테스트입니다. 테스트 기간은 35일이었고 데스크톱 방문자만을 대상으로 했으며 변형당 거의 3,000건의 트랜잭션이 있었습니다.

스포일러: 테스트는 "차이 없음"으로 종료되었습니다. 다음은 수익에 대한 Optimizely 개요입니다(확대하려면 클릭).

평균 회귀로 시간 경과에 따른 수익 테스트.

지금 보자:

  • 처음 며칠: Blue(변형 #3)가 방문자당 $16, Control(#Winning!)의 경우 $12.5와 같이 큰 승리를 거두었습니다. 많은 분들이 여기서 테스트를 종료합니다(#Fail!).
  • 7일 후: 파란색이 여전히 이기고 상대적 차이가 큽니다.
  • 14일 후: 주황색(#4)이 이깁니다!
  • 21일 후: 주황색은 여전히 ​​승리합니다!
  • 끝: 차이가 없습니다.

따라서 4주 미만 동안 테스트를 실행했다면 승자를 잘못 불렀을 것입니다.

정지 규칙

그렇다면 테스트는 언제 요리됩니까?

아아, 세상에는 보편적인 하늘의 대답이 없으며 많은 "그것에 달려 있는" 요인이 있습니다. 즉, 대부분의 경우 꽤 좋은 중지 규칙을 가질 수 있습니다.

다음은 중지 규칙입니다.

  • 테스트 기간은 최소 3주입니다(4주인 경우 더 좋음).
  • 미리 계산된 최소 샘플 크기에 도달했습니다(다른 도구 사용). 변형당 전환수가 250~400회 미만인 테스트는 믿지 않을 것입니다.
  • 최소 95%의 통계적 유의성.

일부 테스트의 경우 특성으로 인해 다를 수 있지만 대부분의 경우 해당 규칙을 준수합니다.

다음은 Wesseling이 다시 한 번 언급하는 내용입니다.

최소한 한 번의 구매 주기로 가능한 한 오랫동안 테스트하기를 원합니다. 데이터가 많을수록 테스트의 통계적 검정력이 높아집니다!

트래픽이 많을수록 테스트 중인 중요도 수준에서 승자를 알아볼 가능성이 높아집니다! 작은 변경이 큰 영향을 미칠 수 있지만 큰 영향은 너무 자주 발생하지 않습니다. 대부분의 경우 변형이 약간 더 좋기 때문에 중요한 승자를 알아내려면 많은 데이터가 필요합니다.

그러나 테스트가 지속되면 사람들은 쿠키를 삭제하는 경향이 있습니다(2주 동안 10%). 테스트에서 반환될 때 잘못된 변형으로 끝날 수 있으므로 몇 주가 지나면 샘플이 점점 더 오염되고 동일한 전환율로 끝납니다.

최대 4주 동안 테스트합니다.

3주 또는 4주 후 표본 크기가 유사 콘텐츠당 전환수 400회 미만이면 어떻게 됩니까?

테스트를 더 오래 실행하도록 했습니다. 4주까지 표본 크기가 달성되지 않으면 한 주를 더 추가합니다.

항상 전체 주를 테스트합니다. 월요일에 시험을 시작했다면 일요일에 끝나야 합니다. 한 번에 일주일 전체를 테스트하지 않으면 결과가 왜곡될 수 있습니다.

사이트에서 요일별 전환수 보고서를 실행하십시오. 얼마나 많은 변동이 있는지 확인하십시오.

아래에 무엇이 보이나요? 목요일은 토요일과 일요일보다 2배 더 많은 돈을 벌고 목요일의 전환율은 토요일보다 거의 2배 더 좋습니다.

요일별 변환.

몇 주 동안 테스트하지 않으면 결과가 정확하지 않을 것입니다. 한 번에 전체 주를 테스트합니다.

각 구간에는 동일한 중지 규칙이 적용됩니다.

세분화는 A/B 테스트에서 배우는 핵심입니다. B가 전체 결과에서 A에게 지는 것이 일반적이지만 특정 세그먼트(예: Facebook 트래픽, 모바일 장치 사용자 등)에서 A를 이깁니다.

분할된 데이터를 분석하기 전에 각 세그먼트 내에 충분한 표본 크기가 있는지 확인하십시오. 따라서 보고 있는 각 세그먼트 내에서 유사 콘텐츠 250~400회의 전환이 필요합니다.

테스트 후 세그먼트 전체에서 결과를 분석하는 대신 타겟 테스트를 생성(테스트 구성에서 타겟 고객/세그먼트 설정)하는 것이 좋습니다. 이렇게 하면 테스트가 일찍 호출되지 않고 각 세그먼트에 적절한 샘플 크기가 있습니다.

내 친구 Andre Morys는 그의 중지 규칙에 대해 다음과 같이 말했습니다.

안드레 모리스.

나는 항상 사람들에게 데이터가 유효해야 하는 경우 대표 샘플이 필요하다고 말합니다.

"대리인"은(는) 무슨 뜻인가요? 우선 주중과 주말을 모두 포함해야 합니다. 구매자 행동에 영향을 미치기 때문에 다른 날씨가 필요합니다. 그러나 가장 중요한 것은 트래픽에 모든 트래픽 소스, 특히 뉴스레터, 특별 캠페인, TV 등 모든 것이 있어야 한다는 것입니다! 테스트를 오래 실행할수록 더 많은 통찰력을 얻을 수 있습니다.

우리는 여름 세일 단계의 한가운데에 큰 패션 소매점에 대한 테스트를 방금 실행했습니다. 70% 이상으로 "경매 단계" 동안 결과가 어떻게 극적으로 떨어졌지만 단계가 끝난 후 일주일 후에 회복되는 것을 보는 것은 매우 흥미로웠습니다. 테스트가 거의 4주 동안 실행되지 않았다면 우리는 이것을 결코 배우지 못했을 것입니다.

우리의 '경험 법칙'은 변형당 3,000~4,000회의 전환과 3~4주의 테스트 기간입니다. 세그먼트로 드릴다운하면 유효한 데이터에 대해 이야기할 수 있을 만큼 충분한 트래픽입니다.

테스트 "죄" 번호 1: 통계적 유효성이 없을 때 세그먼트 내에서 향상 검색(예: 85 대 97 전환). 헛소리야.

테스트에서 배우는 것은 승리하는 것보다 훨씬 더 중요합니다. 테스트 데이터를 세분화하는 것은 더 나은 학습 방법 중 하나입니다. 결론을 내리기 전에 세그먼트에 충분한 데이터가 있는지 확인하십시오.

결론

테스트가 95% 유의 수준 이상에 도달했다고 해서 테스트를 중단하지 마십시오. 변형당 절대 전환 수와 테스트 기간에도 주의하십시오.