Menu
CoddyTech

Opóźnienia pociągów

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 61 z 64.

Dwie podmiejskie linie, Maple i Birch, dzielą stację. Przez 24 dni rejestrowano, ile minut opóźnienia miały pociągi każdej linii w godzinach szczytu, w pliku trains.csv:

Wykresy pudełkowe opóźnień obu linii: pudełko Maple's znajduje się w okolicy 15 minut, z kropką przy 91 oznaczoną jako awaria sygnalizacji i niską kropką przy 4; pudełko Birch's znajduje się niżej, w okolicy 11 minut, z kropkami przy 63 i 74 oznaczonymi jako awarie sygnalizacji

Trzy awarie sygnalizacji opóźniły pociągi o godzinę lub więcej: to prawda, ale wystarczyły, by zniekształcić każdą średnią.

Kierownik pyta: czy Maple naprawdę jest później, czy ta różnica może być dziełem przypadku? Ogranicz skrajne wartości, a potem pozwól, by o wyniku zdecydowało tasowanie.

challenge icon

Wyzwanie

Trudny

Program odczytuje współczynnik granic k; 1.5 to reguła wykresu pudełkowego.

  1. Ogranicz wszystkie opóźnienia do granic Q1 - k * IQR i Q3 + k * IQR, policz wartości odstające, a następnie ogranicz każde opóźnienie za pomocą np.clip.
  2. Wyświetl średnie ograniczone opóźnienie dla każdej linii oraz różnicę: Maple minus Birch.
  3. Wykonaj 2000 losowań: połącz ograniczone opóźnienia Maple, a następnie Birch; w każdej rundzie użyj jednego rng.permutation, a pierwsze 24 wartości potraktuj jako fikcyjne opóźnienia Maple.
  4. Wyświetl wartość p, ignorując znak, oraz werdykt: unlikely to be chance dla wartości poniżej 0.05, w przeciwnym razie could be chance.

Zaokrąglij do 2 miejsc po przecinku, a p do 3. Dla 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

Czy werdykt pozostaje taki sam dla bardziej rygorystycznego lub łagodniejszego k?

Spróbuj swoich sił

import numpy as np
import pandas as pd

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

# Nie zmieniaj poniższej linii
rng = np.random.default_rng(5)

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online