Menu
CoddyTech

Retards des trains

Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 61 sur 64.

Deux lignes de train de banlieue, Maple et Birch, partagent une station. Pendant 24 jours, on a relevé le retard du train de l’heure de pointe de chaque ligne, dans trains.csv :

Diagrammes en boîte des retards des deux lignes : la boîte de Maple se situe autour de 15 minutes, avec un point à 91 indiqué comme une défaillance du signal et un point bas à 4 ; celle de Birch est plus basse, autour de 11, avec des points à 63 et 74 indiqués comme des défaillances du signal

Trois défaillances de signalisation ont retardé des trains d’une heure ou plus : c’est réel, mais suffisamment important pour fausser toute moyenne.

Le responsable demande : Maple est-il vraiment plus tardif, ou l’écart pourrait-il être dû au hasard ? Domptez les valeurs extrêmes, puis laissez le mélange décider.

challenge icon

Défi

Difficile

Le programme lit le facteur de clôture k ; 1.5 est la règle de la boîte à moustaches.

  1. Borne tous les retards à Q1 - k * IQR et Q3 + k * IQR, compte les valeurs aberrantes, puis plafonne chaque retard avec np.clip.
  2. Affiche la moyenne des retards plafonnés de chaque ligne et la différence, Maple moins Birch.
  3. Mélange 2000 fois : rassemble les retards plafonnés de Maple puis ceux de Birch, une permutation rng.permutation par tour, les 24 premiers servant de faux Maple.
  4. Affiche la valeur p, sans tenir compte du signe, et la conclusion : unlikely to be chance en dessous de 0.05, sinon could be chance.

Arrondis à 2 décimales, la valeur p à 3. Pour 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

La conclusion reste-t-elle valable pour un k plus strict ou plus souple ?

Essayez vous-même

import numpy as np
import pandas as pd

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

# Ne modifiez pas la ligne ci-dessous
rng = np.random.default_rng(5)

# Écrivez votre code ci-dessous
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Statistiques pour le ML

Entraînez-vous par vous-même : Compilateur Python en ligne