خلاصه مطلب
- حجم نمونه از چهار ورودی به دست میآید که پیش از شروع تست انتخاب میکنید: نرخ تبدیل پایه، کوچکترین اثر قابل تشخیص، سطح معناداری و توان آماری.
- اگر اثری را که میخواهید ببینید نصف کنید، تعداد بازدیدکنندهی لازم تقریباً چهار برابر میشود؛ پس مهمترین تصمیم، انتخاب کوچکترین اثر قابل تشخیص است.
- مدت تست برابر است با کل نمونه تقسیم بر ترافیک روزانهی واردشده به تست، که باید به هفتهی کامل گرد شود.
- سر زدن مکرر به نتایج و توقف در اولین لحظهی معنادارشدن، نرخ مثبت کاذب را خیلی بیشتر از ۵٪ برنامهریزیشده میکند.
- سایت کمبازدید هم میتواند تست کند: با تغییرهای بزرگتر، سنجیدن یک مرحلهی بالاتر قیف با نرخ بیشتر، یا طراحی ترتیبی.
برای اینکه نتیجهی یک تست A/B قابل اعتماد باشد، هر نسخه باید تعداد مشخصی بازدیدکننده ببیند. این تعداد از چهار عدد به دست میآید: نرخ تبدیل فعلی، کوچکترین رشدی که برایتان ارزش دارد، سطح معناداری و توان آماری. مثلاً صفحهای با نرخ تبدیل ۳٪ برای دیدن ۲۰٪ رشد نسبی، با اطمینان ۹۵٪ و توان ۸۰٪، حدود ۱۳٬۹۰۰ بازدیدکننده در هر نسخه لازم دارد. این عدد را بر ترافیک روزانه تقسیم کنید تا بدانید تست چند روز طول میکشد.
حجم نمونه تست A/B تعداد کاربر یا نشستی است که هر نسخهی تست باید دریافت کند تا اگر اثری به اندازهی کوچکترین اثر قابل تشخیص واقعاً وجود داشته باشد، تست با سطح معناداری و توان آماری انتخابشده آن را پیدا کند.
حجم نمونه تست A/B به چه چیزهایی بستگی دارد؟
هر ماشینحساب حجم نمونه، از جمله ابزار رایگان ادپیکس، همین چهار ورودی را میگیرد. ترافیک سایت جزو آنها نیست. ترافیک فقط تعیین میکند جمع کردن این نمونه چقدر طول بکشد.
| ورودی | یعنی چه | انتخاب رایج | اثر روی حجم نمونه |
|---|---|---|---|
| نرخ تبدیل پایه | نسخهی فعلی الان با چه نرخی تبدیل میگیرد | از دادههای آنالیتیکس | نرخ پایینتر، نمونهی بیشتر |
| کوچکترین اثر قابل تشخیص (MDE) | کوچکترین رشدی که میخواهید تست ببیند | ۵ تا ۳۰٪ نسبی | اثر کوچکتر، نمونهی خیلی بیشتر |
| سطح معناداری (α) | چقدر هشدار اشتباه را وقتی تفاوتی نیست میپذیرید | ۵٪ (اطمینان ۹۵٪) | سختگیری بیشتر، نمونهی بیشتر |
| توان آماری (۱ − β) | چقدر احتمال دارد اثر واقعی را پیدا کنید | ۸۰٪ | توان بیشتر، نمونهی بیشتر |
نرخ پایه را از همان صفحه، همان مخاطب و همان رویداد تبدیلی بگیرید که قرار است تست کنید، آن هم در بازهای چندهفتهای و تازه. اگر تست روی صفحهی محصول در موبایل اجرا میشود، میانگین کل سایت عدد درستی نیست. اگر هنوز معلوم نیست کدام تبدیل باید معیار اصلی تست باشد، اول همین را روشن کنید؛ راهنمای شاخصهای کلیدی بازاریابی (KPI) کمک میکند معیاری انتخاب کنید که واقعاً به درآمد وصل است.
کوچکترین اثر قابل تشخیص چیست و نسبی است یا مطلق؟
کوچکترین اثر قابل تشخیص (MDE) کوچکترین تفاوت واقعی است که تست برای پیدا کردنش طراحی میشود. این بیشتر یک تصمیم کسبوکاری است تا آماری. از خودتان بپرسید چه مقدار رشد ارزش دارد که تغییر را منتشر کنید، نگهش دارید و وقت تیم را رویش بگذارید.
MDE را به دو شکل مینویسند و قاطی کردن این دو رایجترین خطای برنامهریزی است:
- MDE نسبی درصدی از نرخ پایه است. ۲۰٪ رشد نسبی روی نرخ تبدیل ۳٪ یعنی نسخهی جدید باید به ۳٫۶٪ برسد.
- MDE مطلق تفاوت بر حسب واحد درصد است. ۰٫۶ واحد درصد رشد مطلق روی ۳٪ هم یعنی ۳٫۶٪. اما «۲۰ واحد درصد» مطلق یعنی رسیدن به ۲۳٪، که تست دیگری است.
ماشینحسابهایی مثل ابزار اوان میلر (Evan Miller) هر دو حالت را دارند. پیش از خواندن جواب، ببینید کدام حالت انتخاب شده است.
MDE بیشترین اثر را روی نتیجه دارد، چون حجم نمونه با عکس مجذور اثر تغییر میکند. اثر مدنظر را نصف کنید، تقریباً چهار برابر بازدیدکننده لازم دارید. به همین دلیل تست تغییرهای کوچک متن روی صفحههای کمبازدید تقریباً هیچوقت به نتیجه نمیرسد.
معناداری آماری و توان آماری به زبان ساده یعنی چه؟
تست را مثل دستگاهی در نظر بگیرید که دو نوع خطا دارد.
سطح معناداری (α) هشدار اشتباه را کنترل میکند. با α برابر ۵٪، اگر نسخهی جدید در واقع هیچ برتریای نداشته باشد، باز هم ۵٪ احتمال دارد تست آن را برنده اعلام کند. «اطمینان ۹۵٪» در عمل همین معنا را دارد. معنایش این نیست که نسخهی شما به احتمال ۹۵٪ بهتر است.
توان آماری (۱ − β) جاافتادن اثر واقعی را کنترل میکند. با توان ۸۰٪، اگر نسخهی جدید واقعاً دستکم به اندازهی MDE نرخ تبدیل را بالا ببرد، تست در ۸۰٪ موارد آن را نشان میدهد. یعنی از هر پنج بهبود واقعی، یکی شبیه نویز دیده میشود.
رونی کوهاوی (Ronny Kohavi) و همکارانش، که سالها برنامههای آزمایش در مقیاس بزرگ را در مایکروسافت و شرکتهای دیگر اداره کردهاند، آستانهی p-value برابر ۰٫۰۵ و توان ۸۰٪ را استاندارد رایج صنعت برای تعیین حجم نمونه میدانند (مقالهی KDD سال ۲۰۲۲). بیشتر ماشینحسابها هم همین را پیشفرض گذاشتهاند. میتوانید هر کدام را تغییر دهید، ولی هزینه دارد:
- اگر در مثال پایین توان را از ۸۰٪ به ۹۰٪ ببرید، نمونهی لازم از ۱۳٬۹۱۱ به ۱۸٬۶۲۳ نفر در هر نسخه میرسد؛ حدود ۳۴٪ بیشتر.
- اگر معناداری را به ۱۰٪ شل کنید، نمونه کوچکتر میشود اما احتمال هشدار اشتباه دو برابر میشود. برای تغییرهای کمخطر و برگشتپذیر شاید قابل قبول باشد، به شرطی که پیش از تست تصمیم بگیرید.
حجم نمونه تست A/B را چطور حساب کنیم؟
تقریب استاندارد برای مقایسهی دو نرخ تبدیل، حجم نمونهی هر نسخه را اینطور میدهد:
n = (z_α/2 + z_β)² × [p1(1 − p1) + p2(1 − p2)] / (p2 − p1)²
p1 = نرخ تبدیل پایه (نسخهی کنترل)
p2 = p1 × (1 + MDE نسبی)
z_α/2 = 1.96 برای معناداری ۵٪ دوطرفه
z_β = 0.8416 برای توان ۸۰٪
مثال عددی (اعداد فرضی)
فرض کنید صفحهی محصول یک فروشگاه اینترنتی لوازم خانگی ۳٪ از بازدیدکنندهها را به خرید میرساند. تیم میخواهد بداند نسخهی جدید صفحه، با عکسهای بهتر و نمایش شرایط اقساط بالای دکمهی خرید، دستکم ۲۰٪ رشد نسبی میآورد یا نه.
- نرخ پایه:
p1 = 0.03. - نرخ هدف:
p2 = 0.03 × 1.20 = 0.036. تفاوت مطلق0.006است، یعنی ۰٫۶ واحد درصد. - مقدارهای z:
1.96 + 0.8416 = 2.8016و2.8016² ≈ 7.849. - جملههای واریانس:
0.03 × 0.97 = 0.0291و0.036 × 0.964 = 0.034704. جمعشان0.063804است. - مجذور تفاوت:
0.006² = 0.000036. - کنار هم:
7.849 × 0.063804 ≈ 0.5008و0.5008 / 0.000036 ≈ 13,911.
پس تست حدود ۱۳٬۹۱۱ بازدیدکننده در هر نسخه لازم دارد، یعنی ۲۷٬۸۲۲ نفر در مجموع برای تستی با دو نسخه.
همان مقاله برای معناداری ۵٪ و توان ۸۰٪ یک قاعدهی سرانگشتی هم میدهد: n ≈ 16 × σ² / δ²، که در آن برای نرخ تبدیل σ² = p(1 − p) و δ تفاوت مطلق است. اینجا میشود 16 × 0.0291 / 0.000036 ≈ 12,933. کمی کمتر است چون فقط واریانس نسخهی پایه را میگیرد، ولی برای چک سریع ماشینحساب کافی است.
تست A/B را چند روز باید اجرا کرد؟
مدت تست مستقیم از حجم نمونه به دست میآید:
روزها = (n هر نسخه × تعداد نسخهها) / بازدیدکنندهی روزانهی واردشده به تست
اگر همان صفحهی محصول روزانه ۲٬۰۰۰ بازدیدکنندهی واجد شرایط داشته باشد و ترافیک مساوی تقسیم شود، تست 27,822 / 2,000 ≈ 13.9 روز طول میکشد. آن را به ۱۴ روز گرد کنید، یعنی دقیقاً دو هفته.
همیشه به هفتهی کامل گرد کنید و حتی اگر حساب کمتر نشان داد، دستکم یک هفتهی کامل اجرا کنید. رفتار خریداران ایرانی در روزهای کاری با پنجشنبه و جمعه فرق دارد، و تستی که فقط شنبه تا سهشنبه را پوشش دهد، تکهای از مخاطب را مقایسه میکند. حواستان به تعطیلات رسمی، کمپینهای حراج و روزهای پرترافیکی مثل حوالی نوروز هم باشد؛ تست را وسط این دورهها شروع یا تمام نکنید. کوهاوی و همکارانش از اثر تازگی (novelty) و اثر عادت (primacy) هم میگویند: بعضی کاربران فقط چون چیزی تازه است رویش کلیک میکنند، و کاربران قدیمی با چیدمان تازه اول کندتر کار میکنند و این به نفع نسخهی کنترل تمام میشود. به تجربهی آنها این اثرها بهندرت نتیجهی اولیه را برمیگردانند و خیلی از «روندهای» اول تست فقط نویز است، اما اجرای تست در هفتههای کامل فرصت میدهد این اثرها دیده شوند و فروکش کنند.
جدول پایین همان صفحهی فرضی (نرخ پایهی ۳٪ و ۲٬۰۰۰ بازدید روزانه) را نگه میدارد و فقط MDE را تغییر میدهد:
| MDE نسبی | رشد مطلق | نرخ نسخهی جدید | نمونهی هر نسخه | نمونهی کل | مدت اجرا |
|---|---|---|---|---|---|
| ۵٪ | ۰٫۱۵ واحد درصد | ۳٫۱۵٪ | ۲۰۷٬۹۳۶ | ۴۱۵٬۸۷۲ | حدود ۳۰ هفته |
| ۱۰٪ | ۰٫۳ واحد درصد | ۳٫۳٪ | ۵۳٬۲۰۸ | ۱۰۶٬۴۱۶ | ۸ هفته |
| ۲۰٪ | ۰٫۶ واحد درصد | ۳٫۶٪ | ۱۳٬۹۱۱ | ۲۷٬۸۲۲ | ۲ هفته |
| ۳۰٪ | ۰٫۹ واحد درصد | ۳٫۹٪ | ۶٬۴۵۲ | ۱۲٬۹۰۴ | ۱ هفته |
| ۵۰٪ | ۱٫۵ واحد درصد | ۴٫۵٪ | ۲٬۵۱۵ | ۵٬۰۳۰ | ۱ هفته (حداقل) |
اگر جواب برای صفحهی شما ۳۰ هفته است، این تست به این شکل ارزش اجرا ندارد.
چرا سر زدن مکرر به نتایج، مثبت کاذب را زیاد میکند؟
نرخ ۵٪ هشدار اشتباه فقط وقتی برقرار است که نتیجه را یک بار و در حجم نمونهی برنامهریزیشده نگاه کنید. هر بار نگاه اضافه (peeking) به نویز تصادفی فرصت دیگری میدهد که از خط معناداری رد شود.
اوان میلر در مقالهی «How Not To Run an A/B Test» این را با عدد نشان میدهد. در مثال او نسخهی جدید هیچ اثر واقعی ندارد، آزمایشگر بعد از هر مشاهدهی جدید نتیجه را چک میکند و در اولین خوانش معنادار متوقف میشود. نرخ مثبت کاذب به ۲۶٫۱٪ میرسد، یعنی بیش از پنج برابر ۵٪ اسمی. حتی با ده بار نگاه از پیش تعیینشده، برای اینکه خطای کلی نزدیک ۵٪ بماند، باید در هر نگاه آستانهای حدود ۱٪ بگذارید.
قاعدههای عملی برای جلوگیری از این مشکل:
- حجم نمونه و تاریخ پایان را پیش از شروع ثابت کنید و جایی بنویسید که همهی تیم ببینند.
- برای پیدا کردن خرابی چک کنید، نه برای پیدا کردن برنده. چک روزانهی اینکه هر دو نسخه درست بالا میآیند، ترافیک درست تقسیم میشود و رویدادها ثبت میشوند لازم است. فقط بر اساس تفاوت نرخ تبدیل تصمیم نگیرید.
- اگر واقعاً امکان توقف زودهنگام لازم است، روشی را به کار ببرید که برای همین طراحی شده است. طراحیهای ترتیبی (sequential)، مثل روش سادهای که اوان میلر توضیح داده، مرزهای توقف را از قبل تعیین میکنند تا توقف زودتر هم از نظر آماری معتبر بماند.
سایت کمبازدید چطور آزمون A/B اجرا کند؟
ترافیک کم آزمایش را غیرممکن نمیکند، فقط انتخاب آزمایش را عوض میکند. به ترتیب اثر:
- تغییر بزرگتر را تست کنید. پیشنهاد جدید، بازطراحی یک مرحلهی تسویهحساب یا شکل دیگری از نمایش قیمت و اقساط میتواند نرخ تبدیل را ۳۰٪ یا بیشتر جابهجا کند، و جدول بالا نشان میدهد این چقدر تست را کوتاه میکند. تست رنگ دکمه مال سایتهای خیلی پرترافیک است.
- مرحلهای بالاتر از قیف را با نرخ بیشتر بسنجید. با همان ۲۰٪ MDE نسبی، نرخ پایهی ۱٪ به ۴۲٬۶۹۱ نفر در هر نسخه نیاز دارد و نرخ پایهی ۱۰٪ فقط به ۳٬۸۳۹ نفر. «افزودن به سبد» یا «شروع پرداخت» معمولاً نرخی خیلی بیشتر از خرید نهایی دارد. خرید را بهعنوان معیار محافظ نگه دارید تا کلیکی را بهینه نکنید که به فروش نمیرسد. تحلیل مراحل قیف فروش نشان میدهد کدام مرحله هم نرخ بالایی دارد و هم واقعاً به درآمد وصل است.
- ترافیک چند صفحه را روی هم بگذارید. تغییر را روی یک قالب، مثلاً همهی صفحههای محصول، تست کنید نه روی یک آدرس.
- دو نسخه تست کنید، نه پنج نسخه. هر نسخهی اضافه نمونهی کامل خودش را میخواهد، و مقایسهی نسخههای زیاد احتمال برندهی کاذب را هم بالا میبرد.
- اگر امکان توقف زودهنگام لازم دارید، از طراحی ترتیبی استفاده کنید، نه از نگاههای مکرر به تست با نمونهی ثابت.
- تنظیم شلتر را آگاهانه بپذیرید. برای تغییرهای ارزان و برگشتپذیر، اطمینان ۹۰٪ میتواند معاملهی معقولی باشد. فقط پیش از شروع تصمیم بگیرید و بنویسید، نه بعد از دیدن داده.
- تست را به زور اجرا نکنید. اگر تست ماهها طول میکشد، مصاحبه با مشتری، بررسی رفتار کاربران یا انتشار مرحلهای همراه با مقایسهی دقیق قبل و بعد احتمالاً زودتر چیزی یادتان میدهد.
تست A/B را با ادپیکس چطور برنامهریزی کنیم؟
ادپیکس ورودیهای این محاسبه را به شما میدهد.
- نرخ پایه را پیدا کنید. گزارش قیف و مسیر تبدیل نشان میدهد چند نفر به هر مرحله میرسند و کجا ریزش دارند، پس نرخ تبدیل واقعی همان صفحه و مرحلهای را که میخواهید تست کنید میبینید. گزارشهای ادپیکس نمونهبرداری (sampling) نمیشوند، پس عددی که برنامهریزی را رویش بنا میکنید کامل است.
- مخاطب را دقیق کنید. از پلن استارتر به بالا، با سگمنتها میتوانید نرخ پایه را دقیقاً برای مخاطب تست، مثلاً کاربران موبایل یا کاربران بازگشتی، بیرون بکشید و به میانگین کل سایت تکیه نکنید.
- ترافیک روزانهی واجد شرایط را تخمین بزنید. میانگین بازدید روزانهی همان صفحه را در چند هفتهی کامل اخیر بگیرید، نه یک روز خوب.
- اندازهی تست را حساب کنید. نرخ پایه، MDE، معناداری و توان را در ماشینحساب رایگان پایین وارد کنید تا حجم نمونه و مدت تست را ببینید.
اگر به جای تست، میخواهید تعداد پاسخدهندهی یک نظرسنجی مشتری را تعیین کنید، ماشینحساب حجم نمونه نظرسنجی جواب همان سؤال است. و اگر سؤال این است که یک کانال تبلیغاتی، مثلاً تبلیغات اینستاگرام یا پیامک، اصلاً فروش اضافه میسازد یا نه، به آزمایش با گروه کنترل (holdout) نیاز دارید. سنجش lift کمپین با گروه کنترل (holdout) از پلن استارتر به بالا در ادپیکس هست و پلن پرو سنجش اثر واقعی کمپین (incrementality) را اضافه میکند (مقایسه پلنها). راهنمای مدلهای اتریبیوشن توضیح میدهد چرا اتریبیوشن بهتنهایی به این سؤال جواب نمیدهد.
قدم بعدی: یک صفحه انتخاب کنید، نرخ پایهاش را در چهار هفتهی کامل گذشته دربیاورید، کوچکترین رشدی را که به خاطرش تغییر را واقعاً منتشر میکنید بنویسید، و پیش از اینکه کسی نسخهی جدید را بسازد، عددها را حساب کنید.
محاسبهگر تست A/B
حجم نمونه و مدت زمان آزمایش بعدی شما. پلن رایگان ادپیکس تا ۱۰۰ هزار رویداد در ماه، بدون کارت بانکی. راهاندازی کمتر از پنج دقیقه طول میکشد.
پرسشهای متداول
حداقل حجم نمونه برای تست A/B چقدر است؟
عدد ثابتی وجود ندارد و به نرخ تبدیل فعلی و کوچکترین اثری که برایتان مهم است بستگی دارد. صفحهای با نرخ تبدیل ۳٪ برای دیدن ۲۰٪ رشد نسبی، با اطمینان ۹۵٪ و توان ۸۰٪، حدود ۱۳٬۹۰۰ بازدیدکننده در هر نسخه لازم دارد.
کوچکترین اثر قابل تشخیص را نسبی بنویسم یا مطلق؟
هر دو درست است، به شرطی که بدانید کدام را وارد کردهاید. ۲۰٪ رشد نسبی روی نرخ ۳٪ همان ۰٫۶ واحد درصد رشد مطلق است و نرخ را از ۳٪ به ۳٫۶٪ میرساند.
میتوانم تست A/B را بهمحض معنادارشدن متوقف کنم؟
در تست معمولی با حجم نمونهی ثابت، نه. معناداری فقط در حجم نمونهای که از قبل تعیین کردهاید معتبر است؛ اگر امکان توقف زودهنگام لازم دارید، از اول یک روش ترتیبی انتخاب کنید.
تست A/B را چند روز اجرا کنیم؟
تا وقتی هر نسخه به حجم نمونهی برنامهریزیشده برسد و دستکم یک هفتهی کامل؛ مدت را به هفتهی کامل گرد کنید تا رفتار روزهای کاری و آخر هفته هر دو پوشش داده شود.
توان آماری را چند درصد بگذارم؟
۸۰٪ انتخاب رایج است. بالا بردن آن به ۹۰٪ احتمال ازدستدادن اثر واقعی را کم میکند، اما حجم نمونه را حدود یکسوم بیشتر میکند.
منابع و روش
حجم نمونههای این مقاله با فرمول تقریب نرمال برای مقایسهی دو نسبت، با سطح معناداری دوطرفهی ۵٪ (z ≈ 1.96) و توان ۸۰٪ (z ≈ 0.8416) و با مقدار دقیق z محاسبه و به عدد صحیح بالاتر گرد شده است. همهی اعداد ترافیک و نرخ تبدیل فرضیاند.
- Kohavi, Tang and Xu (2020), Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing, Cambridge University Press
- Kohavi, Deng & Vermeer (2022), A/B Testing Intuition Busters, KDD 2022
- Kohavi, Deng, Frasca, Longbotham, Walker & Xu (2012), Trustworthy Online Controlled Experiments: Five Puzzling Outcomes Explained, KDD 2012
- Evan Miller: How Not To Run an A/B Test
- Evan Miller: Sample Size Calculator
- Evan Miller: Simple Sequential A/B Testing
این مطلب با کمک هوش مصنوعی نوشته شده و پیش از انتشار توسط تیم ادپیکس بازبینی شده است. سیاست تحریریه