Análisis discriminante

El Análisis Discriminante Lineal (LDA) y el Análisis Discriminante Cuadrático (QDA) clasifican observaciones modelando la distribución condicional de las características dado cada clase como gaussianas multivariantes y aplicando el teorema de Bayes. El LDA asume que todas las clases comparten la misma matriz de covarianza, dando fronteras de decisión lineales; el QDA permite a cada clase su propia covarianza, dando fronteras cuadráticas.

El modelo generativo

Tanto LDA como QDA modelan cada clase \(k\) como una gaussiana multivariante:

\[P(\mathbf{x} \mid C=k) = \frac{1}{(2\pi)^{p/2}|\boldsymbol{\Sigma}_k|^{1/2}} \exp\!\left(-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu}_k)^T\boldsymbol{\Sigma}_k^{-1}(\mathbf{x}-\boldsymbol{\mu}_k)\right)\]

Aplicando el teorema de Bayes, la probabilidad a posteriori de la clase \(k\) es:

\[P(C=k \mid \mathbf{x}) \propto \pi_k \cdot P(\mathbf{x} \mid C=k)\]

donde \(\pi_k = P(C=k)\) es la probabilidad a priori de la clase \(k\), estimada como la proporción de la clase en los datos de entrenamiento.

Análisis Discriminante Lineal (LDA)

El LDA añade la restricción \(\boldsymbol{\Sigma}_1 = \boldsymbol{\Sigma}_2 = \cdots = \boldsymbol{\Sigma}_K = \boldsymbol{\Sigma}\) (matrices de covarianza iguales). Bajo esta restricción, el cociente de log-posteriores entre dos clases se simplifica a una función lineal de \(\mathbf{x}\):

\[\delta_k(\mathbf{x}) = \mathbf{x}^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_k - \frac{1}{2}\boldsymbol{\mu}_k^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_k + \log\pi_k\]

\[\hat{c} = \arg\max_k \delta_k(\mathbf{x})\]

El término cuadrático \(\mathbf{x}^T\boldsymbol{\Sigma}^{-1}\mathbf{x}\) es el mismo para todas las clases y se cancela en la comparación, dejando una función lineal de \(\mathbf{x}\). La frontera de decisión entre las clases \(j\) y \(k\) es el conjunto de puntos donde \(\delta_j(\mathbf{x}) = \delta_k(\mathbf{x})\): un hiperplano.

Estimación de parámetros: \(\hat{\boldsymbol{\mu}}_k\) = medias muestrales por clase; \(\hat{\boldsymbol{\Sigma}}\) = covarianza muestral ponderada dentro de clase.

Criterio de Fisher: maximizar la separación entre clases

Una forma equivalente de derivar el LDA: encontrar la dirección de proyección \(\mathbf{w}\) que maximiza el cociente entre la varianza entre clases y la varianza dentro de clase tras proyectar los datos sobre \(\mathbf{w}\):

\[\mathbf{w}^* = \arg\max_{\mathbf{w}} \frac{\mathbf{w}^T \mathbf{S}_B \mathbf{w}}{\mathbf{w}^T \mathbf{S}_W \mathbf{w}}\]

donde \(\mathbf{S}_B = \sum_k n_k(\boldsymbol{\mu}_k - \boldsymbol{\mu})(\boldsymbol{\mu}_k - \boldsymbol{\mu})^T\) es la matriz de dispersión entre clases y \(\mathbf{S}_W = \sum_k \sum_{i \in C_k}(\mathbf{x}_i - \boldsymbol{\mu}_k)(\mathbf{x}_i - \boldsymbol{\mu}_k)^T\) es la matriz de dispersión dentro de clase.

La solución es \(\mathbf{w}^* = \mathbf{S}_W^{-1}(\boldsymbol{\mu}_1 - \boldsymbol{\mu}_2)\) para dos clases. Para \(K\) clases, las primeras \(K-1\) direcciones discriminantes son los vectores propios de \(\mathbf{S}_W^{-1}\mathbf{S}_B\) correspondientes a los mayores valores propios.

Esta es la perspectiva de reducción de dimensionalidad del LDA: proyectar sobre las \(K-1\) direcciones que mejor separan las clases, y luego clasificar en el espacio reducido.

Proyección LDA mostrando el espacio 2D original y la proyección 1D que maximiza la separación entre clases

Análisis Discriminante Cuadrático (QDA)

El QDA relaja el supuesto de covarianza igual. Cada clase tiene su propia covarianza \(\boldsymbol{\Sigma}_k\), y el log-posterior no se simplifica a una función lineal:

\[\delta_k(\mathbf{x}) = -\frac{1}{2}\log|\boldsymbol{\Sigma}_k| - \frac{1}{2}(\mathbf{x}-\boldsymbol{\mu}_k)^T\boldsymbol{\Sigma}_k^{-1}(\mathbf{x}-\boldsymbol{\mu}_k) + \log\pi_k\]

El término \((\mathbf{x}-\boldsymbol{\mu}_k)^T\boldsymbol{\Sigma}_k^{-1}(\mathbf{x}-\boldsymbol{\mu}_k)\) es la distancia de Mahalanobis al cuadrado desde \(\mathbf{x}\) hasta el centroide de la clase \(k\), ponderada por la covarianza de la clase. La frontera de decisión entre las clases \(j\) y \(k\) es una superficie cuadrática (elipse, parábola o hipérbola en 2D).

El QDA estima \(p(p+1)/2\) parámetros por clase para la matriz de covarianza, frente a la única \(\boldsymbol{\Sigma}\) agrupada del LDA. Con \(K\) clases: QDA tiene \(K \cdot p(p+1)/2\) parámetros de covarianza frente a \(p(p+1)/2\) del LDA.

Comparación lado a lado de las fronteras de decisión de LDA y QDA sobre el mismo conjunto de datos mostrando fronteras lineales frente a cuadráticas

Con covarianzas desiguales (C2 tiene mayor varianza y correlación negativa), el LDA fuerza una frontera recta que clasifica mal los puntos en las colas. El QDA curva la frontera para ajustarse mejor a la estructura real de las clases.

LDA como reducción de dimensionalidad

Para \(K\) clases en \(p\) dimensiones, el LDA proyecta los datos sobre como máximo \(K-1\) direcciones discriminantes antes de clasificar. Esto hace del LDA un paso de preprocesamiento útil:

  • Reduce \(p\) dimensiones a \(K-1\) para visualización o como entrada a otro clasificador.
  • A diferencia del PCA (que maximiza la varianza total), el LDA maximiza la separación entre clases en el espacio reducido.
  • Para \(K=2\): un único eje discriminante separa las dos clases. Representa la proyección 1D para visualizar la separabilidad.
  • Para \(K=3\): dos ejes discriminantes dan un gráfico 2D que muestra la estructura de las clases.

⚠️ El LDA falla cuando el supuesto de covarianza igual se viola fuertemente

Cuando las clases tienen covarianzas muy distintas, la frontera lineal del LDA está mal especificada y la precisión se degrada. Señales de violación: dispersión o forma muy diferente de las nubes de puntos por clase, matrices de covarianza numéricamente muy distintas.

Comprueba con el test M de Box (biotools::boxM()) para la igualdad formal de matrices de covarianza. Si se rechaza, usa QDA. Ten en cuenta que el QDA necesita más datos: cada clase necesita al menos \(p+1\) observaciones para estimar su matriz de covarianza, e idealmente muchas más para estimaciones estables.

LDA vs QDA vs regresión logística

LDA QDA Regresión logística
Frontera de decisión Lineal Cuadrática Lineal (estándar)
Supuesto Gaussiana, \(\boldsymbol{\Sigma}\) igual Gaussiana, \(\boldsymbol{\Sigma}\) distintas Ninguno sobre \(P(\mathbf{x})\)
Parámetros Pocos Más (\(K\) covarianzas) \(p+1\)
Estable con \(n\) pequeño Necesita más datos
También hace red. dim. Sí (\(K-1\) ejes) No No
Sensible a valores atípicos Moderado Más Menos

El LDA tiende a superar a la regresión logística cuando el supuesto gaussiano es aproximadamente correcto y \(n\) es pequeño. La regresión logística es más robusta ante características no gaussianas y valores atípicos. El QDA gana cuando las clases tienen genuinamente estructuras de covarianza distintas y hay suficientes datos para estimarlas de forma fiable.

💡 Análisis discriminante en R

library(MASS)

# LDA
fit_lda <- lda(y ~ ., data=df_train)
predict(fit_lda, newdata=df_test)$class      # clases predichas
predict(fit_lda, newdata=df_test)$posterior  # probabilidades a posteriori
predict(fit_lda, newdata=df_test)$x          # puntuaciones LD (para graficar)

# QDA
fit_qda <- qda(y ~ ., data=df_train)
predict(fit_qda, newdata=df_test)$class

# Test de igualdad de covarianzas (test M de Box)
library(biotools)
boxM(df_train[,-1], df_train$y)

# LDA regularizado (para p cercano a n)
library(klaR)
fit_rda <- rda(y ~ ., data=df_train, gamma=0.05, lambda=0.2)