Ep 43 — Quimiometría: PCA, PLS y Análisis Multivariante
Serie: Enciclopedia de Espectroscopia Infrarroja: Desde los Principios hasta la Práctica
Capítulo: Cuarto · Avanzado — Tecnologías de Frontera (3.ª entrega de la segunda mitad)
Público objetivo: Estudiantes de posgrado en química analítica/quimiometría/espectroscopia, responsables de laboratorios de QC/QA, usuarios de infrarrojos que desean pasar de la "cuantificación tradicional" a la "cuantificación multivariante", modeladores espectrales en agricultura/farmacia/industria alimentaria
Conocimiento previo: Ep 18 (Procesamiento de espectros), Ep 20 (Ley de Beer-Lambert), Ep 22 (Polimorfismo farmacéutico), Ep 25 (Adulteración de alimentos), Ep 33 (Biomedicina), Ep 35 (PLSR en suelos agrícolas), Ep 42 (Datos de acoplamiento)
Tiempo de lectura: Aprox. 60 minutos
Introducción: Cambio de metodología de "cuantificación de un solo pico" a "cuantificación de espectro completo"
En 1979, el químico sueco Svante Wold y el químico estadounidense Bruce Kowalski publicaron conjuntamente un artículo histórico en Anal Chem [1], definiendo formalmente la quimiometría (Chemometrics) — "aplicación de métodos matemáticos y estadísticos para extraer la máxima información de los datos de mediciones químicas". Casi al mismo tiempo, los Wold padre e hijo (Svante y Herman) en Suecia y Martens en Estados Unidos propusieron de forma independiente el algoritmo de regresión por mínimos cuadrados parciales (Partial Least Squares, PLS) [2][3], inaugurando una nueva era en el análisis espectral.
"Chemometrics is the science of relating measurements made on a chemical system to the state of the system via application of mathematical or statistical methods."
—— Massart D L et al. Chemometrics: A Textbook [4]
En el campo de la espectroscopia infrarroja, la quimiometría es "indispensable" debido a las siguientes tres realidades:
- Superposición severa de picos IR: En un espectro de 4000–400 cm⁻¹, casi no se encuentran picos completamente aislados. Por ejemplo, la banda Amida I (1600–1700 cm⁻¹) contiene subpicos de múltiples estructuras secundarias de proteínas como α-hélice, β-lámina, giros, etc.;
- Deriva de línea base y dispersión: La dispersión de partículas, la higroscopicidad del KBr causan inclinación de todo el espectro; la cuantificación de un solo pico se ve gravemente afectada por la matriz;
- Interacciones entre componentes: Los enlaces de hidrógeno y las interacciones dipolares entre componentes en una mezcla alteran las posiciones e intensidades de los picos.
La cuantificación tradicional de un solo pico (ley de Beer-Lambert A = εbc) es insuficiente frente a la complejidad anterior. La idea central de la quimiometría es: modelar conjuntamente todos los puntos de datos del espectro completo (miles de números de onda), promediando el ruido, incorporando los efectos de la matriz en el modelo y extrayendo información oculta de los picos superpuestos [4][5].
En esta entrega, explicaremos sistemáticamente los métodos centrales de la quimiometría infrarroja: preprocesamiento → análisis exploratorio con PCA → modelado cuantitativo con PLS → validación del modelo → prevención del sobreajuste → práctica con herramientas de código abierto.
I. Preprocesamiento de datos: los "cimientos" de la quimiometría
1.1 ¿Por qué es tan crítico el preprocesamiento?
Hay un dicho en quimiometría: "Garbage in, garbage out". El preprocesamiento representa el 60–80% del trabajo total de modelado, y la calidad del preprocesamiento determina el límite superior del modelo [4][5][6].
"Defectos" comunes en los espectros IR:
| Tipo de defecto | Causa | Efecto |
|---|---|---|
| Deriva de línea base | Dispersión, higroscopicidad del KBr, deriva del instrumento | Intensidades de pico no comparables |
| Variación global de intensidad | Diferencias de espesor de muestra, presión de contacto ATR | Modelo no comparable |
| Ruido | Escaneos insuficientes, ruido del detector | Sobreajuste del modelo |
| Interferencia de vapor de agua | Absorción de vapor de agua atmosférico | Introduce picos falsos |
| Regiones espectrales sin información | Muchas regiones en el espectro completo 4000–400 no contienen información química | Introduce variables de ruido |
1.2 Métodos principales de preprocesamiento
1.2.1 Corrección de línea base (Baseline Correction)
El objetivo de la corrección de línea base es eliminar las señales "no químicas" del espectro [6][7].
- Ajuste polinomial (polynomial): Se ajusta un polinomio de bajo orden (≤ 3) a los "valles" del espectro; la diferencia proporciona el espectro corregido;
- Rubber Band (banda elástica): Se trata el espectro como un "casco convexo", se estira una "banda elástica" a lo largo de la parte inferior; la curva que retrocede es la línea base;
- ALS (Asymmetric Least Squares): Propuesto por Eilers en 2005 [7], robusto al ruido y que preserva bien los picos anchos, es actualmente el algoritmo más recomendado;
- arPLS (Asymmetrically Reweighted Penalized Least Squares): Versión mejorada de ALS, ajusta automáticamente los pesos;
- Filtro de Whittaker: Basado en suavizado por diferencias y restricciones de escasez.
📦 Herramienta recomendada: La biblioteca de Python pybaselines proporciona más de 200 algoritmos de corrección de línea base, siendo la "navaja suiza" actual para la corrección de línea base en infrarrojos [8].
from pybaselines import Baseline
import numpy as np
# Suponiendo que wavenumber (1D), absorbance (1D) ya están cargados
baseline_fitter = Baseline(x=wavenumber)
bkg, params = baseline_fitter.asls(
absorbance, lam=1e7, p=0.01
) # Algoritmo ALS
corrected = absorbance - bkg
1.2.2 SNV (Standard Normal Variate)
SNV es un método clásico para eliminar las diferencias globales de intensidad y la inclinación de la línea base [5][6]:
$$ x_{\text{SNV}}(i) = \frac{x(i) - \bar{x}}{\sigma_x} $$
Se realiza centrado en la media y estandarización independientemente para cada espectro. SNV no requiere un espectro de referencia y es el método de normalización más utilizado en NIR/MIR.
1.2.3 MSC (Multiplicative Scatter Correction)
MSC está especialmente diseñado para corregir la inclinación de la línea base causada por dispersión [5][6]:
- Calcular el espectro medio $\bar{x}$ de todas las muestras;
- Realizar una regresión lineal para cada espectro de muestra x: $x = a + b \cdot \bar{x}$;
- Corregir: $x_{\text{MSC}} = (x - a) / b$.
MSC vs SNV: Sus efectos son similares, pero MSC requiere un espectro medio de referencia, mientras que SNV es más robusto. En espectroscopia de suelos agrícolas se usa más SNV, y en espectroscopia de polímeros se usa más MSC [5].
1.2.4 Derivación (Derivative)
La derivación puede eliminar simultáneamente la deriva de la línea base y mejorar la resolución de los picos [6]:
- Primera derivada: Elimina la línea base constante, resalta los cambios de pendiente de los picos;
- Segunda derivada: Elimina la línea base lineal, convierte los picos superpuestos en "picos invertidos", mejorando la resolución aparente;
- Derivada de Savitzky-Golay: Se ajusta localmente un polinomio de bajo orden y luego se deriva, evitando la amplificación del ruido.
from scipy.signal import savgol_filter
# Ventana de 9 puntos + polinomio de 2º orden → primera derivada
d1 = savgol_filter(absorbance, window_length=9, polyorder=2, deriv=1)
# Ventana de 11 puntos + polinomio de 2º orden → segunda derivada
d2 = savgol_filter(absorbance, window_length=11, polyorder=2, deriv=2)
⚠️ Trampa de la derivada: La derivación amplifica el ruido, por lo que la longitud de la ventana y el orden del polinomio deben elegirse con cuidado — si la ventana es demasiado corta, el ruido explota; si es demasiado larga, la forma del pico se distorsiona. Regla empírica: la longitud de la ventana debe ser de 1 a 2 veces el ancho medio del pico.
1.2.5 Normalización (Normalization)
- Normalización al máximo: Se divide cada espectro por su valor máximo;
Normalización al área: Se divide cada espectro por el área total del espectro;
Corrección ATR: La profundidad de penetración en ATR varía con la longitud de onda (más profunda en longitudes de onda largas), por lo que se requiere corrección ATR: $A{\text{corr}} = A \cdot \nu / \nu{\text{ref}}$.
1.2.6 Centrado en la media
$$ x_{\text{mc}}(i) = x(i) - \bar{x}(i) $$
Para cada columna (cada número de onda), se resta la media de esa columna. Este es un preprocesamiento obligatorio para PCA y PLS, ya que permite que el algoritmo se centre en la "variación" en lugar de en los "valores absolutos".
1.3 Estrategias de combinación de preprocesamiento
En el modelado práctico, normalmente se combinan varios preprocesamientos [4][5]:
| Escenario de aplicación | Combinación recomendada |
|---|---|
| Cuantificación de SOM en suelo (DRIFTS) | SNV + primera derivada (S-G 9 puntos) + centrado en la media |
| Identificación de polimorfos de fármacos (ATR) | Segunda derivada (S-G 11 puntos) + centrado en la media |
| Detección de adulteración de alimentos (ATR) | Línea base arPLS + SNV + centrado en la media |
| Estructura secundaria de proteínas (transmisión) | Segunda derivada (sin SNV) + centrado en la media |
| Datos tridimensionales GC-FTIR | SNV en dirección de filas + centrado en la media en dirección de columnas |
Tabla 1: Combinaciones de preprocesamiento recomendadas para escenarios típicos
💡 No siempre más preprocesamiento es mejor: cada paso de preprocesamiento puede perder información o introducir sesgos. Se recomienda comenzar con la combinación más simple (solo centrado en la media), agregar gradualmente SNV/derivadas, comparar el rendimiento del modelo y usar el conjunto de validación para decidir la solución final.
II. PCA: Análisis exploratorio y reducción de dimensionalidad
2.1 Principio de PCA
Análisis de Componentes Principales (Principal Component Analysis, PCA) es una herramienta fundamental en quimiometría [4][5][9]. Su idea central es reducir datos de alta dimensionalidad (por ejemplo, 1000 números de onda × 100 muestras) a unos pocos componentes principales (PC), reteniendo la mayor varianza posible.
Matemáticamente, para la matriz de datos centrada en la media X (n×p, n = número de muestras, p = números de onda) se realiza una descomposición en valores singulares:
$$ X = U \cdot S \cdot V^T $$
Donde:
- Puntuaciones (scores) T = U·S: matriz n×k, "puntuación" de cada muestra en cada componente principal;
- Cargas (loadings) P = V: matriz p×k, "peso" de cada número de onda en cada componente principal;
- Valores propios (eigenvalues): elementos diagonales de S, que reflejan la cantidad de varianza explicada por cada PC.
2.2 Aplicaciones quimiométricas de PCA
2.2.1 Reducción de dimensionalidad
Los espectros infrarrojos suelen tener 1000–3000 puntos de número de onda, pero la dimensionalidad efectiva de la información suele ser solo 5–20. PCA comprime los datos a unos pocos componentes principales [9]:
- Los primeros 3–5 PC suelen explicar > 90% de la varianza;
- Los PC siguientes son principalmente ruido;
- Después de la reducción, el modelo es más estable, el cálculo más rápido y la visualización más fácil.
2.2.2 Agrupamiento y detección de valores atípicos
Gráfico de puntuaciones (scores plot) proyecta las muestras en dos dimensiones (por ejemplo, PC1 × PC2):
- Las muestras de la misma clase deben agruparse;
- Las muestras de diferentes clases deben separarse;
- Las muestras alejadas del grupo pueden ser valores atípicos (outliers).
Criterios de detección de valores atípicos [5][9]:
- T² de Hotelling: distancia de Mahalanobis en el plano PC1-PC2; valores fuera de la elipse de confianza del 95% son atípicos;
- Residuo Q: varianza no explicada por el modelo; valores por encima de la línea de confianza del 95% son atípicos;
- Apalancamiento (leverage): grado de influencia de cada muestra en el modelo.
PC2
↑
3 + ●●●
| ●●●● ★
2 + ●●●●●● (Valor atípico)
| ●●●●●
1 + ●●●
| (Clase A) ●●●
0 + ────────────●●●●●●────────→ PC1
| ●●●●●
-1+ ●●●●
| (Clase B)
-2+
Figura 1: Gráfico de puntuaciones típico de PCA (PC1 vs PC2), mostrando dos clases de muestras agrupadas y un valor atípico
2.2.3 Interpretación de cargas
Gráfico de cargas (loadings plot) muestra la contribución de cada número de onda a los PC:
- Los números de onda con valores absolutos grandes de carga son los "principales contribuyentes" a ese PC;
- Los números de onda con signos opuestos indican que varían en dirección opuesta en ese PC;
- Se utiliza para interpretar el significado químico de los PC (por ejemplo, PC1 puede representar "contenido de humedad", PC2 "contenido de proteínas").
2.3 Aplicación práctica de PCA: Identificación de adulteración de aceite de oliva
Un laboratorio recolectó 100 muestras de aceite de oliva (70 auténticas + 30 adulteradas), adquirió espectros ATR-FTIR y realizó PCA [10]:
- Preprocesamiento: línea base arPLS + SNV + centrado en la media;
- PCA: se retuvieron los primeros 5 PC, explicando el 95% de la varianza;
- Gráfico de puntuaciones: PC1 × PC2, las muestras auténticas y adulteradas se separaron claramente;
- Gráfico de cargas: los principales números de onda contribuyentes al PC1 fueron 1745 cm⁻¹ (C=O de triglicéridos) y 3005 cm⁻¹ (=C-H de dobles enlaces cis);
- Inferencia: las muestras adulteradas se desviaron de las auténticas en los picos característicos de triglicéridos y ácidos grasos insaturados;
- Aplicación: se estableció un umbral de discriminación basado en las puntuaciones de PC1 + PC2, con una precisión del 96%.
🔗 Lectura adicional: Las absorciones características de C=O, C-H, etc. del aceite de oliva se pueden encontrar en ftir.fun página de grupos carbonilo y ftir.fun página de grupos alquilo C-H.
2.4 Limitaciones de PCA
PCA es un método no supervisado, no utiliza la información de las etiquetas de las muestras (por ejemplo, auténtica/adulterada):
- Cuando las muestras de diferentes clases se superponen en PC1-PC2, PCA no puede distinguirlas;
- Solución: utilizar métodos supervisados (PLS-DA, SVM, ver más adelante).
III. PLS: Modelo de calibración cuantitativa
3.1 Principio de PLS
Regresión por Mínimos Cuadrados Parciales (Partial Least Squares, PLS) es el "estándar de oro" para la cuantificación por infrarrojos [2][3][5].
PLS descompone simultáneamente X (espectros) e y (valores de referencia) basándose en PCA:
$$ X = T \cdot P^T + E, \quad y = T \cdot q + f $$
Al maximizar la covarianza entre X e y, PLS encuentra variables latentes (LVs) que explican la varianza de X y al mismo tiempo están correlacionadas con y.
Ventajas de PLS:
- Maneja datos altamente colineales en X (números de onda adyacentes altamente correlacionados);
- Maneja situaciones p >> n (más números de onda que muestras);
- Considera simultáneamente la relación entre X e y, más eficiente que el método de dos pasos PCA-regresión;
- Alta capacidad para resistir el ruido.
3.2 Flujo de modelado PLS
Flujo completo de modelado PLS [5][11]:
┌──────────────────────────────────────────┐
│ 1. Recolección y división de muestras │
│ - Conjunto de calibración 70% (n=70) │
│ - Conjunto de validación 30% (n=30) │
├──────────────────────────────────────────┤
│ 2. Preprocesamiento │
│ - Línea base + SNV + derivada + centrado en la media │
├──────────────────────────────────────────┤
│ 3. Validación cruzada para determinar │
│ el número óptimo de componentes principales│
│ - LOO (dejando uno fuera) o CV de 10 pliegues │
│ - Seleccionar el número de LV con RMSECV mínimo │
├──────────────────────────────────────────┤
│ 4. Construir el modelo final con el número óptimo de LV │
│ - Entrenar con el conjunto de calibración │
├──────────────────────────────────────────┤
│ 5. Validación externa │
│ - Evaluar con el conjunto de validación │
│ - Calcular RMSEP, R², RPD │
├──────────────────────────────────────────┤
│ 6. Mantenimiento del modelo │
│ - Actualizar el modelo periódicamente con nuevas muestras │
└──────────────────────────────────────────┘
> Figura 2: Flujo completo del modelado PLS
### 3.3 Indicadores de evaluación del modelo
Los indicadores de evaluación comunes para modelos PLS [5][11]:
| Indicador | Nombre completo | Significado | Criterio excelente |
|-----------|-----------------|-------------|-------------------|
| **R²** | Coeficiente de determinación | Grado de ajuste entre el valor predicho y el real | > 0.90 |
| **RMSEC** | Raíz del error cuadrático medio de calibración | Error de predicción del conjunto de calibración | Cuanto menor, mejor |
| **RMSECV** | Raíz del error cuadrático medio de validación cruzada | Error de predicción de validación cruzada | Cuanto menor, mejor |
| **RMSEP** | Raíz del error cuadrático medio de predicción | Error de predicción de validación externa | Cuanto menor, mejor |
| **RPD** | Desviación de predicción residual | SD/RMSEP | > 3 excelente; > 5 puede reemplazar método de laboratorio |
| **Bias** | Sesgo sistemático | Desviación media del valor predicho | Debe estar cerca de 0 |
| **RER** | Relación de rango de error | (y_max − y_min)/RMSEP | > 10 excelente |
> Tabla 2: Indicadores de evaluación del modelo PLS (referencia Williams & Norris [11])
**RPD (Desviación de predicción residual)** es el "indicador de clasificación" más utilizado en quimiometría [11]:
- RPD < 2: modelo no fiable;
- RPD 2–3: modelo utilizable, pero precisión limitada;
- RPD 3–5: modelo bueno;
- RPD > 5: puede reemplazar el método de referencia de laboratorio.
### 3.4 Validación cruzada: clave para evitar el sobreajuste
**La validación cruzada (Cross-Validation, CV)** es clave para seleccionar el número óptimo de LV [5][9]:
1. Dividir el conjunto de calibración en K pliegues (típicamente K = 10);
2. Cada vez dejar 1 pliegue como "validación interna", entrenar con los otros K-1 pliegues;
3. Calcular el RMSECV para cada número de LV;
4. Seleccionar el número de LV donde RMSECV sea mínimo (o comience a estabilizarse).
RMSECV
↑
高 │●
│ ●
│ ●
│ ● ← Valor mínimo (número óptimo de LV)
│ ●●●●●● ← Zona de estabilización
│
└──────────────→ número de LV
1 2 3 4 5 6 7 8 9 10
> Figura 3: Curva de RMSECV en función del número de LV. Seleccionar el número de LV cerca del mínimo para evitar sobreajuste.
**El método de dejar uno fuera (Leave-One-Out, LOO)** es un caso extremo donde K = n:
- Ventajas: aprovecha al máximo los datos;
- Desventajas: alto costo computacional, tiende a subestimar el error;
- Recomendación: usar LOO cuando n < 30, de lo contrario usar CV de 10 pliegues.
### 3.5 Aplicación práctica de PLS: Predicción de carbono orgánico del suelo
Referencia al caso del Episodio 35 [12]:
- **Muestras**: 500 suelos australianos (conjunto de datos CSIRO);
- **Espectros**: MIR-DRIFTS (4000–400 cm⁻¹, un punto cada 4 cm⁻¹, total 900 puntos);
- **Valor de referencia**: Método de oxidación con dicromato de potasio Walkley-Black para medir el contenido de SOM;
- **Preprocesamiento**: SNV + derivada de primer orden (S-G 9 puntos) + centrado en la media;
- **Conjunto de calibración**: 350; conjunto de validación: 150;
- **Número de LV**: seleccionados 8 LV mediante CV de 10 pliegues;
- **Resultados**: R² = 0.93, RMSEP = 0.32%, RPD = 3.6 (nivel "excelente");
- **Análisis de cargas**: LV1 contribuye principalmente con números de onda 2925/2850 cm⁻¹ (CH₂), LV2 con 1720 cm⁻¹ (C=O);
- **Aplicación**: el modelo se utiliza para el censo a gran escala de SOM en campos agrícolas australianos.
> 🔗 **Lectura adicional**: Las características infrarrojas de la materia orgánica del suelo se detallan en el Episodio 35, así como en la [página de grupos funcionales C-H alquílicos de ftir.fun](https://ftir.fun/ir/group/alkyl-c-h) y la [página de grupos funcionales carbonilo de ftir.fun](https://ftir.fun/ir/group/carbonyl).
### 3.6 Variantes de PLS
- **PLS-DA (Análisis discriminante)**: y es una etiqueta de clase (0/1), se utiliza para discriminar (por ejemplo, auténtico/adulterado);
- **PLS2**: y es una matriz de múltiples columnas, predice varias propiedades simultáneamente;
- **N-PLS**: para datos tridimensionales (por ejemplo, datos acoplados del Episodio 42);
- **SVM-PLS**: combina máquinas de soporte vectorial con PLS para manejar problemas no lineales;
- **CARS-PLS**: utiliza muestreo adaptativo competitivo reweighted para seleccionar números de onda clave, simplificando el modelo.
---
## 4. Sobreajuste: el "fantasma" de la quimiometría
### 4.1 Síntomas de sobreajuste
**El sobreajuste (overfitting)** es la trampa más común en quimiometría [5][11]:
- R² extremadamente alto en el conjunto de calibración (> 0.99), pero R² cae significativamente en el conjunto de validación;
- RMSEC mucho menor que RMSEP;
- El modelo "memoriza" perfectamente los datos de entrenamiento, pero **tiene poca capacidad de predicción para datos desconocidos**.
误差
↑
│ RMSEC ●●●●●●●●●● ← Desciende continuamente
│
│ RMSECV ●●●●●●↓↑↑ ← ¡Comienza a subir después de cierto punto!
│ ↑
│ Número óptimo de LV
│
└──────────────────→ número de LV
> Figura 4: Síntoma típico de sobreajuste: RMSEC desciende continuamente pero RMSECV rebota después del número óptimo de LV
### 4.2 Causas del sobreajuste
1. **Demasiados LV**: se modela el ruido;
2. **Muy pocas muestras**: n < 10 × número de LV;
3. **Preprocesamiento excesivo**: demasiadas derivadas, ventana demasiado corta;
4. **Selección inadecuada de números de onda**: incluye demasiadas zonas de ruido;
5. **Distribución inconsistente entre conjunto de calibración y validación**: por ejemplo, temperatura de 20°C en calibración, 30°C en validación.
### 4.3 Estrategias para evitar el sobreajuste
| Estrategia | Descripción |
|------------|-------------|
| Usar RMSECV para seleccionar LV | Elegir el número de LV con el RMSECV mínimo, no el R² más alto |
| Conjunto de validación externa | Reservar 20–30% de las muestras para validación independiente |
| Aumentar número de muestras | n ≥ 10 × número de LV, preferiblemente n ≥ 100 |
| Reducir números de onda | Usar métodos de selección de variables como CARS, GA para eliminar zonas de ruido |
| Simplificar preprocesamiento | Usar la combinación de preprocesamiento más simple |
| Diversidad de muestras reales | El conjunto de calibración debe cubrir los escenarios de aplicación futura |
> Tabla 3: Estrategias para evitar el sobreajuste
### 4.4 Transferibilidad del modelo
La "transferibilidad" de los modelos entre diferentes instrumentos y laboratorios es otro desafío en quimiometría [5]:
- El mismo espectro de muestra varía ligeramente entre instrumentos (diferencias de respuesta instrumental);
- Solución: los algoritmos **DS (Estandarización Directa), PDS (Estandarización Directa por Partes)** normalizan los espectros del "instrumento esclavo" al "instrumento maestro";
- **SBC (Corrección de Pendiente/Sesgo)**: corrección simple de pendiente/sesgo, adecuada para diferencias pequeñas.
---
## 5. Otros métodos de análisis multivariante
### 5.1 SIMCA
**SIMCA (Soft Independent Modeling of Class Analogy)** es un método de discriminación supervisado basado en PCA [9]:
- Para cada clase se construye un modelo PCA por separado;
- Las nuevas muestras calculan la "distancia" a cada clase (varianza residual y leverage);
- La clase con la menor distancia es la clase predicha;
- Ventaja: cada clase se modela de forma independiente, puede manejar desequilibrios de clases;
- Aplicación: identificación de polimorfos farmacéuticos.
### 5.2 SVM
**Máquina de Vectores de Soporte (Support Vector Machine, SVM)** es un método de aprendizaje automático (ver Ep 44) [13]:
- Maneja no linealidades mediante funciones kernel (RBF, polinomial);
- Excelente rendimiento en clasificación de espectros;
- Adecuado para muestras pequeñas (n < 100);
- Desventaja: ajuste de parámetros complejo.
### 5.3 MCR-ALS
**MCR-ALS (Multivariate Curve Resolution)** se utiliza para descomponer espectros de mezclas [14]:
- No requiere valores de referencia, descomposición **puramente blanda**;
- Produce el espectro puro de cada componente + curva de concentración;
- Aplicación: análisis de datos de técnicas acopladas Ep 42.
### 5.4 PARAFAC
**PARAFAC (Parallel Factor Analysis)** se utiliza para datos tridimensionales [14]:
- Similar a PCA, pero para matrices tridimensionales;
- Produce tres "vectores de carga";
- Aplicación: análisis de datos de TGA-FTIR, GC-FTIR, fluorescencia EEM.
### 5.5 ANN (Redes Neuronales Artificiales)
Las ANN se aplicaron a la espectroscopia infrarroja en la década de 1990 [13], pero fueron reemplazadas por el aprendizaje profundo (ver Ep 44).
---
## 6. Recomendación y práctica de herramientas de código abierto
### 6.1 pybaselines: herramienta de corrección de línea base
[**pybaselines**](https://github.com/derb12/pybaselines) [8]:
- Más de 200 algoritmos de corrección de línea base;
- Nativo de Python, compatible con NumPy/SciPy;
- Documentación completa, ejemplos abundantes;
- Es el estándar de facto para la corrección de línea base en infrarrojos.
```python
from pybaselines import Baseline
import numpy as np
baseline_fitter = Baseline(x_data=wavenumber)
# ALS (más clásico)
bkg1 = baseline_fitter.asls(y, lam=1e7, p=0.01)[0]
# arPLS (pesos adaptativos)
bkg2 = baseline_fitter.arpls(y, lam=1e6, ratio=0.01)[0]
# Ajuste polinomial
bkg3 = baseline_fitter.poly(y, poly_order=3)[0]
6.2 SpectroChemPy: marco integrado de análisis espectral
SpectroChemPy [15]:
- Más de 177 estrellas, mantenimiento activo;
- Estructura de datos NDDataset: espectros + metadatos integrados;
- Flujo completo: lectura (formatos múltiples) → preprocesamiento → modelado → visualización;
- Diseño de API inspirado en scikit-learn, curva de aprendizaje suave;
- Alto valor pedagógico.
import spectrochempy as scp
# Leer archivo Bruker OPUS
ds = scp.read_opus("sample.0")
# Corrección de línea base
ds = ds.baseline(algorithm='asls', lam=1e7, p=0.01)
# SNV
ds = ds.snv()
# PCA
pca = scp.PCA(n_components=5)
pca.fit(ds)
scores = pca.transform(ds)
6.3 Orange-Spectroscopy: análisis espectral sin código
Orange-Spectroscopy [16]:
- Flujo de trabajo visual de arrastrar y soltar, sin necesidad de programación;
- Integración perfecta de preprocesamiento y aprendizaje automático;
- Ideal para enseñanza en el aula y prototipado rápido;
- Incorpora PCA, PLS, PLS-DA, Random Forest, etc.;
- Soporta múltiples formatos como JCAMP-DX, SPC, SPA.
6.4 scikit-learn: marco genérico de aprendizaje automático
scikit-learn proporciona implementaciones completas de PCA, PLS, SVM, Random Forest:
from sklearn.decomposition import PCA
from sklearn.cross_decomposition import PLSRegression
from sklearn.model_selection import cross_val_predict, KFold
from sklearn.metrics import mean_squared_error, r2_score
# PCA
pca = PCA(n_components=5)
scores = pca.fit_transform(X_centered)
# PLS
pls = PLSRegression(n_components=8)
pls.fit(X_train, y_train)
y_pred = pls.predict(X_test)
rmsep = np.sqrt(mean_squared_error(y_test, y_pred))
r2 = r2_score(y_test, y_pred)
# Validación cruzada de 10 pliegues para seleccionar el mejor número de LV
kf = KFold(n_splits=10)
for n in range(1, 15):
pls = PLSRegression(n_components=n)
y_cv = cross_val_predict(pls, X_train, y_train, cv=kf)
rmsecv = np.sqrt(mean_squared_error(y_train, y_cv))
print(f"LV={n}, RMSECV={rmsecv:.4f}")
6.5 Recomendación de herramientas
| Herramienta | Adecuado para | Ventaja |
|---|---|---|
| pybaselines | Todos los que necesitan corrección de línea base | Algoritmos completos, rendimiento excelente |
| SpectroChemPy | Usuarios avanzados de Python | Marco integrado, alto valor pedagógico |
| Orange-Spectroscopy | Personas sin conocimientos de programación | Arrastrar y soltar, sin barreras |
| scikit-learn | Usuarios de aprendizaje automático en Python | Genérico, ecosistema rico |
| R prospectr | Usuarios de R | Muchas aplicaciones en agricultura |
| MATLAB PLS_Toolbox | Usuarios de MATLAB | Funcionalidad de nivel comercial, de pago |
Tabla 4: Comparación de herramientas de quimiometría de código abierto
7. Lista de mejores prácticas en quimiometría
7.1 Adquisición de datos
- Número de muestras ≥ 100: con n < 30 el modelo no es fiable;
- Cubrir el rango de aplicación futura: el rango de concentración del conjunto de calibración debe cubrir el escenario de aplicación real;
- Mediciones repetidas: al menos 2 mediciones por muestra para evitar sesgos puntuales;
- Aleatorización: evitar órdenes sistemáticos (por ejemplo, medir primero altas concentraciones y luego bajas);
- Método de referencia preciso: la calidad de los valores de referencia determina el límite superior del modelo.
7.2 División de datos
- Conjunto de calibración 60–70%, conjunto de validación 30–40%;
- Utilizar el algoritmo Kennard-Stone para una "división uniforme", más robusta que la división aleatoria;
- El conjunto de validación debe ser independiente del conjunto de calibración y no puede participar en la selección de parámetros de preprocesamiento.
7.3 Construcción del modelo
- Seleccionar el número de LV mediante validación cruzada;
Utilizar la combinación de preprocesamiento más simple;
Verifique el gráfico de residuos: los residuos deben distribuirse aleatoriamente, sin tendencias;
- Verifique el apalancamiento: las muestras con alto apalancamiento requieren atención.
7.4 Validación del modelo
- R², RMSEP, RPD del conjunto de validación externa;
- Gráfico de residuos de predicción: verifique si hay sesgos sistemáticos;
- Prueba de estabilidad: mediciones repetidas en diferentes días/operadores/instrumentos;
- Monitoreo a largo plazo: valide el modelo periódicamente con muestras nuevas.
7.5 Despliegue del modelo
- Documentar el flujo de preprocesamiento;
- Proporcionar criterios de "aplicabilidad" de las muestras (ej., si una nueva muestra está dentro del rango del modelo);
- Actualizar el modelo periódicamente (corrección de deriva);
- Crear una biblioteca de muestras "fallidas" para reentrenar el modelo.
VIII. Casos típicos: del laboratorio a la industria
8.1 Caso 1: Determinación rápida de proteínas en piensos por NIR
Una fábrica de piensos necesita monitorear en línea el contenido de proteína del pienso [11][17]:
- Muestras: 1200 formulaciones diferentes de pienso;
- Espectros: NIR 1000–2500 nm (intervalo de 2 nm, 750 puntos);
- Valor de referencia: método Kjeldahl;
- Preprocesamiento: SNV + derivada primera (S-G 11 puntos);
- Conjunto de calibración: 900 muestras; conjunto de validación: 300 muestras;
- Número de LV: 12;
- Resultados: R² = 0.96, RMSEP = 0.38%, RPD = 4.5;
- Aplicación: desplegado en línea para monitoreo en producción, ahorrando 500,000 yuanes anuales en costos de análisis.
8.2 Caso 2: Cuantificación de ingrediente activo en comprimidos farmacéuticos por ATR-FTIR
Una empresa farmacéutica necesita determinar rápidamente el contenido de paracetamol en comprimidos [18]:
- Muestras: 300 comprimidos de diferentes lotes;
- Espectros: ATR-FTIR 4000–400 cm⁻¹;
- Valor de referencia: HPLC;
- Preprocesamiento: arPLS + derivada segunda;
- Conjunto de calibración: 210 muestras; conjunto de validación: 90 muestras;
- Número de LV: 6;
- Resultados: R² = 0.95, RMSEP = 1.2%, RPD = 4.1;
- Aplicación: reemplaza parcialmente las pruebas HPLC, ahorrando 4 horas de análisis por lote.
🔗 Lectura adicional: Las absorciones características de amidas, hidroxilos, etc., en moléculas farmacéuticas se detallan en ftir.fun página de grupo amida y ftir.fun página de grupo hidroxilo.
8.3 Caso 3: Cribado rápido de melamina en alimentos
Basado en el caso ampliado de Ep 25 [19]:
- Muestras: 200 muestras de leche en polvo + melamina (0–500 ppm);
- Espectros: ATR-FTIR 4000–400 cm⁻¹;
- Preprocesamiento: arPLS + SNV + derivada primera;
- Modelo discriminante PLS-DA: límite de detección 50 ppm, precisión 95%;
- Análisis de cargas: 1550/1500 cm⁻¹ (anillo triazina C=N), 3350/3450 cm⁻¹ (NH₂);
- Aplicación: cribado rápido en estaciones de leche para evitar la repetición del incidente de melamina.
🔗 Lectura adicional: Las vibraciones de estiramiento N-H y del anillo triazina de la melamina se detallan en ftir.fun página de grupo amina.
IX. Futuro de la quimiometría: integración con aprendizaje automático
La frontera entre quimiometría y aprendizaje automático se está difuminando [13] (ver Ep 44):
- Quimiometría tradicional: PCA, PLS, SIMCA, alta interpretabilidad, adecuada para muestras pequeñas;
- Aprendizaje automático: SVM, Random Forest, XGBoost, alta capacidad no lineal, adecuado para muestras medianas;
- Aprendizaje profundo: CNN, Transformer, extracción automática de características, requiere muestras grandes (> 1000);
- IA explicable: SHAP, LIME, SSIN, hace que la caja negra sea transparente.
Tendencias futuras:
- Popularización de la IA explicable: que el modelo no solo sea "correcto", sino que "sepa por qué es correcto";
- Aprendizaje federado: colaboración entre laboratorios para modelar sin compartir datos brutos;
- Automatización del aprendizaje automático (AutoML): selección automática de preprocesamiento y modelo;
- Química cuántica + aprendizaje automático: usar espectros calculados por DFT para apoyar el aprendizaje con pocos datos.
Ilustraciones (esquemas clave de este episodio)
📷 Figura 5: Esquema de imagen microscópica/formación de matrices
Fuente: Imagen real/abierta · Project case study — PE spectrum (con marca de agua ftir.fun)
📷 Figura 6: Cadena de métodos avanzados
Fuente: Imagen real/abierta · Unsplash — chemistry lab (con marca de agua ftir.fun)
📷 Figura 7: Esquema de picos característicos relacionados con técnicas avanzadas
Fuente: Diagrama educativo de ftir.fun (con marca de agua; no es un espectro real, solo para entender el concepto)
Resumen de este episodio
| Punto de conocimiento clave | Puntos clave |
|---|---|
| Definición de quimiometría | Uso de métodos matemáticos y estadísticos para extraer la máxima información de datos químicos |
| Por qué se necesita quimiometría | Superposición de picos infrarrojos, efecto matriz, interacciones entre componentes |
| Principales métodos de preprocesamiento | Línea base arPLS, SNV, MSC, derivada primera/segunda, centrado en la media, normalización |
| pybaselines | Biblioteca estándar de facto con más de 200 algoritmos de corrección de línea base |
| SNV vs MSC | SNV procesa independientemente, MSC necesita un espectro de referencia; SNV para suelos, MSC para polímeros |
| Tratamiento de derivadas | Primera derivada elimina línea base constante; segunda derivada elimina línea base lineal + mejora resolución; ventana de 1–2 veces el ancho medio del pico |
| Principio de PCA | Descomposición en valores singulares; puntuaciones = agrupación de muestras; cargas = contribución de números de onda |
| Aplicaciones de PCA | Reducción de dimensionalidad, agrupación, detección de anomalías (Hotelling T², Q residual) |
| Principio de PLS | Descomposición simultánea de X e y, maximizando la covarianza |
| Flujo de modelado PLS | División de datos → preprocesamiento → CV para seleccionar LV → entrenamiento → validación externa |
| Métricas de evaluación | R² > 0.90; RPD > 3 excelente, > 5 puede reemplazar método de laboratorio |
| Validación cruzada | LOO (n<30) o 10-fold CV (n≥30); seleccionar LV con RMSECV mínimo |
| Síntomas de sobreajuste | RMSEC disminuye continuamente pero RMSECV aumenta |
| Cómo evitar sobreajuste | Seleccionar LV con RMSECV; conjunto de validación externa; n ≥ 100; simplificar preprocesamiento |
| Transferibilidad del modelo | Algoritmos DS, PDS, SBC para estandarizar espectros de diferentes instrumentos |
| Otros métodos | SIMCA, SVM, MCR-ALS, PARAFAC |
| Herramientas de código abierto | pybaselines, SpectroChemPy, Orange-Spectroscopy, scikit-learn |
| Tendencias futuras | IA explicable, aprendizaje federado, AutoML, química cuántica + ML |
Preguntas de reflexión
Necesita construir un modelo PLS para predecir el contenido de proteína en leche. Describa el flujo completo de preprocesamiento y explique por qué la región NIR es generalmente más adecuada para esta cuantificación (pista: considere la interferencia del agua).
Al construir un modelo PLS cuantitativo, el R² del conjunto de calibración es 0.98, pero el R² del conjunto de validación es solo 0.65. Enumere al menos 4 posibles causas y sus correspondientes métodos de diagnóstico.
¿Cuál es la diferencia matemática central entre PCA y PLS? ¿En qué situación preferiría PCA sobre PLS? Dé un ejemplo práctico.
Al usar la biblioteca pybaselines para corrección de línea base, encuentra que los dos parámetros del algoritmo ALS, lam y p, son difíciles de ajustar. Explique el significado físico de estos dos parámetros y cómo elegir un rango de valores razonable (pista: lam controla la suavidad, p controla la asimetría).
Se te proporcionan 500 espectros DRIFTS de muestras de suelo con valores de referencia de SOM, y se requiere construir un modelo PLS para implementación industrial. Diseña el flujo completo: método de división de datos, combinación de preprocesamiento, selección del número de LV, estrategia de validación, objetivo de rendimiento del modelo y consideraciones de implementación.
Referencias
[1] Kowalski B R. "Chemometrics: Views and Propositions." J Chem Inf Comput Sci, 1979, 19(4): 234–238. DOI:10.1021/ci60020a004.
Véase también Wold S. "Chemometrics: What do we mean with it, and what do we want from it?" Chemom Intell Lab Syst, 1995, 30(1): 109–115.
[2] Wold H. "Estimation of Principal Components and Related Models by Iterative Least Squares." In: Multivariate Analysis, ed. Krishnaiah P R, Academic Press, 1966: 391–420.
[3] Wold S, Sjöström M, Eriksson L. "PLS-Regression: A Basic Tool of Chemometrics." Chemom Intell Lab Syst, 2001, 58(2): 109–130. DOI:10.1016/S0169-7439(01)00155-1.
[4] Massart D L, Vandeginste B G M, Buydens L M C, et al. Chemometrics: A Textbook. Elsevier, 1988. ISBN: 978-0-444-42660-6.
[5] Naes T, Isaksson T, Fearn T, Davies T. A User-Friendly Guide to Multivariate Calibration and Classification. NIR Publications, 2002. ISBN: 978-0-9528666-2-6.
[6] Rinnan Å, van den Berg F, Engelsen S B. "Review of the Most Common Pre-Processing Techniques for Near-Infrared Spectra." Trends in Analytical Chemistry, 2009, 28(10): 1201–1222. DOI:10.1016/j.trac.2009.07.007.
[7] Eilers P H C, Boelens H F M. "Baseline Correction with Asymmetric Least Squares Smoothing." Leiden Univ Medical Centre Report, 2005, 1(1): 5.
[8] pybaselines: A Python package for baseline correction. GitHub: https://github.com/derb12/pyb…
[9] Brereton R G. Chemometrics: Data Analysis for the Laboratory and Chemical Plant. Wiley, 2003. ISBN: 978-0-471-48978-8.
[10] Casale M, Casolino C, Ferrari G, et al. "Olive Oil Adulteration Detection by ATR-FTIR and Chemometrics." Food Anal Methods, 2010, 3: 195–203.
[11] Williams P C, Norris K. Near-Infrared Technology in the Agricultural and Food Industries. 3rd ed. AACC International Press, 2001. ISBN: 978-1-891127-37-6.
[12] Janik L J, Skjemstad J O, Raven M D. "Characterization and Analysis of Soils Using Mid-Infrared Partial Least-Squares." Soil Biology & Biochemistry, 2008, 40(2): 412–423. DOI:10.1016/j.soilbio.2007.09.023.
[13] Buljanić M H, et al. "Machine Learning in Infrared Spectroscopy." Spectrochim Acta A, 2022, 270: 120816.
[14] de Juan A, Tauler R. "Multivariate Curve Resolution (MCR) from 2000: Progress in Concepts and Applications." Crit Rev Anal Chem, 2006, 36(3–4): 163–176.
[15] SpectroChemPy: A Python framework for processing, analyzing and modeling spectroscopic data. GitHub: https://github.com/spectroche…
[16] Orange-Spectroscopy: A package to extend Orange with spectroscopic functionality. GitHub: https://github.com/Quasars/or…
[17] Burns D A, Ciurczak E W. Handbook of Near-Infrared Analysis. 3rd ed. CRC Press, 2007. ISBN: 978-0-8493-7393-0.
[18] Roggo Y, Chalus P, Maurer L, et al. "A Review of Near Infrared Spectroscopy and Chemometrics for Pharmaceutical Analysis." J Pharm Biomed Anal, 2007, 44(3): 683–700.
[19] Lu C, Xiang B, Hao G, et al. "Rapid Detection of Melamine in Milk Powder by Near Infrared Spectroscopy." J Near Infrared Spectrosc, 2009, 17(2): 59–67.
[20] ftir.fun Página del grupo funcional alquilo C-H. https://ftir.fun/ir/group/alk…
[21] ftir.fun Página del grupo funcional carbonilo. https://ftir.fun/ir/group/car…
[22] ftir.fun Página del grupo funcional amida. https://ftir.fun/ir/group/ami…
[23] ftir.fun Página del grupo funcional hidroxilo. https://ftir.fun/ir/group/hyd…
[24] ftir.fun Página del grupo funcional amina. https://ftir.fun/ir/group/ami…
Avance del próximo episodio: Ep 44 — Aprendizaje automático en espectroscopia infrarroja
La quimiometría es el método multivariable "tradicional", mientras que el aprendizaje automático y el aprendizaje profundo son su "versión evolucionada". En el próximo episodio discutiremos: las compensaciones entre la quimiometría tradicional y el aprendizaje automático; la aplicación de SVM, Random Forest y XGBoost en la clasificación espectral; CNN para reconocimiento espectral; trabajos de vanguardia en 2025 como SSIN IA explicable (detección de grupos funcionales a partir de espectros IR), marco de razonamiento multitarea de espectroscopia IR impulsado por LLM, robot autónomo IR-Bot, etc.
Este artículo está bajo licencia CC BY-NC-SA 4.0. Las imágenes provienen de dominio público o recursos en línea con fuente indicada; los derechos de autor pertenecen a sus respectivos dueños.


