A/B Testing

מיועד ל- מתחילים (כתבה קצת טכנית)

נכתב על ידי raya_belinsky

מאמר זה משלב:

  • סיכום של קורס A/B Testing של Google ב- Udacity,
  • קוד פייתון ממקורות באינטרנט
  • דוגמאות והסברים מניסיון אישי

 

 בדיקת A / B היא מתודולוגיה כללית המשמשת באופן מקוון לבדוק מוצר או תכונה חדשים. אנו הולכים לקחת שתי קבוצות של משתמשים ולהציג לקבוצה אחת תמונה/תהליך/פיצ’ר קיים ולקבוצה שניה נראה סט אחר, הגרסה החדשה. לאחר הרצה של שתי הגרסאות במקביל באותו זמן, נוכל לבדוק כיצד שתי הקבוצות מתנהגות ואיזו גרסה יוצרת תוצאות טובות יותר, על מנת לקבוע איזו גרסה של התכונה היא טובה יותר.

האם אתה יכול להשתמש ב- A / B לכל שינוי?
שאל את עצמך לפני שאתה מתחיל:

  1. האם יש לך מקור לקבל את הדטה / התוצאות הנדרשות כדי לנתח ולקבל החלטה?
  2. האם פרק הזמן בו הבדיקה אמורה להתקיים (למבקרים חוזרים / אנשים המסיימים את הקורס) היא ניתנת ליישום, לפעמים נדרשים חודשים כדי לקבל תוצאות ?
  3. האם אנו יכולים להשוות את השינוי של גירסה הנוכחית לחדשה מבחינה טכנית?

הבדלים בין מבחני A / B בתחומים שונים?

  1. בניסוי רפואי הבוחן קיום או היעדר תכונה של הנבדקים משתתפים 10-50 משתתפים, ואנו יודעים על כל משתתף: גיל, משקל, מצב משפחתי, גובה, האם יש להם רישיון נהיגה ועוד.
  2. אנו רוצים ליצור שינוי של 5-10-15% כדי לראות שינוי מהותי בין קבוצת קונטרול וטסט. מדובר על חיי בני אדם, וגם על הוצאות גבוהות ליצור תהליכים או תרופות, לכן אנו מחפשים שינוי גבוה.במחקר שרץ אונליין יש לנו מיליוני משתמשים, מאות אלפי קליקים, מגיבים, אך אנו לא יודע כל כך הרבה על מי נמצא בקצה השני של הנתונים האלו. זה יכול להיות אדם יחיד, מספר אנשים (זוג) או מחשב בבית קפה אינטרנטי. יש אפשרות לרכוש אותם ממקורות נוספים, אך לפעמים הם חסרים.

שינוי של 1-2% ב”הסתברות לקליק” הוא די גדול. לא נרשמת השקעה רבה ליצירת השינוי וגם חשיפה לאלפי או מיליוני אנשים יוצרת הכנסות מאוד גדולות.

מטריקות פופולאריות

Click Through Rate = Total number of clicks / Total number of views

שיעור/קצב לקליק = סה”כ קליקים / סה”כ מספר צפיות

אנו משתמשים במטריקה זאת כאשר רוצים למדוד את השימושיות באתר

Click Through Probability = Unique visitors who clicked / Unique visitors who viewed

הסתברות לקליק = סה”כ מספר משתמשים יוניקים שהקלילו  / סה”כ מספר משתמשים יוניקים שצפו בשינוי

אנו משתמשים בהסתברות כאשר רוצים למדוד את ההשפעה הכללית. התקדמות לשלב הבא בפאנל.

 התפלגות הנתונים

למה חשוב לנו לדעת את ההתפלגות?

חשוב להבין עד כמה הנתונים שונים ומה השוני. אנו הולכים להשתמש בהתפלגות בינומית שמתעסקת עם הצלחות וכישלונות: קליק = הצלחה, ללא קליק = כישלון.

התפלגות בינומית שונה מהתפלגות נורמלית. אם גודל המדגם יהיה גדול מספיק, הצורות יהיו דומות למדי. ההבדל העיקרי הוא שהתפלגות בינומית היא דיסקרטית, לא רציפה. במילים אחרות, לא ניתן למצוא ערך נתונים בין שני ערכי הנתונים. ההתפלגות הנורמלית נחשבת בדרך כלל כקירוב לא רע להתפלגות הבינומית כאשר np ≥ 5 ו- n (1 – p) ≥ 5.

השערת האפס והשערה אלטרנטיבית

ההשערה הבסיסית, המכונה השערת האפס, מתארת את הידע הקיים, ומולה ניצבת השערה אלטרנטיבית, המייצגת תיאוריה חדשה. כדי להוכיח כי התיאוריה החדשה נכונה, על החוקר להציג ראיות מובהקות ומשמעותיות שיביאו לדחיית השערת האפס לטובת ההשערה האלטרנטיבית.

בסוף הניסוי יש לנו שתי אופציות: לדחות את השערת האפס, או שלא לדחות אותה

 

מובהקות סטטיסטית או רמת מובהקות – α

רמת מובהקות – היא הסיכוי שבעת ביצוע מבחן סטטיסטי לבדיקת השערות נדחה את ההשערה על אף שהיא נכונה.

המוסכמה המקובלת במדעי החברה היא להשתמש ב-α=0.05. ככל שה- α שנבחר קטנה יותר, כך ההחלטה שלנו תהיה שמרנית יותר.

עוצמת המבחן – תרצה שהיא תהיה כמה שיותר גבוהה – לעתים קרובות משתמשים ב- 80%)

מדגם קטן – אלפא נמוך, בטא גבוה

מדגם גדול – אלפא אותו דבר, בטא נמוך יותר

דוגמה:

בעמוד הנחיתה קיים כפתור אסטרטגי מאוד חשוב, בלחיצה על הכפתור הזה אנשים רוכשים את חבילת הבסיס של השירות שאנו נותנים. הכפתור הוא בצבע ירוק ורשום עליו “תתחיל עכשיו”.

אנו רוצים לבדוק האם צבע אדום הינו צבע אופטימלי שמביא לנו המראה מקסימלית מלקוח שמבקר באתר ולקוח שלוחץ על “תתחיל עכשיו”. לאחר התייעצות עם הצוות החלטנו להריץ בדיקת AB, חצי מהאוכלוסיה תראה כפתור עם רקע ירוק (גרסה ישנה) וחצי מהאוכלוסיה תראה את הכפתור עם רקע אדום.

חלוקת האוכלוסיה 50/50 היא מאוד אמיצה, מפני שיש לנו כפתור אסטרטגי מאוד חשוב ואם משהו לא יעבוד אנו עלולים להיות מוכנים לירידה בהמראות. ביחד עם זאת, אם נשים גרסה חדשה על 10% מהאוכלוסיה, כמה זמן נצטרך להמתין עד שנקבל תוצאות מובהקות סטטיסטית לקבלת החלטה.

בניית הטסט:

נניח בדף הנחיתה הנוכחי שלנו מבקרים 1000 אנשים, 73 לוחצים על “תתחיל עכשיו”. אנו רוצים להריץ במקביל ניסוי בו נשנה רק את הרקע של “תתחיל עכשיו” מירוק לאדום ונרצה שאחוז ההמרה יהיה גבוהה יותר ברמת מובהקות של 5%.

H0: CTR = 7.3%

H1: CTR > 7.3%

לפני שאנו מתחילים עם הניסוי, נראה כמה זמן נצטרך להריץ אותו עד שנקבל תוצאות?

אפשר לעשות זאת בעזרת מחשבון ברשת

או לכתוב קוד פייתון

או ע”י הנוסחה:

אפיון ובחירה של המטריקות (KPI)

ערכים שלא משתנים – הם הערכים שלא אמורים להשתנות במהלך הניסוי.

מטריקות – סה”כ הכנסות, מספר הפקדות, מספר FTD, STD

מטריקות משולבות – שילוב של מספר מטריקות.

שימו לב כשאתם משתמשים במשתנים אקטיבים, כמו משתמשים פעילים ב-24 שעות האחרונות? משתמשים פעילים ב-7 ימים האחרונים. FTD – משתמש חדש שביצע רכישה ראשונה ביום הביקור הראשון או משתמש קיים שהפקיד בפעם הראשונה. היכנסו לעומק והגדירו מדדים במדויק, זה מאוד חשוב!

צרו פאנל, דרך שמשתמש עובר מזמן אפס באתר, כניסה לאתר למטרה המכוונת וחשובה לעסק שלך, זה יעזור ליצור מדדים חזקים יותר.

מעניין: יש חברות שמחליטות לא לחלוק את מספרי ההכנסות עם מפתחי האתר, אלא רק את “KPI האושר”. אם לחברה שלך יש את אותה תרבות היזהר מאוד בהגדרת KPI של האושר של הלקוח שמבקר באתר.

מקורות נוספים לקבלת מידע: מחקרים, סקרים וקבוצות מיקוד.
זה יעזור אם תהיה אפשרות להשוות אותה מטריקה עם הנתון של המתחרה.
חשוב – תמיד וודאו שאתם משווה תפוחים לתפוחים.

Additional Techniques for Brainstorming and Validating Metrics

  • חשוב להבין אילו שינויים במערכת שלך יכולים לקרות – האם שינוי של 10% בשיעור הקליקים זה מציאותי, כדי לעקוב כל שעה, יממה על איך הניסוי רץ ואם יש תקלה טכנית לעצור בזמן – בנה את האינטואיציה שלך לגבי המטריקות!
  • לדוגמה, pings JavaScript, עם בעיה בדפדפנים ותיקים מאוד, אינם מיישמים JavaScript בכלל וקליקים נעלמים. לדפדפנים אחרים, כלומר IE לעומת ספארי, יהיו שיעורי כישלון שונים ב- JavaScript. זו יכולה להיות הסיבה לשיעור קליקים שונה בדפדפנים ופלטפורמות שונות.
  • בדרך כלל אנו מחשבים את שיעור הקליקים כמבקרים ייחודיים שלחצו חלקי מספר אורחים ייחודיים שצפו. נסו להוסיף תקופת זמן – שיעור קליקים במהלך 5 דקות, שיעור קליקים במהלך 30 דקות, שיעור קליקים במהלך 60 דקות, זה יכול להביא תובנות חדשות.
  • לפעמים המתחרים שלך בודקים את האתר שלך ולוחצים על כל דבר. או מספר משתמשים שנכנסו מבית קפה אינטרנטי או אלגוריתמים שנכנסים ולוחצים על כפתור הקסם שלך. תנסה לבנות אלגוריתמים שמסננים יוזרים כאלו. כדי להימנע ממצב זה, צור ערכי בסיסי עבור המטריקות שלך, קבוצות לפי מדינה, שפה, פלטפורמה; תסתכל שבוע מול שבוע או יום מול יום.
  • כאשר מטריקה שלך מודדת זמן פעולה כלשהי כמו, זמן הטעינה של סרטון, זמן עד הקליק הראשון, משך ההפעלה. עבור אותם אירועים השתמש בחציון, האחוזון ה -25, האחוזון ה -70, האחוזון ה -90, פחות בממוצע.
  • אם מתאפשר, תבדוק את ההיסטוגרמה של המדד בשתי הקבוצות, לראות עד כמה המדד רגיש.על ציר ה- x יש לך את כל הערכים השונים עבור המדד שלך. בציר ה- Y הולכת להיות התדירות. אם התפלגות היא נורמלית, אז ממוצע או חציון זה יעבוד בשביל המדד הזה. ככל שההתפלגות יותר נוטה לאחד הצדדים, ייתכן שתרצה ללכת יותר על ה -25, או ה -75 או האחוזון ה -90.

 

ניסוי A/A

מתי אנו משתמשים בו?

באופן עקרוני בהכנה לטסט, כאשר אנו משתמשים במדדים חדשים, רצוי לבדוק את התפלגותם והשונות שלהם לפני שמתחילים להריץ את הניסוי. בבדיקה זאת אנו לומדים מהו שינוי הגיוני ומתי לעצור את הניסוי במידה  והוא עובר את מדד ההגיוניות יש להאריך את מרווח הביטחון לפני תחילת הניסוי.

 

תכנון הניסוי

ראו תבנית מומלצת:

Experiment design template

 

ניתוח תוצאות ניסוי A / B

בדקו אם אתם קיבלתם אוכלוסיות דומות בשתי הקבוצות.
קבוצת בקרה: 64,454 משתמשים

קבוצת מבחן: 61,818 משתמשים

האם יש הבדל בין הקבוצות?

חישבו סטיית תקן בינומית עם הסתברות 0.5 להצלחה
[SD = sqrt (0.50.5 / (64454 + 61818))] = 0.0014

הכפלו במספר Z כדי לקבל את שולי השגיאה.
0.0014*1.96 = 0.0027

חישוב מרווח הביטחון סביב 0.5.
0.4973 עד 0.5027

בדקו האם התוצאה נמצאת בתוך רווח בטחון
.p = 64454 / (64454 + 61818) = 0.5104

0.5104 גדול משמעותית מ- 0.5027 , כך

  • התבוננו בנתונים מיום ליום, דברו עם המהנדסים, נסו לחלק את המדגם לפי מדינה, מקור, שפה
  • בדוקו את התוקף של הקוקיז – האם בקבוצה אחת יש יותר קוקיז חדשים
  • בדוק עם הנתונים של התקופה לפני – האם אתם רואים את אותו ההבדל?
  • האם המסננים שבהם אתם משתמשים לצורך הניסוי עובדים רק עבור חלק מהאוכלוסייה.

אנא הבינו מדוע הבדיקה הראשונית שלכם נכשלה לפני שתתחילו בניתוח בדיקת A/B.

אם קיבלתם אוכלוסיות דומות בשתי הקבוצות.

לקוח מ https://www.dataquest.io/wp-content/uploads/2018/09/sanity-check-invariants.png

 

 

בדקו האם הניסוי עשה תוצאות טובות יותר באופן משמעותי.

מחשבון אונליין: https://abtesting.glitch.me/

לקוח מ https://www.dataquest.io/wp-content/uploads/2018/09/ab-testing-results.png

 

כך ניתן לפרש את התוצאות:

d̂ – m > dmin

קבוצת הניסוי נותנת ביצועים שעולים על ביצועי קבוצת הביקורת (משמעות סטטיסטית ומעשית)=> שנה לגרסה חדשה.
d̂ – m>0
תוצאות הניסוי נותנים ביצועים שעולים על הביצועי קבוצת הביקורת (משמעות סטטיסטית בלבד). זה המקרה בדוגמה שלנו. כדי לקבל משמעות מעשית גם ביחד עם הסטטיסטית, אתם יכולים לתת לניסוי להימשך לרוץ עוד זמן. ביחד עם זאת, אתם יכולים להתייעץ ולהחליט ללכת עם הגרסה  החדשה.
d̂ – m <0
אם לא ניתן לומר שגרסת הניסוי עולה על קבוצת הביקורת עם ביצועים טובים יותר אז שמור על הגרסה המקורית וצור השערות חדשות.

לסיום

– לא משנה אלו תוצאות קיבלתם, תמיד תשתפו אותם עם הצוות/הנהלה
– תמיד הקפידו לרשום את התוצאות של הניסוי בצורה מסודרת, כך שתוכלו ללמוד להבא או לחזור על אותה בדיקה אחרי תקופת זמן.

מה השלב הבא?
– המשיכו להתפתח בנושא – עוד קצת על בדיקות A/B
להבין מה זה בדיוק טעות מסוג ראשון ושני

בהצלחה!