اختبار A/B
randomized controlled experiments متطبّقة على المنتجات الرقمية. إزاي شركات التكنولوجيا بتختبر آلاف التغييرات — وإزاي تعمله صح.
الـ control قصاد الـ variant
قسّم المستخدمين عشوائي. ورّي A (الـ control) لمجموعة وB (الـ variant) للتانية. وقيس هل الفرق أكبر من الصدفة.
الفرضية والـ metric
حدّد من الأول إنت بتغيّر إيه وبتقيس إيه والاتجاه المتوقع. التزم بـ primary metric واحد قبل الإطلاق.
- حساس — بيتغيّر لما العلاج ينجح
- في وقته — ينفع يتقاس جوه شباك الاختبار
- ماشي مع البيزنس — مرتبط بقيمة حقيقية
الـ sample size
حدّد الـ minimum detectable effect قبل الإطلاق. التأثيرات الأصغر محتاجة مستخدمين أكتر — استهدف أصغر تغيير هيأثر فعلًا على قرار الإطلاق.
الـ randomization بالمستخدم
وزّع المستخدمين على المجموعات بإنك تعمل hash للـ ID بتاعهم — مش بالـ page view. وده بيدّي كل مستخدم تجربة ثابتة وبيمنع التلوث جوه الـ session.
مدة الاختبار
شغّل كفاية للـ sample المطلوبة وعشان تغطّي دورات السلوك الطبيعية. الـ novelty effects بتختفي بعد كام يوم — والسلوك الثابت هو اللي يهم.
تحليل النتايج
اختار الاختبار على حسب نوع الـ metric. وقول دايمًا confidence interval لحجم التأثير — مش بس p-value.
- continuous — two-sample t-test (متوسط الإيرادات، مدة الـ session)
- binary — two-proportion z-test (الـ click-through rate، الـ conversion)
- count — Poisson test أو chi-squared
الـ test statistic
للـ conversion rates: قارن p̂₁ وp̂₂ بالنسبة للـ variance الـ pooled.
اختبار A/B البايزي
بدل الـ p-value، احسب: “P(B > A)” — احتمال إن الـ variant أحسن. أقرب للبديهة وبيتعامل مع المتابعة المستمرة بشكل أطبع.
مشكلة الـ peeking
إنك تبص كل يوم وتقف عند p < 0.05 بيكبّر الـ false positives من 5% لأكتر من 25%. الـ p-value بتتذبذب — إنك تقع عليها واطية مش إشارة حقيقية.
الـ sequential testing
حدّد من الأول التحليلات المؤقتة بعتبات معدّلة. حدود O’Brien-Fleming متحفظة في الأول وبتخف عند البصّة النهائية — بتتحكم في الخطأ الكلي عند α بالظبط.
- O’Brien-Fleming — الحد الـ sequential الكلاسيكي
- الـ always-valid p-values — صالحة في أي وقت توقف فيه
- الـ Bayesian stopping rules — اقف لما P(B>A) تعدّي العتبة
اتعلّمت إيه النهارده
حدّد كل حاجة من الأول. اعمل randomization بالمستخدم. اتأكد من الـ SRM. شغّل المدة كاملة. قول الـ confidence intervals. ابعد عن الـ peeking — أو استخدم الـ sequential testing لو محتاج تبص.