Menu
CoddyTech

열차 지연

Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 61번째.

통근 노선 두 곳인 Maple과 Birch는 하나의 역을 함께 사용합니다. 24일 동안 trains.csv에 각 노선의 출퇴근 시간대 열차가 얼마나 늦었는지 기록했습니다:

두 노선의 지연 시간 상자 그림: Maple's 상자는 약 15분 지점에 있고 91분 지점에 신호 장애로 표시된 점과 4분 지점에 낮은 점이 있으며, Birch's 상자는 약 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값과 판정을 출력합니다. 0.05 미만이면 unlikely to be chance, 그렇지 않으면 could be chance입니다.

일반 값은 소수점 이하 2자리, 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 컴파일러