Menu
CoddyTech

Retrasos de trenes

Parte de la sección Estadística para ML del Journey de Machine Learning de Coddy. Lección 61 de 64.

Dos líneas de cercanías, Maple y Birch, comparten una estación. Durante 24 días, se registró cuánto se retrasó el tren de hora punta de cada línea, en trains.csv:

Diagramas de caja de los retrasos de las dos líneas: la caja de Maple se sitúa alrededor de los 15 minutos, con un punto en 91 marcado como fallo de señalización y un punto bajo en 4; la de Birch, más abajo, alrededor de 11, con puntos en 63 y 74 marcados como fallos de señalización

Tres fallos de señalización retrasaron los trenes una hora o más: es real, pero suficiente para distorsionar cualquier promedio.

El gerente pregunta: ¿Maple realmente llega más tarde o la diferencia podría deberse al azar? Modera los valores extremos y después deja que el barajado decida.

challenge icon

Desafío

Difícil

El programa lee el factor de límite k; 1.5 es la regla del diagrama de caja.

  1. Establece límites para todos los retrasos en Q1 - k * IQR y Q3 + k * IQR, cuenta los valores atípicos y después limita cada retraso con np.clip.
  2. Muestra la media de los retrasos limitados de cada línea y la diferencia, Maple menos Birch.
  3. Mezcla los datos 2000 veces: primero agrupa los retrasos limitados de Maple y después los de Birch, usa un rng.permutation por ronda y toma los primeros 24 como Maple ficticio.
  4. Muestra el valor p, ignorando el signo, y el veredicto: unlikely to be chance si es menor que 0.05; de lo contrario, could be chance.

Redondea a 2 decimales y p a 3. Para 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

¿Se mantiene el veredicto con un valor de k más estricto o más flexible?

Pruébalo tú mismo

import numpy as np
import pandas as pd

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

# No cambies la línea de abajo
rng = np.random.default_rng(5)

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Estadística para ML

Practica por tu cuenta: Compilador de Python online