القيم الاحتمالية (P-Values)
جزء من قسم الإحصاء لتعلّم الآلة في رحلة Machine Learning على Coddy. الدرس 44 من 64.
تحوّل قيمة p عمليات الخلط إلى رقم واحد: نسبة الفروق الوهمية التي تساوي الفرق الحقيقي أو تتجاوزه، في أيٍّ من الاتجاهين.
في الكود، لدراسة الخطوط:
real = sans.mean() - serif.mean()
rng = np.random.default_rng(4)
diffs = shuffled_diffs(serif, sans, 1000, rng) # الحلقة التكرارية من الدرس السابق
p_value = (np.abs(diffs) >= np.abs(real)).mean()
print(p_value)يطبع هذا 0.039. تحسب np.abs الفجوة -7 على أنها تساوي 7: والسؤال هو ما إذا كانت الخطوط تختلف أصلًا.
عند مستوى الدلالة الإحصائية، وغالبًا ما يكون 0.05، لا يُعدّ الصدفة تفسيرًا مقنعًا لتحسّن خط أو نموذج. هذا ليس دليلًا قاطعًا: فقد حدث ذلك أيضًا في 4 من أصل 100 عملية خلط.
التحدي
متوسطتسقي مزرعة الفراولة صباحًا أو مساءً. يقسم البرنامج التمهيدي strawberries.csv إلى morning وevening، ويسرد columns، ويقرأ level، ويعرّف shuffled_diffs.
- لكل عمود، احسب الفارق الحقيقي (متوسط المساء ناقص متوسط الصباح)، والفوارق بعد الخلط (الصباح أولًا)، وقيمة p.
- اطبع سطرًا لكل عمود كما هو موضح أدناه (الفارق بمنزلتين عشريتين، وp بثلاث منازل): اطبع
differsعندما تكون p أقل منlevel. - أحصِ الأعمدة التي يختلف فيها القياس.
مزرعة أخرى، المستوى 0.05:
berries: difference -5.4, p = 0.009, differs
weight_g: difference 0.2, p = 1.0, could be chance
sweetness_brix: difference 0.46, p = 0.022, differs
leaf_spots: difference 0.6, p = 0.397, could be chance
Columns that differ: 2 of 4جرّب بنفسك
import numpy as np
import pandas as pd
# تعيد الفروق الناتجة عن الخلط في اختبار التبديل (حلقة الدرس 43): متوسط b الافتراضي ناقص متوسط a الافتراضي
def shuffled_diffs(a, b, shuffles, rng):
pooled = np.concatenate([a, b])
diffs = []
for i in range(shuffles):
shuffled = rng.permutation(pooled)
diffs.append(shuffled[len(a):].mean() - shuffled[:len(a)].mean())
return np.array(diffs)
beds = pd.read_csv("strawberries.csv")
morning = beds[beds["watering"] == "morning"]
evening = beds[beds["watering"] == "evening"]
columns = ["berries", "weight_g", "sweetness_brix", "leaf_spots"]
level = float(input())
# لا تغيّر الأسطر أدناه
rng = np.random.default_rng(21)
shuffles = 1000
# اكتب شيفرتك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإحصاء لتعلّم الآلة
1المركز والتشتت
المتوسط والوسيطالمئينات والربيعاتالتباين والانحراف المعياريعينة أم مجتمع؟القيمة الأكثر شيوعًامراجعة: أوقات التسليم4العينات والمجتمعات الإحصائية
المجتمع والعينةتختلف متوسطات العيناتتوزيع المعاينةعينات أكبر، ضوضاء أقلمراجعة: استطلاع آراء بلدة2التوزيعات
مدرجات التكرار للكثافةأشكال البياناتالمنحنى الطبيعيقاعدة 68-95-99.7الدرجات المعيارية Zمراجعة: عمر البطارية5القيم المتطرفة
المخططات الصندوقيةقاعدة المدى الربيعي (IQR)قاعدة الدرجة المعيارية (Z-Score)التعامل مع القيم المتطرفةمراجعة: أعطال المستشعرات8مقارنة المجموعات
مخططات الصندوق حسب المجموعةالفرق بين المتوسطاتهل يمكن أن يكون ذلك محض صدفة؟القيم الاحتمالية (P-Values)اختبار tمراجعة: اختبار A/B11استكشاف مجموعة بيانات
نظرة أولىجميع السمات دفعة واحدةالسمات مقابل الوسمأفضل سمتينمراجعة: بيانات السكري3الاحتمالات بالمحاكاة
الاحتمال بوصفه تكرارًاقانون الأعداد الكبيرةمجاميع رميات النردالقيمة المتوقعةالاحتمال الشرطيمراجعة: احتمالات كشك النرد6العلاقات
قراءة المخططات المبعثرةالارتباطمصفوفة الارتباطخرائط الارتباط الحراريةالارتباط لا يعني السببيةمراجعة: الآيس كريم والشمستدرّب بنفسك: مترجم Python عبر الإنترنت