13. Aplicaciones con bases estadísticas
¿Cómo convierto estadística básica en alertas de planta?
Aplicaciones con bases estadísticas
Integramos media, desviación, percentiles, correlación y probabilidad para construir un primer tablero de estabilidad en flotación.
1. Pregunta de planta
En esta unidad dejamos de ver la estadística como fórmulas separadas y la usamos como un sistema de monitoreo operativo.
Idea central: con media, desviación estándar, percentiles, correlación y probabilidad podemos construir un primer tablero de estabilidad antes de entrenar modelos complejos.
2. Aplicación estadística al caso
| Base estadística | Pregunta operativa | Uso en flotación |
|---|---|---|
| Media y desviación estándar | ¿La recuperación está estable? | Límites normales de operación. |
| Percentiles | ¿Estoy en una zona extrema? | Nivel alto, espumante alto, riesgo alto. |
| Correlación | ¿Qué variables se mueven juntas? | Priorizar aire, nivel, pH o espumante. |
| Probabilidad condicional | ¿Cuánto sube el riesgo bajo cierta condición? | Reglas simples de alerta. |
3. Excel: tablero estadístico mínimo
La idea es que un alumno pueda armar una primera lectura sin programar.
Recuperación promedio y dispersión
Media: =PROMEDIO(F:F)
Desviación: =DESVEST.M(F:F)
Límite bajo: =media - 2*desviación
Bandera de recuperación baja
=SI(F2<limite_bajo,"Revisar","Normal")
Probabilidad de evento cuando espumante está alto
=CONTAR.SI.CONJUNTO(L:L,">"&PERCENTIL.INC(L:L,0.75),N:N,1) / CONTAR.SI(L:L,">"&PERCENTIL.INC(L:L,0.75))
Esta aplicación convierte estadística básica en una herramienta de supervisión de turno.
4. Python: resumen estadístico aplicado
import pandas as pd
archivo = "flotacion_cobre.xlsx"
df = pd.read_excel(archivo)
kpis = [
"recuperacion_cu", "flujo_aire", "nivel_celda", "ph",
"dosificacion_espumante", "score_riesgo"
]
resumen = df[kpis].agg(["mean", "std", "min", "median", "max"]).T
resumen["limite_bajo_2sigma"] = resumen["mean"] - 2*resumen["std"]
resumen["limite_alto_2sigma"] = resumen["mean"] + 2*resumen["std"]
resumen
Reglas estadísticas de alerta
p75_esp = df["dosificacion_espumante"].quantile(0.75)
p90_nivel = df["nivel_celda"].quantile(0.90)
prob_evento_esp_alto = df.loc[
df["dosificacion_espumante"] > p75_esp,
"evento_sobre_espumacion"
].mean()
prob_evento_nivel_alto = df.loc[
df["nivel_celda"] > p90_nivel,
"evento_sobre_espumacion"
].mean()
prob_evento_esp_alto, prob_evento_nivel_alto
5. Puente hacia Machine Learning
Las reglas estadísticas pueden transformarse en variables para un clasificador.
df["espumante_alto"] = (df["dosificacion_espumante"] > p75_esp).astype(int)
df["nivel_muy_alto"] = (df["nivel_celda"] > p90_nivel).astype(int)
df["rec_baja"] = (df["recuperacion_cu"] < df["recuperacion_cu"].mean() - 2*df["recuperacion_cu"].std()).astype(int)
features = [
"flujo_aire", "nivel_celda", "ph", "dosificacion_espumante",
"espumante_alto", "nivel_muy_alto", "rec_baja"
]
X = df[features]
y = df["evento_sobre_espumacion"]
Mensaje final: la estadística aplicada no es el final del camino; es la base para crear buenas variables, buenas alertas y mejores preguntas para el modelo.
