اختبار t
جزء من قسم الإحصاء لتعلّم الآلة في رحلة Machine Learning على Coddy. الدرس 45 من 64.
قبل ظهور الحواسيب، كان لدى الإحصاء اختصار: اختبار t. تحوّل صيغةٌ المتوسطات والتشتتات وأحجام المجموعات إلى قيمة p دفعةً واحدة:
from scipy import stats
result = stats.ttest_ind(sans, serif)
print(np.round(result.pvalue, 3))
print(np.round(result.statistic, 2))لدراسة الخطوط، يطبع هذا 0.031 و-2.61. أعطت عمليات الخلط البالغ عددها 1000 القيمة 0.039: وهي قريبة، كما هو معتاد.
قيمة t هي الفجوة بوحدات الأخطاء المعيارية؛ ولا تشير إشارتها إلا إلى المجموعة التي جاءت أولًا. تفترض الصيغة أن البيانات تتبع شكلًا جرسيًا، لذا عند التعامل مع مجموعات صغيرة ذات توزيع منحرف، ثق بعمليات الخلط العشوائي.
كما يتحقق مما إذا كان أحد النموذجين يتفوق فعلًا على الآخر.
التحدي
متوسطقاس صانع دهانات زمن جفاف ثلاثة أنواع من الطلاء. يضع القالب الأولي دقائق جفاف كل نوع في times، ويسرد ثلاثة أزواج في pairs، ويعرّف permutation_p(a, b)، ويقرأ level.
- اطبع قيمة p لاختبار t للمقارنة بين matte وsatin بجانب قيمة المحاكاة بالتبديل.
- اختبر كل زوج، مع وضع النوع الأول أولًا، واطبع الزوج ذي أصغر قيمة p.
- احسب عدد الأزواج التي تقل قيمة p فيها عن
level.
قرّب قيم p إلى 3 منازل عشرية. صانع آخر، المستوى 0.05:
matte vs satin: t-test 0.012, simulation 0.023
Clearest difference: satin vs gloss (p = 0.0)
Pairs that differ: 3 of 3جرّب بنفسك
import numpy as np
import pandas as pd
from scipy import stats
# اختبار التبديل من الدرسين السابقين: يعيد قيمة p الخاصة به عند مقارنة a بـ b
def permutation_p(a, b, shuffles=1000, seed=0):
rng = np.random.default_rng(seed)
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())
real = b.mean() - a.mean()
return (np.abs(np.array(diffs)) >= np.abs(real)).mean()
paint = pd.read_csv("paint.csv")
times = {
"matte": paint[paint["finish"] == "matte"]["minutes"],
"satin": paint[paint["finish"] == "satin"]["minutes"],
"gloss": paint[paint["finish"] == "gloss"]["minutes"],
}
pairs = [("matte", "satin"), ("matte", "gloss"), ("satin", "gloss")]
level = float(input())
# اكتب شيفرتك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإحصاء لتعلّم الآلة
1المركز والتشتت
المتوسط والوسيطالمئينات والربيعاتالتباين والانحراف المعياريعينة أم مجتمع؟القيمة الأكثر شيوعًامراجعة: أوقات التسليم4العينات والمجتمعات الإحصائية
المجتمع والعينةتختلف متوسطات العيناتتوزيع المعاينةعينات أكبر، ضوضاء أقلمراجعة: استطلاع آراء بلدة2التوزيعات
مدرجات التكرار للكثافةأشكال البياناتالمنحنى الطبيعيقاعدة 68-95-99.7الدرجات المعيارية Zمراجعة: عمر البطارية5القيم المتطرفة
المخططات الصندوقيةقاعدة المدى الربيعي (IQR)قاعدة الدرجة المعيارية (Z-Score)التعامل مع القيم المتطرفةمراجعة: أعطال المستشعرات8مقارنة المجموعات
مخططات الصندوق حسب المجموعةالفرق بين المتوسطاتهل يمكن أن يكون ذلك محض صدفة؟القيم الاحتمالية (P-Values)اختبار tمراجعة: اختبار A/B11استكشاف مجموعة بيانات
نظرة أولىجميع السمات دفعة واحدةالسمات مقابل الوسمأفضل سمتينمراجعة: بيانات السكري3الاحتمالات بالمحاكاة
الاحتمال بوصفه تكرارًاقانون الأعداد الكبيرةمجاميع رميات النردالقيمة المتوقعةالاحتمال الشرطيمراجعة: احتمالات كشك النرد6العلاقات
قراءة المخططات المبعثرةالارتباطمصفوفة الارتباطخرائط الارتباط الحراريةالارتباط لا يعني السببيةمراجعة: الآيس كريم والشمستدرّب بنفسك: مترجم Python عبر الإنترنت