01 · Punto de partida
Basura adentro, basura afuera
El mejor modelo con malos datos decide mal: parámetros calibrados con una semana atípica, validación contra mediciones sesgadas, picos que nadie registró. Recolectar es diseñar qué medir, cómo y cuánto antes de necesitarlo.
- ¿Qué dato alimenta cada parámetro y cada validación?
- ¿La muestra cubre picos, valles y rarezas?
- ¿Qué falta, qué sobra y qué miente?
- ¿Cómo se registra la limpieza aplicada?
02 · Fuentes
Dónde conseguir números
Medición
Sensores y conteos propios: caros pero a medida y auditables.
Registros
Logs y planillas existentes: baratos pero con huecos y formatos ajenos.
Sintéticos
Generados para probar: útiles para depurar, inválidos para validar.
| Fuente | Cuesta | Riesgo |
|---|---|---|
| Conteo manual | Tiempo de personas | Muestra corta, horarios cómodos |
| Logs del sistema | Limpieza | Huecos, cambios de formato |
| Encuestas | Diseño y sesgo | Responden lo que creen que querés |
| Sintéticos | Nada | Validar contra inventos |
03 · Calidad
Cuatro controles antes de usar
- 1Completitud.
¿Faltan horas, días, casos? Lo faltante se marca, nunca se esconde.
- 2Atípicos.
¿120 donde todo da 10? Sensor roto o pico real: hay que decidirlo.
- 3Representatividad.
¿La muestra incluye picos y valles, o solo días tranquilos?
- 4Oportunidad.
¿Los datos son del régimen vigente o de otro mundo?
Dato bueno
Cubre y avisa
Incluye rarezas, marca faltantes y documenta su limpieza.
Dato malo
Esconde y sesga
Semana tranquila como «típica», huecos rellenados en silencio.
- Faltante
- Hueco marcado como tal, con regla de relleno declarada.
- Atípico
- Valor extremo: error o evento real, se investiga.
- Sesgo
- Desvío sistemático de la muestra respecto a la realidad.
- Limpieza
- Transformaciones aplicadas, registradas y reversibles.
04 · Plan de medición
Medir a propósito
La frecuencia la manda el fenómeno (Tema 19): para picos horarios no sirve el total diario. Y el período debe cubrir rarezas, no solo rutina.
05 · En Python
Limpiar dejando huellas
Python en tu navegador. Cada valor limpio trae su marca: lo tocado se nota.
crudos = [5, 8, None, 9, 120, 15, 14, 11]
def limpiar(xs, tope=50):
# None -> anterior; atípico -> tope. Todo marcado.
limpios, marcas = [], []
ultimo = xs[0]
for x in xs:
if x is None:
x, marca = ultimo, "relleno"
elif x > tope:
x, marca = tope, "recorte"
else:
marca = "ok"
limpios.append(x)
marcas.append(marca)
ultimo = x
return limpios, marcas
print(limpiar(crudos))
Resumir y sospechar
def resumen(xs):
return {"n": len(xs), "media": round(sum(xs) / len(xs), 2),
"min": min(xs), "max": max(xs)}
print(resumen([5, 8, 8, 9, 50, 15, 14, 11]))
06 · Exploración
Laboratorio: la media que miente
Agregá faltantes y atípicos a la serie base. La media cruda se dispara; la limpia resiste. ¿Cuánto contamina cada defecto?
Basura adentro…
base [5, 8, 6, 9, 12, 15, 14, 11]
Un atípico de 120 más que duplica la media: la limpieza la devuelve a 15.
Barras grises: crudos con defectos. Lima: serie limpia. La línea marca la media verdadera (10).
Preguntas para explorar
- Con 0 atípicos y 4 faltantes, ¿la media limpia se mantiene? ¿Por qué el relleno no la mueve mucho?
- Subí la magnitud a 200. ¿La media cruda todavía describe algo?
- ¿Qué defecto es peor para decidir: faltantes o atípicos?
Ver respuestas sugeridas
- Sí: rellenar con el anterior conserva el nivel local. El faltante avisa; el atípico miente.
- No: un solo valor domina el promedio. Las medias sin limpieza son rehenes del peor dato.
- El atípico silencioso: el faltante se ve, el atípico se promedia disimulado.
07 · Comprensión
Confusiones frecuentes
«Hay datos, entonces hay muestra»
Hay registros; muestra es otra cosa: cobertura de picos, valles y rarezas del régimen vigente.
«El atípico siempre se borra»
A veces es el evento más importante (el pico que dimensiona). Se investiga, no se borra por reflejo.
«Sintéticos sirven para validar»
Sirven para depurar el código, nunca para validar contra la realidad. Validar con inventos es teatro.
«Limpiar es opcional si el modelo es bueno»
Al revés: cuanto mejor el modelo, más lo daña el dato malo. La limpieza es parte del modelo.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: limpiar con marcas
Limpiá [5, 8, None, 9, 120, 15, 14, 11] y mostrá qué se tocó.
def limpiar(xs, tope=50):
limpios, marcas = [], []
ultimo = xs[0]
for x in xs:
if x is None:
x, marca = ultimo, "relleno"
elif x > tope:
x, marca = tope, "recorte"
else:
marca = "ok"
limpios.append(x)
marcas.append(marca)
ultimo = x
return limpios, marcas
print(limpiar([5, 8, None, 9, 120, 15, 14, 11]))
Ver solución razonada
Da ([5, 8, 8, 9, 50, 15, 14, 11], ['ok', 'ok', 'relleno', 'ok', 'recorte', 'ok', 'ok', 'ok']): dos toques, ambos marcados.
Ejercicio 2: el recorte distorsiona
Compará la media limpia contra la media de los datos sanos originales [5, 8, 6, 9, 12, 15, 14, 11].
sanos = [5, 8, 6, 9, 12, 15, 14, 11]
limpios = [5, 8, 8, 9, 50, 15, 14, 11]
print(sum(sanos) / len(sanos), sum(limpios) / len(limpios))
Ver solución
Dan 10.0 y 15.0: hasta la limpieza honesta deja huella. Por eso se registra.
Ejercicio 3: plan de medición
Escribí el plan mínimo para medir llegadas de una fila durante una semana.
Ver una posible respuesta
plan = {
"que": "llegadas por hora",
"cuando": "toda la semana, picos incluidos",
"frecuencia": "cada hora",
"responsable": "caja 1",
}
print(plan)
Qué, cuándo, cada cuánto y quién: sin esas cuatro, la medición no ocurre.
09 · Síntesis
Ideas para recordar
- Los datos alimentan parámetros, inicios y validación.
- Completitud, atípicos, representatividad y oportunidad antes de usar.
- El atípico se investiga; el faltante se marca; todo se registra.
- Sintéticos para depurar, jamás para validar.
- En Python: crudos + código de limpieza + limpios, siempre.
En el próximo tema construiremos con esos datos: la construcción del modelo.