Menu
CoddyTech

Tàu trễ giờ

Thuộc phần Thống kê cho machine learning trong hành trình Machine Learning của Coddy. Bài học 61 trên 64.

Hai tuyến tàu đi làm, Maple và Birch, dùng chung một nhà ga. Trong 24 ngày, nhà ga ghi lại độ trễ của các chuyến tàu giờ cao điểm trên mỗi tuyến, trong tệp trains.csv:

Biểu đồ hộp về độ trễ của hai tuyến: hộp của Maple nằm quanh mức 15 phút, có một chấm ở mức 91 được đánh dấu là sự cố tín hiệu và một chấm thấp ở mức 4; hộp của Birch thấp hơn, quanh mức 11, có các chấm ở mức 63 và 74 được đánh dấu là sự cố tín hiệu

Ba sự cố tín hiệu khiến các chuyến tàu chậm từ một giờ trở lên: có thật, nhưng đủ lớn để làm lệch mọi giá trị trung bình.

Người quản lý hỏi: Maple có thật sự đến muộn hơn không, hay khoảng cách đó chỉ là ngẫu nhiên? Hãy giảm ảnh hưởng của các giá trị cực đoan, rồi để việc xáo trộn quyết định.

challenge icon

Thử thách

Khó

Chương trình đọc hệ số hàng rào k; 1.5 là quy tắc của biểu đồ hộp.

  1. Đặt hàng rào cho mọi độ trễ tại Q1 - k * IQR và Q3 + k * IQR, đếm các giá trị ngoại lệ, rồi giới hạn mọi độ trễ bằng np.clip.
  2. In độ trễ trung bình sau khi giới hạn của từng tuyến và hiệu số, Maple trừ Birch.
  3. Trộn 2000 lần: gộp các độ trễ đã giới hạn của Maple rồi đến Birch, dùng một rng.permutation mỗi lượt, lấy 24 phần tử đầu làm Maple giả lập.
  4. In giá trị p, bỏ qua dấu, và kết luận: unlikely to be chance nếu nhỏ hơn 0.05, nếu không thì could be chance.

Làm tròn đến 2 chữ số thập phân, p đến 3 chữ số. Với 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ết luận có còn đúng với k nghiêm ngặt hơn hay dễ dãi hơn không?

Tự làm thử

import numpy as np
import pandas as pd

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

# Đừng thay đổi dòng bên dưới
rng = np.random.default_rng(5)

# Viết code bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Thống kê cho machine learning

Tự luyện tập: Trình biên dịch Python online