Caso aplicado · Curso 2 · Módulo 1 · Unidad 19

Enfoque guía: Pronóstico de series de tiempo

Recuperación y riesgo en el tiempo — lags, medias móviles y pronóstico 1 h

Mate MathPlay · Flotación Cu · Material complementario

Flotación CuExcelPythonML supervisado
Ver concepto general MathPlay · Ruta IA matemática (MathPlay) →
Curso 2 — Aprendizaje supervisado · Módulo 1 · Unidad 4 de 4 · CIERRE
Caso flotación Cu · Curso 2 · Unidad 19

Pronóstico de series de tiempo

La planta no es una foto: es una película hora a hora — anticipar recuperación y riesgo

Idea central

Serie de tiempo: datos ordenados por fecha_hora. El valor de ahora depende del pasado reciente. En flotación: caída sostenida de recuperación + espumante alto → mayor riesgo en la próxima hora.

Demo: autocorrelación lag-1 recuperación ≈ 0,14 (señal débil pero útil). Con 120 h es material educativo; en planta real: meses de historiador.

1. Matemática — features temporales

yt ≈ f(yt−1, yt−2, xt, media_móvilt)

Features típicas (flotación)

FeatureDefiniciónPara qué
rec_lag1Recuperación t−1Inercia del KPI
esp_lag1Espumante t−1Arrastre de dosificación
media_mov_6hPromedio últimas 6 hTendencia del turno
std_mov_6hσ móvil 6 hEstabilidad (unidad 1)
turno A/B/CVariable categóricaEfecto de cuadrilla
Data leakage: nunca uses yt o sensores del futuro para predecir t. En Excel/Python ordena por fecha antes de crear lags.

2. Escalera de métodos

Nivel 1 Media móvil / naive → baseline temporal Nivel 2 Regresión con lags → pronóstico 1 h (supervisado) Nivel 3 ARIMA / Prophet → estacionalidad · más datos Nivel 4 LSTM / seq2seq → patrones largos · GPU

Pregunta operativa: ¿Recuperación cae 3 h seguidas y espumante sube — qué hacer en h+1?

3. Excel — lags y media móvil

CSV demo · ordenar por fecha_hora.

=' Recuperación lag 1 (fila 3 en adelante):
=G2

=' Media móvil 6 h recuperación:
=PROMEDIO(OFFSET(G3; -5; 0; 6; 1))

=' σ móvil 6 h:
=DESVEST(OFFSET(G3; -5; 0; 6; 1))

=' Tendencia simple (rec bajando 3 h):
=SI(Y(G3<G2; G2<G1); "CAIDA"; "OK")

=' Pronóstico naive (h+1 = rec actual):
=G3

4. Python — regresión con lags

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

df = pd.read_csv("datos_flotacion_demo.csv")
df["fecha_hora"] = pd.to_datetime(df["fecha_hora"])
df = df.sort_values("fecha_hora")

df["rec_lag1"] = df["recuperacion_cu_pct"].shift(1)
df["esp_lag1"] = df["dosif_espumante_ml_min"].shift(1)
df["rec_ma6"] = df["recuperacion_cu_pct"].rolling(6).mean()
df["rec_std6"] = df["recuperacion_cu_pct"].rolling(6).std()

feat_ts = ["rec_lag1","esp_lag1","rec_ma6","rec_std6",
           "ph","flujo_aire","nivel_celda_pct"]
df2 = df.dropna(subset=feat_ts + ["recuperacion_cu_pct"])

# Pronóstico 1 h: predecir rec_t con info hasta t-1 y sensores t
X = df2[feat_ts]
y = df2["recuperacion_cu_pct"]
split = int(len(df2) * 0.75)
reg = LinearRegression().fit(X.iloc[:split], y.iloc[:split])
pred = reg.predict(X.iloc[split:])
mae = mean_absolute_error(y.iloc[split:], pred)
print("MAE pronóstico 1h (test final):", round(mae, 2), "pp")

# Riesgo: clasificar evento usando lags (mismo espíritu unidad 17)
from sklearn.linear_model import LogisticRegression
df2["evt_lag1"] = df["sobre_espumacion"].shift(1)
df3 = df2.dropna(subset=["evt_lag1"])
clf = LogisticRegression(max_iter=500, class_weight="balanced")
clf.fit(df3[feat_ts + ["evt_lag1"]].iloc[:split], df3["sobre_espumacion"].iloc[:split])
print("Coef lags en riesgo:", clf.coef_[0][:3])

5. Cierre Módulo 1 — panel supervisado

Curso 2 · Módulo 1 completo (mismo CSV): U16 Regresión → ¿Cuánto recupero? (soft sensor) U17 Clasificación → ¿Habrá espuma? (P(evento)) U18 Anomalías → ¿Hora rara? (distancia + integrada) U19 Series de tiempo → ¿Qué sigue? (lags + tendencia) Curso 1 aportó criterio · Curso 2 aportó algoritmos entrenados

Próximo paso (Módulo 2): aprendizaje no supervisado — clustering, PCA como reducción, anomalías sin etiqueta. Mismo caso flotación, nuevas herramientas.

6. Investigación sugerida

Grafica recuperación vs hora. Marca eventos=1. ¿Cuántas horas antes del evento ya cae la media móvil 6 h? Propón una regla de alerta temporal.

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.

← Anomalías Siguiente: Clustering (M2) → Descargar CSV