Enfoque guía: Aplicaciones con base estadística
Semáforo de estabilidad + alerta bayesiana + clasificador — el panel operativo del demo
Ver concepto general MathPlay · Ruta IA matemática (MathPlay) →Aplicaciones con base estadística
De métricas sueltas a un panel de alerta temprana antes de perder recuperación
Idea central
Las unidades 1–4 no eran ejercicios aislados: son capas de un mismo monitor. Esta unidad las integra en reglas y un clasificador simple sobre datos_flotacion_demo.csv.
Problema: sobre-espumación en flotación de cobre. Objetivo aplicado: avisar al turno cuando la planta ya está inestable o el riesgo de evento es alto.
1. Pipeline estadístico integrado
| Señal | Demo | Acción sugerida |
|---|---|---|
| σ rec. global | 3,41 % | Rojo: operación nerviosa |
| r espumante–evento | +0,87 | Priorizar dosificación |
| Rec. sin evento | ~86,4 % | Referencia estable |
| Rec. con evento | ~76,5 % | Impacto KPI |
| P(evento | esp. alto) | ~93 % | Alerta fuerte |
2. Reglas + clasificador (aplicación)
Semáforo compuesto (ejemplo educativo)
- Verde: σ ≤ 2 y espumante ≤ 34.
- Amarillo: σ 2–3 o espumante 34–36.
- Rojo: σ > 3 o espumante > 36 o P(evento|evidencia) > 80 %.
En ML, la capa 5 reemplaza reglas fijas con LogisticRegression entrenada en el histórico (mismas variables que unidad 8, salida binaria).
3. Excel — panel mínimo
CSV demo · local: datos_flotacion_demo.csv
=' σ móvil 6 h (fila t):
=DESVEST(OFFSET(G2; MAX(0; FILA()-2); 0; 6; 1))
=' Bayes (espumante > 36):
= (CONTAR.SI.CONJUNTO(S:S;1;N:N;">36")/CONTAR.SI(N:N;">36"))
=' Alerta compuesta:
=SI(Y(D2>3; N2>36); "ROJO"; SI(N2>36; "AMARILLO"; "VERDE"))
4. Python — monitor estadístico
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import classification_report
df = pd.read_csv("datos_flotacion_demo.csv")
features = ["ph","p80_um","flujo_aire","dosif_espumante_ml_min",
"nivel_celda_pct","ley_cabeza_cu_pct"]
X, y = df[features], df["sobre_espumacion"]
clf = Pipeline([
("scale", StandardScaler()),
("model", LogisticRegression(max_iter=500, class_weight="balanced"))
])
clf.fit(X, y)
print(classification_report(y, clf.predict(X)))
# Capa rolling std (6 h)
df["sigma_rec_6h"] = df["recuperacion_cu_pct"].rolling(6).std()
ultima = df.iloc[-1]
print("P(evento):", round(clf.predict_proba(X.iloc[[-1]])[0,1], 2))
print("sigma 6h:", round(ultima["sigma_rec_6h"], 2))
5. Salida operativa
6. Investigación sugerida
Implementa el semáforo compuesto en Excel para 1 turno completo. ¿Cuántas horas rojas coinciden con sobre_espumacion=1 en las 2 h siguientes?
Regístrate al boletín MathPlay
Datos, simulación, visualización, IA y tecnología aplicada a problemas reales de industria y minería.
Sin calendario fijo. Sin spam.
Listo. Te escribo cuando haya algo nuevo.
