الاحتمال عمليًا
درس 6 من 9
6الاحتمال عمليًا
الصورة الكبيرةالاحتمال هنا ليس مادة مستقلة بل الأداة التي تمنعك من الثقة برقم عالٍ في غير موضعه، ومنها تفهم لماذا تخدع الدقة العالية الجميع.
ماذا تشاهد في الرسم: من كل 594 نتيجة موجبة، 99 فقط لمرضى فعلًا و495 إنذار كاذب. الاختبار دقيق لكن المرض نادر، فالأصحّاء الكثيرون ينتجون إنذارات كاذبة أكثر مما ينتجه المرضى القليلون من إصابات صحيحة.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
الاحتمال لغة «كم نحن متأكدون». لو قال فحص طبي إنك مصاب، فهل أنت مصاب فعلًا؟ ذلك يعتمد على مدى ندرة المرض أصلًا. لو كان نادرًا جدًا، فأغلب النتائج الإيجابية قد تكون خاطئة. هذه المغالطة تخدع الأطباء والمهندسين معًا.
التوزيع يصف القيم الممكنة واحتمالاتها، والمتوسط والانحراف المعياري يلخّصانه. الاحتمال الشرطي P(A|B) يتغير بالمعلومة، ومبرهنة بايز تربطه بـP(B|A). ومغالطة القاعدة الأساس base rate fallacy تجاهل الاحتمال القبلي، وهي سبب سوء قراءة نماذج التصنيف على الفئات النادرة.
قبل أن تبدأ
📊الرسوم والتوزيع
رأيت المدرّج في درس الرسوم، وتعرف أن للبيانات شكلًا لا متوسطًا فقط.
➗الكسور والنسب
تحوّل 1% إلى 0.01 وتضرب نسبتين دون تردّد.
الفكرة الجوهرية
نأخذ من الاحتمال ما يظهر في عملك فقط: التوزيع، ثم الانحراف المعياري، ثم الاحتمال الشرطي، ثم القاعدة الأساس التي تخدع من يقرأ الدقة.
1التوزيع: شكل البيانات
التوزيع يصف احتمال كل قيمة أو مدى من القيم. هو شكل البيانات لا قيمتها الوسطى.
انظر إلى الرسم: توزيع طبيعي متوسطه 50 وانحرافه 10. أغلب القيم قرب الوسط، وتقلّ كلما ابتعدت.
أغلب ما يسمّيه الناس «شاذًّا» هو توزيع لم ينظروا إليه. التوزيع هو ما يحدّد معنى الشاذ في بياناتك، لا عينك.
2المتوسط والانحراف
المتوسط موقع والانحراف اتّساع، ومن دون الثاني يصير الأول رقمًا بلا معنى. الانحراف المعياري هو متوسط بُعد القيم عن متوسطها.
انظر إلى الرسم: كم من ألف قيمة يقع داخل انحراف واحد وداخل انحرافين.
import numpy as np
rng = np.random.default_rng(7)
sample = rng.normal(loc=50.0, scale=10.0, size=1000)
print(f"mean={float(sample.mean()):.2f}")
print(f"std={float(sample.std(ddof=1)):.2f}")
within_one = float(((sample > 40) & (sample < 60)).mean())
within_two = float(((sample > 30) & (sample < 70)).mean())
print(f"within 1 sd: {within_one:.3f}")
print(f"within 2 sd: {within_two:.3f}")
ألف قيمة من توزيع طبيعي متوسطه 50 وانحرافه 10: المتوسط المحسوب 49.28 لا 50 بالضبط، وهذا هو خطأ العيّنة لا علّة في الكود. وقعت 0.708 من القيم داخل انحراف واحد و0.965 داخل انحرافين، وهي القاعدة التي ستستخدمها لتقدير ما إذا كانت قيمة غريبة فعلًا.
3الاحتمال الشرطي
الاحتمال الشرطي هو احتمال شيء بعد أن علمت شيئًا آخر. كل تصنيف هو احتمال من هذا النوع: ما احتمال الفئة بعد رؤية هذه السمات؟
انظر إلى الرسم: عشرة آلاف شخص يُقسَمون مرتين، مرة بالمرض ومرة بنتيجة الاختبار.
إن جاءتك نتيجة موجبة، فأنت في أحد الفرعين الموجبين: 99 مريضًا أو 495 سليمًا. والسؤال الآن: أي فرع أكبر؟
4القاعدة الأساس
شيوع الحالة قبل أي اختبار يحكم تفسير نتيجته. احسب الآن الفرعين الموجبين، ثم غيّر الشيوع وحده وراقب الجواب.
prevalence = 0.01
sensitivity = 0.99
specificity = 0.95
true_positive = prevalence * sensitivity
false_positive = (1 - prevalence) * (1 - specificity)
positive = true_positive + false_positive
print(f"true positives: {true_positive * 10000:.0f} per 10000")
print(f"false positives: {false_positive * 10000:.0f} per 10000")
print(f"P(sick | positive) = {true_positive / positive:.3f}")
for p in [0.001, 0.01, 0.1, 0.5]:
tp = p * sensitivity
fp = (1 - p) * (1 - specificity)
print(f"prevalence={p:<6} -> {tp / (tp + fp):.3f}")
اختبار حسّاسيته 99% ونوعيته 95% على مرض يصيب واحدًا من مئة: لكل عشرة آلاف شخص هناك 99 موجبًا صحيحًا و495 موجبًا كاذبًا، فاحتمال أن تكون مريضًا فعلًا بعد نتيجة موجبة هو 0.167 فقط. ولاحظ الجدول الأخير: نفس الاختبار بالضبط يعطي 0.952 لو كان المرض يصيب نصف الناس. الاختبار لم يتغيّر، تغيّر الشيوع.
كيف يعمل، خطوة بخطوة: كيف تحسب احتمال المرض بعد نتيجة موجبة
ابدأ بالقاعدة الأساس: نسبة المرضى قبل أي اختبار، وهي هنا 0.01.
اضربها في الحساسية لتحصل على الإيجابيات الصحيحة: 0.01 × 0.99، أي 99 لكل 10000.
اضرب نسبة الأصحّاء في نسبة خطأ الاختبار معهم: 0.99 × 0.05، أي 495 إنذارًا كاذبًا لكل 10000.
اقسم الإيجابيات الصحيحة على كل النتائج الموجبة: 99 من 594، أي 0.167.
مثال محلول
99% كإنجاز في مسألة فئتها النادرة تمثّل 1% من البيانات. نموذج يقول «سليم» دائمًا يحقّق 99% دقة وهو عديم النفع تمامًا. في البيانات غير المتوازنة انظر إلى الإحكام والاسترجاع، ومرحلة تعلّم الآلة الكلاسيكي ستبني على هذا بالتفصيل.
جرّب بلا كود
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| اختبار دقّته 99% يعني أن النتيجة الموجبة صحيحة بنسبة 99%. | ذلك يعتمد على شيوع الحالة. مع مرض يصيب واحدًا من مئة، تكون النتيجة الموجبة صحيحة بنسبة 0.167 فقط. |
| المتوسط وحده يصف البيانات. | المتوسط موقع والانحراف اتّساع. صف نصفه ممتاز ونصفه راسب قد يتساوى متوسطه مع صف كل طلابه متوسطو المستوى. |
| متوسط العيّنة يجب أن يساوي القيمة الحقيقية بالضبط. | ألف قيمة من توزيع متوسطه 50 أعطت 49.28. الفرق خطأ عيّنة طبيعي، لا خلل في الشيفرة. |
جرّب بنفسك
بنيت كاشف احتيال، وأبلغ عن 1000 معاملة كمشتبهة من مليون، وصحّ في 200 منها. نسبة الاحتيال الحقيقية 0.05%. ما الحكم الأدق؟
الاختيار العشوائي كان سيصيب في نحو 0.05% من التنبيهات، والنموذج أصاب في 20%، أي تحسّن بأربعمئة ضعف. أما كونه مفيدًا أم لا فيعتمد على تكلفة فحص 800 تنبيه كاذب مقابل قيمة إيقاف 200 احتيال حقيقي. الخيار الرابع ليس خطأً تامًّا، فالاستدعاء مهم، لكن السؤال كان عن تفسير الإحكام أمام القاعدة الأساس.
بطاقات مراجعة سريعة
99% على مرض يصيب واحدًا من مئة يعطي نتيجة موجبة صحيحة في سدس الحالات فقط.تحقق من فهمك
كيف ترفع احتمال صحة النتيجة الموجبة دون تحسين الاختبار نفسه؟
بتضييق من تختبره. إن اختبرت فقط من لديهم أعراض أو عامل خطر، فقد رفعت القاعدة الأساس في المجموعة المختبَرة من واحد بالمئة إلى عشرة أو أكثر، فيرتفع احتمال الصحة من 0.167 إلى 0.687 كما في الجدول. نفس الاختبار، مجموعة مختلفة، نتيجة مختلفة جذريًا. وهذا بالضبط ما تفعله مرحلة الاسترجاع قبل سؤال النموذج.
في عيّنة طبيعية متوسطها 50 وانحرافها 10، هل القيمة 85 غريبة؟
نعم، فهي أبعد من ثلاثة انحرافات عن المتوسط، بينما وقع 0.965 من القيم في الدرس ضمن انحرافين فقط.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.