มารู้จัก A/B Test จาก Conversion Funnels และ Statistical Significance กันเถอะ — ตอนที่ 2

หลังจากที่เราได้รู้จักกับ A/B Test ในมุมของ Technical กันไปแล้วบ้าง ตอนนี้เราจะมาคุยกันเรื่อง Math ข้างหลัง A/B Test กันบ้างนะครับ โดยหลักการแล้ว A/B Testing คือการทดสอบสมมติฐาน (Hypothesis) ของเราอย่างเป็นระบบ และสรุปด้วยหลักทางสถิติที่เรียกกันว่า Statistical Significance เพื่อให้เราเข้าใจง่ายขึ้นถึงนิยามของ A/B Testing ทางสถิติ ลองมาดูตัวอย่างการทดลองโยนหัวก้อยกันดีกว่านะครับ สมมติว่าเราตั้งสมมติฐานไว้ว่าถ้าเราใส่ชุด Sailor Mercury จะทำให้เพิ่ม conversion ในการทอยเหรียญให้ออกหัวมากขึ้น

1_FmGs1PZN0W29vYUfe6SY8g

Sailor Mercury Help Conversion !!!!

และในการทดสอบเราก็ใส่ชุด Sailor Mercury และ Sailor Mars แล้วมาโยนเหรียญทายหัวก้อย 100 ครั้งผลลัพธ์ที่ได้ออกมาเป็นดังนี้ แต่น แต๊น เราพบว่าสมมติฐานเราน่าจะถูก……จริงเหรอ

1_odrKmOdAncb7QK8t4NBPyw

Testing with 100 Toss
มาลองดูกันนะครับ โดยพื้นฐานแล้วมีสิ่งสำคัญๆอยู่หลายอย่างที่เราต้องทำความเข้าใจในการใช้งาน A/B Test นั่นก็คือ

Mean ในทางสถิติแล้วค่า Mean หรือค่าเฉลี่ยซึ่งมีค่าเท่ากับค่าของข้อมูลทั้งหมดรวมกันแล้วหารด้วยจำนวนของข้อมูล เขียนแทนด้วยสูตรทางคณิตศาสตร์ดังนี้

1_r4NC90p5tBEVkN8xXbB_bA
ค่า Mean

โดยค่า Conversion rates นั้นเป็นค่าของผลคูณของจำนวนเหตุการณ์ (n) กับค่าความเป็นได้ของ Conversion (p) => n*p ทั้งนี้เมื่อพิจารณาค่าของ conversion ที่เกิดขึ้นบน normal distribution curve แล้วเราจะพบว่า Conversion rate จริงๆนั้น เราไม่สามารถระบุค่าที่ชัดเจนได้ เพราะค่าของเหตุการณ์ที่เกิด Conversion นั้นเกิดกระจายโดยรอบตามกราฟ normal distrution

1_oSKlUNg3iCy259G8bLZbNQ

ดังนั้นค่าของ Conversion Rate นั้น เราจึงมักจะคิดจากค่า Mean ของ Conversion rate เป็นหลัก

  • Variance
  • Confidence Interval

1_yh4QgvtAULM8lZOKUapsiQ

ในการคำนวณค่าความเชื่อมั่นนั้น จากกราฟนั้นแสดงการกระจายของ conversion ในส่วนของ Control และ Variance(Treatment) โดยเราให้ conversion ของ Variance เราเป็น p และ ค่า conversion ของ control เป็น pc เราจะได้ค่าดังนี้

1_oyfrtM-BiH6RJ6vibP7ELA

ค่าตัวแปรควบคุม

1_j6CbEdQfnQ12fKDFUE-1bg

สมมติฐานหลักว่าค่า conversion ของ control นั้นเท่ากันหรือดีกว่า variance

ตามธรรมเนียมแล้ว เราจะยอมรับ Variance หรือ Experiment ก็เมื่อมันสามารถหักล้างสมมติฐานหลักของเราได้นั่นเอง และโดยปกตินั้นเราจะยอมรับการเปลี่ยนแปลงต่างๆเมื่อเรามีความ “เชื่อมั่น” มากพอ ซึ่งปกติทางสถิติเราก็จะใช้ค่าความเชื่อมั่นที่ 95% ในการเอามาสนับสนุนข้อมูล และทฤษฎีของเรานั่นเอง ซึ่งในการที่เราจะสามารถยืนยันว่าข้อมูลของเรานั้นอยู่ในช่วงของความเชื่อมั่นที่ 95% นั้นวิธีที่สนับสนุนให้ทำได้ง่ายที่สุดก็คือ Z-Score นั่นเอง

1_DmljVo5uRzzAQqWwHvf0WQ

Standard deviation and Statistical analysis
ซึ่งในการหาค่า Z-Score เพื่อยืนยันสมมติฐานของเรานั้น ก็ใช้สูตรมาตรฐานได้ตามปกติ โดย p => conversion rate ของ experiment, pc => conversion rate ของ control, N => จำนวนตัวอย่างของ experiment, Nc => จำนวนตัวอย่างของ control

1_ubTzow7F15-F5RJhLwACYg

โดยในการพิจารณาเพื่อหักล้างสมมติฐานว่า Experiment ของเรานั้นสามารถเพิ่ม conversion ได้ดีว่านั้นก็ขึ้นอยู่กับวิธีการพิจารณาว่าจะทดสอบด้วย Upper-Tailed/ Lower-Tailed/ Two-Tailed ด้วยนะครับ เช่นในกรณีที่เราใช้ Upper-tailed test และ ค่า Z-Score ไม่มากกว่า Critical ก็แสดงว่าอยู่ในระดับความเชื่อมั่นที่เราต้องการแล้วล่ะ

1_FXJyCWO5BzpzzyZa1ghQwA

1_YIiZVBD63iSXw5S24MbWpA

Left : Two-Tailed test Right : Upper tailed test
จะเห็นได้ว่าในการทดสอบ A/B Testing นั้นจริงๆแล้วก็ใช้การทดสอบสมมติฐานด้วยทฤษฎีทางคณิตศาสตร์นั่นเอง แต่ที่เล่ามาทั้งหมดนี้เป็นแค่พื้นฐานของการทำ A/B Testing เท่านั้น แม้ว่าในการใช้งาน A/B Test นั้น เราอาจไม่จำเป็นต้อง Implement ระบบเพื่อทำ A/B Testing เอง แต่เราควรที่จะทำความเข้าใจพื้นฐานความเป็นมา และวิธีในการตรวจสอบ เพราะในการใช้งานจริง เราอาจจะเจอกับ Fake Statistic ที่เป็นการ Abuse เพื่อให้เราได้ในสิ่งที่เราต้องการมากกว่าผลลัพธ์ทางสถิติจริง ถ้าเราไม่ได้มีความเข้าใจ เราจะไม่สามารถทำงานกับ A/B Test ได้อย่างมีประสิทธิภาพครับ

References: