Menu
CoddyTech
flag Ar iconالعربيةdown icon

تأخيرات القطارات

جزء من قسم الإحصاء لتعلّم الآلة في رحلة Machine Learning على Coddy. الدرس 61 من 64.

يشترك خطّا ركاب، Maple وBirch، في محطة. وعلى مدى 24 يومًا، سُجّل مقدار تأخّر قطار ساعة الذروة لكل خط، في trains.csv:

مخططان صندوقيان لتأخيرات الخطين: يقع صندوق Maple حول 15 دقيقة مع نقطة عند 91 مُشار إليها بعطل في الإشارة ونقطة منخفضة عند 4، أما صندوق Birch فيقع أسفل ذلك حول 11 دقيقة مع نقطتين عند 63 و74 مُشار إليهما بعطلي إشارة

تسببت ثلاثة أعطال في الإشارات في تأخير القطارات ساعة أو أكثر: وهذا أمر حقيقي، لكنه كبير بما يكفي للتأثير بشدة في أي متوسط.

يسأل المدير: هل يأتي Maple فعلًا في وقت لاحق، أم قد يكون الفارق محض صدفة؟ قلّل من تأثير القيم المتطرفة، ثم دع الخلط يحسم الأمر.

challenge icon

التحدي

صعب

يقرأ البرنامج عامل الحدود k؛ ويمثل 1.5 قاعدة مخطط الصندوق.

  1. ضع حدودًا لكل حالات التأخير عند Q1 - k * IQR وQ3 + k * IQR، واحسب القيم الشاذة، ثم حدّ كل حالات التأخير باستخدام np.clip.
  2. اطبع متوسط التأخير المحدود لكل خط والفرق بينهما، متوسط Maple ناقص متوسط Birch.
  3. أجرِ الخلط 2000 مرة: اجمع حالات التأخير المحدودة لخط Maple ثم Birch، واستخدم rng.permutation مرة واحدة في كل جولة، واجعل أول 24 قيمة تمثل Maple افتراضيًا.
  4. اطبع قيمة p، مع تجاهل الإشارة، والاستنتاج: unlikely to be chance إذا كانت أقل من 0.05، وإلا could be chance.

قرّب إلى منزلتين عشريتين، وقيمة p إلى 3 منازل. عندما تكون k = 2:

Fences: 0.25 to 26.5 (3 outliers)
Maple mean: 15.27
Birch mean: 12.21
Difference: 3.06
p-value: 0.03
Verdict: unlikely to be chance

هل يظل الاستنتاج صحيحًا عند استخدام قيمة k أكثر تشددًا أو أكثر تساهلًا؟

جرّب بنفسك

import numpy as np
import pandas as pd

k = float(input())
df = pd.read_csv("trains.csv")
delays = df["delay_min"]

# لا تغيّر السطر أدناه
rng = np.random.default_rng(5)

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الإحصاء لتعلّم الآلة

تدرّب بنفسك: مترجم Python عبر الإنترنت