لما الرياضة تقابل قرارات حقيقية
نتيجة تحليل لمرض نادر طلعت إيجابية. الـ spam filter علّم على رسالة جاية. مدير منتج عايز يعرف أنهي نسخة من الموقع أحسن. في التلات حالات السؤال واحد: في ضوء الدليل ده، أحدّث اعتقادي إزاي؟
نظرية Bayes (نظرية بايز) هي الإجابة الرسمية. في الدرس اللي فات اشتقّيناها رياضيًا. دلوقتي هنشغّلها — على التحاليل الطبية والـ spam filtering وتجارب A/B — عشان نشوف ليه الاستدلال البايزي قوي وفي نفس الوقت عكس البديهة في أغلب الأحيان.
ابدأ بالاعتقاد الـ prior (القبلي) P(H). شوف الدليل E. استخدم الـ likelihood (احتمال الدليل) P(E|H) والـ marginal (الاحتمال الهامشي) P(E) عشان تحسب الـ posterior (الاحتمال البعدي) P(H|E).
الـ posterior ∝ الـ likelihood × الـ priorالتحاليل الطبية: المصطلحات
التحاليل الطبية ليها كميتين أساسيتين. الـ sensitivity (الحساسية) هي احتمال إن النتيجة تطلع إيجابية بشرط إن المريض عنده المرض فعلًا — وبتقيس التحليل شاطر قد إيه في إنه يلقط الحالات الحقيقية. والـ specificity (النوعية) هي احتمال إن النتيجة تطلع سلبية بشرط إن الشخص سليم فعلًا — وبتقيس التحليل بيتجنّب الإنذارات الكدّابة قد إيه.
خد بالك الكميات دي مش بتقولك إيه. بنفس الرموز اللي في المعادلتين اللي فوق — D إن الشخص عنده المرض و+ نتيجة تحليل إيجابية — الـ sensitivity بتدّيك P(+ | D). بس اللي الدكتور والمريض عايزين يعرفوه فعلًا هو العكس: P(D | +). وهنا بالظبط نظرية Bayes بتدخل.
الـ predictive value الإيجابية والسلبية
الكميتين اللي بيجاوبوا على الأسئلة الطبية على طول هما الـ positive predictive value (القيمة التنبؤية الإيجابية) أو PPV — احتمال إن الشخص عنده المرض لو النتيجة إيجابية — والـ negative predictive value (القيمة التنبؤية السلبية) أو NPV — احتمال إنه سليم لو النتيجة سلبية. ودول الـ posteriors اللي نظرية Bayes بتحسبهم.
المعادلة بتوضّح حاجة على طول: الـ PPV معتمدة على انتشار المرض P(D) — يعني هو منتشر قد إيه في الناس اللي بيتعملهم التحليل. فحتى تحليل الـ sensitivity والـ specificity بتوعه ممتازين ممكن الـ PPV بتاعته تبقى واطية جدًا لو المرض نادر، لأن أغلب الإيجابيات جاية من المجموعة الكبيرة من السليمين مش من المجموعة الصغيرة من المرضى.
مغالطة الـ base rate
الـ base rate fallacy (مغالطة معدل الأساس) هي غلطة إنك تتجاهل الانتشار وإنت بتفسّر نتايج التحاليل. ودي منتشرة جدًا حتى عند المتخصصين المدرّبين. دراسات وضّحت إن أغلب الدكاترة بيبالغوا في تقدير احتمال الإصابة بعد نتيجة إيجابية، لأنهم بيركّزوا على دقة التحليل وبيسيبوا ندرة المرض.

البديهة بتميل تتمسّك بالرقم الكبير — «دقة التحليل 99%» — وتتجاهل السياق — «بس 0.1% بس من الناس عندهم المرض». نظرية Bayes بتجبرك تدّي الدقة وزن على قد الـ base rate، وكتير النتيجة بتطلع عكس البديهة.
الإعداد: مرض بيصيب 1 من كل 1,000 شخص (الانتشار = 0.1%). التحليل الـ sensitivity بتاعته 99% والـ specificity 99%. نتيجتك طلعت إيجابية. P(D | +) كام؟
البسط: P(+ | D) × P(D) = 0.99 × 0.001 = 0.00099
المقام: P(+) = 0.99×0.001 + 0.01×0.999 = 0.00099 + 0.00999 = 0.01098
PPV = 0.00099 / 0.01098 ≈ 9% — احتمال الإصابة 9% بس رغم «دقة 99%»النتيجة دي بتفاجئ الكل تقريبًا. حتى مع تحليل دقيق جدًا، حوالي 91 من كل 100 نتيجة إيجابية بتبقى لناس سليمين، لأن قصاد كل مريض واحد فيه 999 شخص سليم. الإيجابيات الكدّابة الجاية من البحر الكبير ده من السليمين بتغطّي على الإيجابيات الحقيقية الجاية من المجموعة الصغيرة من المرضى.
الـ Bayesian updating: prior ← دليل ← posterior
من أهم خصايص نظرية Bayes إنها تسلسلية. الـ posterior النهارده بيبقى الـ prior بكرة. مش محتاج تستنى كل الأدلة قبل ما تحدّث — تقدر تدخّل كل معلومة واحدة ورا التانية، وتبدأ دايمًا من أحدث posterior.
افترض إن المريض بتاعنا من المثال اللي فوق عمل تحليل تاني مستقل والنتيجة طلعت إيجابية برضه. دلوقتي بناخد الـ posterior من التحليل الأول (PPV ≈ 9%) كـ prior جديد، ونطبّق نظرية Bayes تاني بالـ likelihood بتاع التحليل التاني. الـ posterior بيطلع جامد — لأن نتيجتين إيجابيتين مستقلين صعب تفسّرهم على إنهم مجرد صدفة.
النظرة التسلسلية دي هي جوهر العالم البايزي: الاستدلال عملية مستمرة بتتراكم فيها الأدلة وبتتحدّث فيها الاعتقادات، مش حسبة مرة واحدة وخلاص.
الـ spam filtering بالـ Naive Bayes
الـ spam filters كانت من أول التطبيقات الكبيرة للاستدلال البايزي في البرامج. الفكرة الجوهرية: لو عندنا كلمات الإيميل، احتمال إنه spam قد إيه؟ بنطبّق نظرية Bayes ونعتبر كل كلمة دليل مستقل — وده تقريب اسمه افتراض الـ Naive Bayes (بايز الساذج).
خلّي S = «الإيميل spam» وw₁, w₂, …, wₙ كلمات الإيميل. بافتراض الاستقلالية الساذجة، الـ posterior بتاع الـ spam بيتناسب مع الـ prior بتاعه مضروب في حاصل ضرب احتمالات الكلمات الفردية P(wᵢ | S).
نرمز بـ S للحدث «الرسالة spam»، وبـ N للحدث «الرسالة مش spam»، وبـ w للكلمة. الـ filter بيتدرّب على رسايل متصنّفة (spam / مش spam) عشان يقدّر P(w | S) وP(w | N) من العدّ. لرسالة جديدة، كلماتها w₁…wₙ:
P(S | w₁…wₙ) ∝ P(S) × ∏ P(wᵢ | S)
لو ده عدّى P(N | w₁…wₙ) الرسالة بتتصنّف spam. الافتراض «الساذج» بيتجاهل الارتباط بين الكلمات، ومع ذلك الـ classifier بيشتغل كويس بشكل ملفت في الواقع.
الـ Naive Bayes classifier توليدي (generative): بيعمل model لإزاي كل فئة بتطلّع البيانات. ورغم افتراض الاستقلالية القوي، ساعات بينافس models أعقد بكتير، خصوصًا لما بيانات التدريب تبقى قليلة. وكمان هو سريع في التدريب وسهل تفسّره وبيتعامل بشكل طبيعي مع الـ features الناقصة.
اختبار A/B بالطريقة البايزية
في اختبار A/B الكلاسيكي بتعمل تجربة وتحسب p-value وتقرر هترفض الـ null hypothesis (الفرضية الصفرية) ولا لأ. البديل البايزي بيبدأ بـ prior distribution على معدل التحويل لكل نسخة وبيحدّثه بالبيانات اللي شفناها عشان يطلّع posterior distribution. ساعتها تقدر تسأل على طول: احتمال إن النسخة B أحسن من A قد إيه؟
الآلية هي نفس آلية التحديث «prior ← دليل ← posterior» من مثال الفحص الطبي، بس دلوقتي مطبّقة على معدل تحويل continuous θ بدل تشخيص آه ولا لأ. بتبدأ باعتقاد prior عن θ — distribution كامل على قيمه الممكنة مش تخمين واحد — وكل زائر بيشتري أو مبيشتريش هو مشاهدة زيادة بتحدّد الاعتقاد ده أكتر. ومع تراكم التحويلات الـ posterior بيتركّز حوالين المعدل الحقيقي. أما الـ distributions المعيّنة اللي بتخلّي التحديث ده مظبوط وليه صيغة مقفولة فهتتقدّم في الوحدة الرابعة؛ والمقصود هنا بس إن اختبار A/B البايزي هو نفس التحديث التسلسلي، بيتكرر مرة ورا مرة.
التكراري: «الـ p-value هي 0.03، بنرفض H₀ عند α = 0.05.» مينفعش تقول احتمال إن B أحسن.
البايزي: نرمز بـ B > A للحدث «النسخة B أحسن من A»، وبـ data للبيانات اللي شفناها، فالإجابة: «P(B > A | data) = 94%.» إجابة مباشرة على سؤال البيزنس، ومعاها credible interval (فترة مصداقية) على الفرق.
الاختبارات البايزية بتسهّل كمان التفكير في المتابعة المستمرة: الـ posterior ليه معنى عند أي sample size، فإنك تبص على البيانات بدري مش بيبوّظ الـ posterior نفسه. بس ده مش معناه إن كل حاجة مسموحة — قاعدة قرار زي «بنوقف لما P(B > A | data) يعدّي 95%» لسه قاعدة وقف، وبتكبّر معدل الإيجابيات الكدّابة على المدى الطويل. الطرق البايزية بتغيّر معنى الرقم، مش حساب البصّات المتكررة.
ليه Bayes مهم في الـ machine learning؟
الأفكار البايزية داخلة في كل حتة في الـ machine learning (تعلّم الآلة) الحديث. الـ MAP estimation (تقدير أعظم الاحتمال اللاحق) هو نظرية Bayes مطبّقة على تقدير الـ parameters: بدل ما تعظّم الـ likelihood لوحده (تقدير MLE)، الـ MAP بيعظّم حاصل ضرب الـ likelihood في الـ prior، وده بيساوي الـ regularization (التنظيم). الـ L2 regularization (Ridge) بتقابل Gaussian prior؛ والـ L1 regularization (Lasso) بتقابل Laplace prior.
الـ Bayesian neural networks (الشبكات العصبية البايزية) بتحتفظ بـ posterior distribution كامل على الـ weights بدل تقدير نقطة واحدة، وده بيخلّيها تقيس الـ uncertainty. أما الـ Gaussian processes (العمليات الغاوسية) فهي models بايزية على الدوال، بتستخدم في الـ hyperparameter optimization والإحصاء المكاني. وطرق الـ approximate inference (الاستدلال التقريبي) والـ MCMC بتسهّل الحسابات دي.
الـ uncertainty مواطن درجة أولى. الـ model اللي عارف حدود معرفته أنفع من اللي واثق في نفسه على طول.
المعرفة المسبقة بيانات. خبرة المجال بتدخل بشكل طبيعي كـ prior، وده بيحسّن الـ generalization لما البيانات المتصنّفة تبقى قليلة.
التعلّم هو تحديث. كل مشاهدة جديدة فرصة تظبّط فيها اعتقاداتك — ونفس المبدأ ماشي من قلب العملة لحد تدريب deep networks.
تجميع الأفكار
نظرية Bayes مش مجرد معادلة — دي إطار لمراجعة الاعتقاد بعقل. في التحاليل الطبية بتوضّح إن نتيجة إيجابية لفحص مرض نادر غالبًا false positive إلا لو الـ prior بتاع الإصابة كبير. في الـ spam filtering بتشغّل classifiers بتتأقلم مع أنماط إيميل كل مستخدم. في اختبار A/B بتدّي إجابات مباشرة على أسئلة البيزنس بدل عتبات p-value غير مباشرة. وفي الـ machine learning بتربط الـ regularization وقياس الـ uncertainty والتعلّم التسلسلي تحت مظلة واحدة متماسكة.
مغالطة الـ base rate — إنك تتجاهل الانتشار — يمكن تكون أهم درس في الوحدة دي. كل مرة تشوف نتيجة تحليل تشخيصي، أو درجة ثقة model، أو نتيجة تجريبية ملفتة، اسأل: الـ prior كام؟ الإجابة كتير بتغيّر كل حاجة.
- بالرموز D للمرض و+/− لنتيجة التحليل: الـ sensitivity = P(+ | D)؛ والـ specificity = P(− | D̄). ولا واحدة فيهم بتقولك P(D | +) — ده محتاج Bayes.
- PPV = P(D | +) معتمدة بشكل حاسم على الانتشار. تحليل «دقته 99%» لمرض انتشاره 0.1% الـ PPV بتاعته ≈ 9%.
- مغالطة الـ base rate هي إنك تتجاهل الـ prior (الانتشار). ونظرية Bayes بتجبرك تجمع الـ prior والـ likelihood صح.
- الـ Bayesian updating تسلسلي: الـ posterior النهارده هو الـ prior بكرة. والـ likelihoods بتتضرب في بعض للمشاهدات المستقلة.
- الـ spam filters بالـ Naive Bayes بتطبّق نظرية Bayes كلمة كلمة تحت افتراض الاستقلالية، وبتشتغل بكفاءة ملفتة رغم كده.
- اختبار A/B البايزي بيدّي P(B > A | data) — احتمال إن النسخة B أحسن من A لما نعرف البيانات — على طول ويخلّي المتابعة أثناء التجربة ليها معنى — بس لازم تختار قاعدة الوقف بحرص؛ هو مش بيخلّي البصّات المتكررة ببلاش.
- في الـ machine learning، Bayes بيظهر في تقدير الـ MAP (الـ regularization)، والـ Bayesian neural networks، والـ Gaussian processes، وقياس الـ uncertainty.