برو به محتوای اصلی
امین سجودی
Software Engineer
۱۱ ماه پیش پرسیده شده

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

من کجام؟ اینجا کجاست؟

در جامعه بازی‌سازان ایران می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربه‌تون رو به اشتراک بگذارید!

در طراحی تست، با توجه به اینکه ما بخشی از داده را نمونه برداری میکنیم و کل اطلاعات را نداریم، میبایست از نظر آماری بتوانیم نشان بدهیم بین دو دسته نمونه ای که داریم اختلاف معنا داری وجود دارد.

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

برای این منظور میبایست یه فرض اولیه (فرض صفر) داشته باشیم که نشان دهنده این است که اختلاف معناداری بین دو دسته داده وجود ندارد. در صورتی که بتوانیم این فرض اولیه را به روش آماری رد کنیم، نتیجه خواهیم گرفت که پس اختلاف معنا داری وجود دارد. به عبارت همه بیگناه هستند مگر اینکه خلافش ثابت شود.

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

به عنوان مثال قبل از دیدن نمونه اماری میتوان فرض کرد که نرخ بازگشت روز یکم کاربران بازی ۳۰ درصد است. بعد تعدادی از کاربران را اندازه میگیریم و به یک میانگین میرسیم. اگر این میانگین در محدوده نمودار نرمال باشد فرض صفر رد نمیشود و ثابت میماند اما اگر خارج از آن محدوده باشد، فرض صفر رد میشود که یعنی نرخ بازگشت ۳۰ درصد نیست.

ممکن است موقع این بررسی رد کردن یا قبول کردن فرض صفر را درست انجام بدهیم و مطابق با واقعیت باشد اما برعکس ممکن است مخالف واقعیت درست باشد و غلط تشخیص بدهیم و برعکس که چهار حالت زیر ایجاد میشود. در تست‌هایی که به روش درست انجام نمیشوند احتمال افتادن در False positive و False negative زیاد است.

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

ابزار اماری که برای قبول یا رد این موضوع استفاده میشود، p-value هست که با محاسبه اون میشه فهمید که «چه میزان احتمال دارد فرض صفر درست باشد اما در عین حال همچین نتیجه ای ببینیم».

این عدد بین صفر و یک هست و هر چه به صفر نزدیک‌تر باشد نشان میدهد که میتوانیم فرض صفر را با اطمینان بیشتری رد کنیم. معمولا در تحقیقات علمی این عدد باید زیر یک صدم باشد که اختلاف بین دو گروه مورد پذیرش باشد. ما معمولا زیر ۰.۱ رو هم میپذیریم در تست‌های خودمون.

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

هر چه تعداد نمونه‌ها بیشتر باشد p-value با اطمینان بیشتری میزان تفاوت مشاهده شده بین گروه‌ها را تایید یا رد میکند. بنابراین برای محاسبه تعداد نمونه ای که نیاز دارید میبایست ابتدا میزان تفاوتی که نیاز است تشخیص داده شود را مشخص کنید. برای تشخیص یک سانتیمتر اختلاف قد بین دو گروه کودک به تعداد افراد بسیار بیشتری نیاز دارید نسبت به اینکه بخواهید نشان بدهید ۱۰ سانتی متر اختلاف قد بین آنها وجود دارد یا نه.

دلیل این موضوع این هست که statistical power به شما میگه که برای اینکه بتونید تاثیر معنی دار رو تشخیص بدید نیاز دارید پاور کافی داشته باشید. اگه تاثیر رو تشخیص ندیم (سیگنیفیکنت نباشه) یا معنی اش اینه که (۱) تاثیر واقعا وجود نداره یا معنی اش اینه که (۲) پاور پایین بوده و نتونسته تشخیص بده.

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

برای محاسبه تعداد نمونه این ابزار آنلاین۴۱ وجود دارد که میتواند به شما تعداد نمونه مورد نظر را بدهد. به عنوان مثال برای دو مورد زیر برای تشخیص ۱ درصد و ۴ درصد اختلاف، تعداد داده‌ها مشخص شده است:

برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟
برای انجام تست های A/B چه بازه زمانی رو مد نظر قرار می دهید؟ چجوری مطمئن می شید که نتایج و آمار ها دچار خطا نشده؟ برای تست در هر دسته چه تعداد کاربر باید حدقل قرار بگیرند که نتایج قابل اتکا باشند؟ توصیه می کنید بیشتر از 2 دسته رو همزمان تست بکنیم؟

 نکته مهم این است که زمان اتمام تست و تعداد نمونه‌ها باید قبل از شروع تست مشخص شوند وگرنه اتفاقی که می‌افتد این خواهد بود که شما هر روز به نتایج تست سر میزنید و p-value را محاسبه میکنید و تا جایی ادامه میدهید که این مقدار به شما Significance را نشان بدهد. جالب است که اکثر پنل‌های A/B Test آنلاین به صورت لحظه ای p-value محاسبه میکنند و میتوانند به راحتی ما را در این دام بیاندازند. اما این روش اشکال مهم آماری دارد که خطای مشاهده وسط تست یا peeking نامیده میشود. در این مورد لینک زیر را مطالعه کنید:

https://www.evanmiller.org/how-not-to-run-an-ab-test.html۵۱

در مورد تست‌هایی که چندین دسته دارند نیز به همان نسبت تعداد داده‌های مورد نیازتان بالاتر میرود چون کاربران را بین دسته بیشتری تقسیم کرده اید و برای نشان دادن تفاوت نیاز به زمان بیشتر و نقاط داده بیشتری دارید.

سوالات مشابه