Enfoque clase: Covarianza y correlacion
¿Que variables se mueven junto con la sobre-espumacion?
Ver concepto general MathPlay →Covarianza y correlación en flotación de cobre
Cómo detectar qué variables se mueven juntas cuando la planta empieza a perder estabilidad.
Idea Central
En la clase anterior preguntamos si la planta estaba estable. Ahora preguntamos algo más fino:
La covarianza y la correlación nos ayudan a encontrar relaciones entre variables. No demuestran causa, pero sí ayudan a priorizar sospechosos.
1. Matemática Simple
Suben juntas
Una sube y otra baja
No hay patrón claro
¿Por qué usamos correlación?
La covarianza depende de la escala. El P80 se mide en micras, la recuperación en porcentaje y los reactivos en otras unidades. La correlación estandariza la relación y siempre queda entre -1 y +1.
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. Relaciones Que Vale La Pena Buscar
| Relación | Pregunta de planta | Interpretación esperada |
|---|---|---|
| flujo_aire vs nivel_celda | Si sube el aire, se altera el nivel? | Relación positiva puede indicar inestabilidad por aireación |
| dosificacion_espumante vs evento_sobre_espumacion | Más espumante coincide con más eventos? | Posible señal temprana o causa operacional |
| nivel_celda vs evento_sobre_espumacion | Nivel alto coincide con eventos? | Señal directa de pérdida de control |
| p80 vs recuperacion_cu | Mineral más grueso reduce recuperación? | Relación negativa esperada |
| ley_relave_cu vs recuperacion_cu | Más cobre en relave reduce recuperación? | Relación negativa fuerte esperada |
| ley_concentrado_cu vs recuperacion_cu | Mayor calidad reduce recuperación? | Puede aparecer el trade-off metalúrgico |
4. Ejercicio En Clase
La pregunta de trabajo será:
Compararemos cada variable contra evento_sobre_espumacion y contra recuperacion_cu.
| Variable X | Variable Y | Correlación | Lectura |
|---|---|---|---|
| flujo_aire | evento_sobre_espumacion | fórmula | Señal candidata |
| nivel_celda | evento_sobre_espumacion | fórmula | Señal directa |
| dosificacion_espumante | evento_sobre_espumacion | fórmula | Posible causa |
| p80 | recuperacion_cu | fórmula | Condición de molienda |
| ley_relave_cu | recuperacion_cu | fórmula | Pérdida metalúrgica |
Lectura esperada: si nivel, espumante y aire tienen correlación alta con el evento, son candidatas a variables de alerta. La recuperación suele ser más una consecuencia.
5. Excel: Fórmulas Básicas
Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx
Hoja: Datos
Covarianza
Correlación
Matriz de correlación
Crear una tabla con recuperación, ley de relave, P80, flujo de aire, nivel, espumante y evento. Luego calcular correlaciones cruzadas y aplicar formato condicional.
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_relave_cu",
"p80",
"flujo_aire",
"nivel_celda",
"ph",
"dosificacion_espumante",
"evento_sobre_espumacion"
]
df[variables].corr()
Correlación con el evento
correlacion_evento = (
df[variables]
.corr()["evento_sobre_espumacion"]
.sort_values(ascending=False)
)
correlacion_evento
Correlación con recuperación
correlacion_recuperacion = (
df[variables]
.corr()["recuperacion_cu"]
.sort_values()
)
correlacion_recuperacion
Ver funcionando código python
7. Puente Hacia Machine Learning
Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx
La correlación ayuda a escoger las primeras variables, revisar redundancias y validar si el modelo aprende algo razonable.
Preparar variables para un modelo básico
features_ml = [
"flujo_aire",
"nivel_celda",
"dosificacion_espumante",
"p80",
"densidad_pulpa",
"ph"
]
X = df[features_ml]
y = df["evento_sobre_espumacion"]
Clasificador simple
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
modelo = LogisticRegression(max_iter=1000)
modelo.fit(X_train, y_train)
pred = modelo.predict(X_test)
print(classification_report(y_test, pred))
Ver funcionando código python
8. Cierre Conceptual
La covarianza y la correlación 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.
