Enfoque clase: Varianza y desviacion estandar
¿La planta esta estable antes de perder recuperacion?
Ver concepto general MathPlay →Varianza y desviación estándar en flotación de cobre
Cómo medir si una planta empieza a perder estabilidad antes de perder recuperación.
Idea Central
No empezaremos preguntando cómo entrenar un modelo predictivo sofisticado. Empezaremos con una pregunta de planta:
La varianza y la desviación estándar sirven para medir qué tanto se dispersan los indicadores alrededor de su valor normal. En flotación, muchas veces la recuperación no cae de golpe: primero aparecen señales de inestabilidad.
1. Matemática Simple
¿Dónde está normalmente mi indicador?
El promedio ubica el centro, pero no dice si el proceso está tranquilo o saltando.
¿Qué tanto se mueve mi indicador?
Una desviación baja indica que los datos están cerca del promedio. Una desviación alta indica inestabilidad.
Dos plantas con el mismo promedio
Caso A: estable
Caso B: inestable
2. Aplicación Al Caso De Sobre-Espumación
Problema: en una planta concentradora de cobre ocurre sobre-espumación en celdas de flotación. Esto desestabiliza nivel de pulpa, espuma, arrastre, ley de concentrado y recuperación.
Pregunta operativa: ¿podemos detectar condiciones que anticipan la sobre-espumación y estimar su impacto sobre la recuperación?
3. Indicadores Donde Podemos Aplicarlo
| Indicador | Qué mide | Alta desviación estándar significa... | Lectura operativa |
|---|---|---|---|
| Recuperación de cobre | Eficiencia de captura metalúrgica | La planta recupera de forma irregular | Puede haber inestabilidad operativa, mineralógica o de control |
| Ley de concentrado Cu | Calidad del producto | La calidad comercial fluctúa | Puede haber arrastre, mala selectividad o control inestable |
| Ley de relave Cu | Cobre que se pierde | La pérdida metalúrgica es irregular | Señal fuerte de pérdida de control del proceso |
| Densidad de pulpa | Carga y transporte de pulpa | La alimentación al circuito no es estable | Puede afectar cinética, suspensión y aireación |
| P80 | Tamaño y liberación del mineral | La molienda entrega material inconsistente | Puede afectar recuperación y arrastre |
| Flujo de aire | Aire inyectado a celdas | Aireación variable | Puede generar espuma inestable o baja recuperación |
| Nivel de celda | Control de pulpa y espuma | Nivel inestable | Señal directa de posible sobre-espumación |
| Dosificación de espumante | Reactivo que estabiliza espuma | Dosificación irregular | Puede anticipar sobre-espumación |
4. Ejercicio En Clase
La pregunta de trabajo será:
Compararemos dos ventanas de tiempo:
Variables a comparar:
| Variable | Desv. normal | Desv. problema | Cambio | Interpretación |
|---|---|---|---|---|
| Recuperación | fórmula | fórmula | problema / normal | Resultado final |
| Nivel de celda | fórmula | fórmula | problema / normal | Señal temprana |
| Flujo de aire | fórmula | fórmula | problema / normal | Señal temprana |
| Espumante | fórmula | fórmula | problema / normal | Posible causa |
| P80 | fórmula | fórmula | problema / normal | Condición de entrada |
Lectura: si la desviación estándar de nivel, aire o espumante sube antes de que caiga la recuperación, esas variables pueden convertirse en señales tempranas.
5. Excel: Fórmulas Básicas
Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx
Hoja: Datos
Estabilidad de recuperación
Comparar ventana normal vs ventana problema
6. Python: Mismo Cálculo, Más Automatizado
Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx
import pandas as pd
df = pd.read_excel(
"flotacion_cobre.xlsx",
sheet_name="Datos"
)
variables = [
"recuperacion_cu",
"ley_concentrado_cu",
"ley_relave_cu",
"densidad_pulpa",
"p80",
"flujo_aire",
"nivel_celda",
"dosificacion_espumante"
]
df[variables].agg(["mean", "var", "std"])
Comparar normal vs problema
normal = df.iloc[0:96]
problema = df.iloc[96:140]
comparacion = pd.DataFrame({
"std_normal": normal[variables].std(),
"std_problema": problema[variables].std()
})
comparacion["aumento_variabilidad"] = (
comparacion["std_problema"] / comparacion["std_normal"]
)
comparacion.sort_values("aumento_variabilidad", ascending=False)
Ver funcionando código python
7. Puente Hacia Machine Learning
Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx
Todavía no necesitamos entrenar un modelo complejo. Primero usamos la desviación estándar para crear mejores variables de entrada.
Variables nuevas para ML
df["std_nivel_4h"] = df["nivel_celda"].rolling(4).std()
df["std_aire_4h"] = df["flujo_aire"].rolling(4).std()
df["std_espumante_4h"] = df["dosificacion_espumante"].rolling(4).std()
df["std_recuperacion_4h"] = df["recuperacion_cu"].rolling(4).std()
Preparar variables para un modelo básico
features_ml = [
"flujo_aire",
"nivel_celda",
"dosificacion_espumante",
"p80",
"densidad_pulpa",
"std_nivel_4h",
"std_aire_4h",
"std_espumante_4h"
]
X = df[features_ml].dropna()
y = df.loc[X.index, "evento_sobre_espumacion"]
Modelo posterior
from sklearn.linear_model import LogisticRegression
modelo = LogisticRegression(max_iter=1000)
modelo.fit(X, y)
Ver funcionando código python
8. Cierre Conceptual
La varianza y la desviación estándar nos permiten pasar de esta pregunta:
A esta otra:
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.
