Caso aplicado · Enfoque guía

Enfoque guia: Valores y vectores propios

¿Que patron explica mejor la variabilidad?

Mate MathPlay · Flotación Cu · Material revisado

Flotación CuExcelPython
Ver concepto general MathPlay →
Módulo 2 — Álgebra lineal · Paso 2 de 4
Semana 2 · Módulo 2 · Paso 6

Valores y vectores propios

Comprimir 6 variables de flotación en patrones dominantes (PCA)

Conexión con el Paso 5

Paso 5: X ∈ ℝ120×6 — filas = horas, columnas = sensores.

Paso 6: ¿Qué patrones explican la variación? → valores y vectores propios de la covarianza.

Objetivo: pasar de 6 columnas a 2–3 componentes interpretables (aireación, molienda, espuma–nivel) — base de PCA en ML.

No es magia: es encontrar las direcciones donde la planta más se mueve en el histórico.

1. Matemática simple

A · v = λ · v

SímboloSignificadoEn planta
AMatriz (covarianza 6×6)Cómo varían juntas las variables
vVector propioDirección del patrón
λValor propioVarianza en esa dirección

Flujo: centrar X → matriz covarianza C → resolver C v = λ v → cada par (λ, v) es un componente principal.

% varianza PCk = λk / Σλ × 100

2. Resultados demo

Varianza explicada

Componenteλ% varianza
PC1121,431,3 %
PC2112,529,0 %
PC378,620,2 %
PC475,719,5 %
PC5–PC6~0~0 %

PC1 + PC2 ≈ 60 % — con 2 patrones capturas la mayor parte del movimiento.

Cargas (vectores propios) — lectura cualitativa

VariablePC1PC2PC3
Flujo de aire−0,78−0,45−0,27
P80−0,51+0,85+0,13
Espumante−0,36−0,25+0,50
Nivel celda+0,04−0,13+0,81
pH / ley cabeza~0~0~0

PC1 (~31 %): aire + P80 + espumante — régimen global de flotación.

PC2 (~29 %): contraste P80 vs aire — alimentación vs aireación.

PC3 (~20 %): nivel + espumante — espuma–pulpa en celda.

Coherente con correlaciones del Paso 2 (aire, espumante, nivel vs evento).

3. Excel

Excel básico no calcula eigenvalues con una sola fórmula. En clase:

  • Repasa matriz X y covarianza (Pasos 2 y 5).
  • Opcional: Datos → Análisis de datos → Covarianza.
  • Python valida los números — mismo criterio que SCADA vs lab.

4. Python (núcleo)

Abre o descargue CSV demo.

import pandas as pd
import numpy as np
from sklearn.decomposition import PCA

features = ["ph", "p80_um", "flujo_aire",
            "dosif_espumante_ml_min", "nivel_celda_pct", "ley_cabeza_cu_pct"]
df = pd.read_csv("datos_flotacion_demo.csv")
X = df[features].values
Xc = X - X.mean(axis=0)

C = np.cov(Xc, rowvar=False)
eigvals, eigvecs = np.linalg.eig(C)
order = np.argsort(eigvals)[::-1]
eigvals = eigvals[order].real
eigvecs = eigvecs[:, order].real

print("Var %:", np.round(100*eigvals/eigvals.sum(), 1))
print("PC1 cargas:", dict(zip(features, np.round(eigvecs[:,0], 3))))

pca = PCA().fit(X)
print("sklearn %:", np.round(pca.explained_variance_ratio_*100, 1))

Ver funcionando código python

5. Proyección a Machine Learning

HoyEn ML
λ, % varianzaexplained_variance_ratio_
Vector propio vpca.components_
6 → 2 dimensionesMenos ruido, visualización PC1–PC2
Sin etiqueta eventoPCA es no supervisado; alerta = clasificador aparte
Siguiente (Paso 7): normas y distancia — ¿la hora actual está lejos del normal?

6. Investigación Sugerida

Tarea: scatter PC1 vs PC2 coloreado por sobre_espumacion. ¿Se separan eventos?

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.

← Volver al caso