1hdxm4om6rdyrzkfqah46tq.png

Una guía para el procedimiento robusto de PCA (ROBPCA) de Hubert et al.

El análisis de componentes principales es una técnica de descomposición de la varianza que se utiliza con frecuencia para la reducción de dimensionalidad. Hay disponible una guía completa sobre PCA aquí. En esencia, cada componente principal se calcula encontrando la combinación lineal de las características originales que tiene una varianza máxima, sujeta a la restricción de que debe ser ortogonal a los componentes principales anteriores. Este proceso tiende a ser sensible a los valores atípicos, ya que no diferencia entre variación significativa y variación debida al ruido. Los componentes principales superiores, que representan las direcciones de máxima variación, son especialmente susceptibles.

En este artículo, analizaré ROBPCA, una alternativa sólida al PCA clásico que es menos sensible a los valores extremos. Explicaré los pasos del procedimiento ROBPCA, discutiré cómo implementarlo con el paquete R ROSPCA e ilustraré su uso en el conjunto de datos de calidad del vino del Repositorio de Aprendizaje Automático de la UCI. Para concluir, consideraré algunas limitaciones de ROBPCA y discutiré un algoritmo PCA robusto alternativo que es digno de mención pero no es adecuado para este conjunto de datos en particular.

Procedimiento ROBPCA:

El artículo que propuso ROBPCA fue publicado en 2005 por la estadística belga Mia Hubert y sus colegas. Ha obtenido miles de citas, incluidas cientos en los últimos años, pero el procedimiento no suele estar cubierto en cursos y tutoriales de ciencia de datos. A continuación, describí los pasos del algoritmo:

I) Centrar los datos utilizando el estimador habitual de la media y realizar una descomposición en valores singulares (SVD). Este paso es particularmente útil cuando p>n o la matriz de covarianza es de rango bajo. La nueva matriz de datos se considera UD, donde U es una matriz ortogonal cuyas columnas son los vectores singulares izquierdos de la matriz de datos y D es la matriz diagonal de valores singulares.

II) Identifique un subconjunto de puntos de datos ‘menos atípicos’ de h_0, basándose en ideas de la búsqueda de proyecciones, y utilice estos puntos de datos centrales para determinar cuántos componentes principales sólidos se deben retener. Esto se puede dividir en tres subpasos:

a) Proyecte cada punto de datos en varias direcciones univariadas. Para cada dirección, determine qué tan extremo es cada punto de datos estandarizando con respecto a las estimaciones del determinante de máxima covarianza (MCD) de la ubicación y la dispersión. En este caso, las estimaciones de MCD son la media y la desviación estándar de los puntos de datos h_0 con la varianza más pequeña cuando se proyectan en la dirección dada.

b) Conservar el subconjunto de puntos de datos h_0 que tienen la puntuación estandarizada máxima más pequeña en todas las diferentes direcciones consideradas en el subpaso anterior.

c) Calcule una matriz de covarianza S_0 a partir de los puntos de datos h_0 y use S_0 para seleccionar k, el número de componentes principales robustos. Proyecte el conjunto de datos completo en los k vectores propios superiores de S_0.

III) Calcule de forma sólida la dispersión de los datos finales del paso dos utilizando un procedimiento MCD acelerado. Este procedimiento encuentra un subconjunto de puntos de datos h_1 con un determinante de covarianza mínimo a partir del subconjunto de puntos de datos h_0 identificados anteriormente. Los vectores propios k superiores de esta matriz de dispersión se consideran los componentes principales robustos. (En el caso de que el procedimiento MCD acelerado conduzca a una matriz singular, los datos se proyectan en un espacio de dimensiones inferiores, lo que en última instancia da como resultado menos de k componentes principales robustos).

Tenga en cuenta que el PCA clásico se puede expresar en términos del mismo SVD que se utiliza en el paso uno de ROBPCA; sin embargo, ROBPCA implica pasos adicionales para limitar la influencia de valores extremos, mientras que el PCA clásico retiene inmediatamente los k componentes principales superiores.

Paquete ROSPCA:

ROBPCA se implementó inicialmente en el paquete rrcov a través del Función PcaHubert, pero ahora hay disponible una implementación más eficiente en el paquete ROSPCA. Este paquete contiene métodos adicionales para PCA disperso y robusto, pero están fuera del alcance de este artículo. Ilustraré el uso de la función robpca, que depende de dos parámetros importantes: alfa y k. Alpha controla cuántos puntos de datos periféricos se resisten, tomando valores en el rango [0.5, 1.0]. La relación entre h_0 y alfa viene dada por:

El parámetro k determina cuántos componentes principales robustos se deben retener. Si no se especifica k, se elige como el número más pequeño tal que a) los valores propios satisfagan:

y b) los componentes principales retenidos explican al menos el 80 por ciento de la varianza entre los puntos de datos h_0 menos atípicos. Cuando ningún valor de k satisface ambos criterios, entonces sólo se utiliza la relación de los valores propios para determinar cuántos componentes principales se retendrán. (Nota: la función PcaHubert original establece el criterio como 10E-3, pero la función robpca usa 1E-3).

Ejemplo de datos reales:

Para este estudio de caso, seleccioné el conjunto de datos de calidad del vino tinto del Repositorio de aprendizaje automático de la UCI. El conjunto de datos contiene n=1599 observaciones, cada una de las cuales representa un vino tinto diferente. Las 12 variables incluyen 11 propiedades químicas diferentes y una calificación de calidad de expertos. Varias de las 11 propiedades químicas contienen valores atípicos potenciales, lo que lo convierte en un conjunto de datos ideal para ilustrar 1) el impacto de los valores extremos en PCA y 2) cómo se puede identificar una estructura de varianza sólida a través de ROBPCA.

PCA no es invariante en escala, por lo que es importante decidir intencionalmente qué estandarización se utilizará, si es que se utilizará alguna. No estandarizar daría un peso excesivo a las variables medidas en escalas más grandes, por lo que centro cada una de las 11 características y las divido por su desviación estándar. Un enfoque alternativo sería utilizar una medida sólida de centro y escala, como la mediana y la MAD; sin embargo, encuentro que las estimaciones robustas de la escala distorsionan completamente los componentes principales clásicos ya que los valores extremos están aún más alejados del centro de los datos. ROBPCA es menos sensible a la escala inicial (una ventaja considerable en sí misma), pero utilizo la desviación estándar para mantener la coherencia y garantizar que los resultados sean comparables.

Para seleccionar k para ROBPCA, permito que la función determine el valor k óptimo, lo que da como resultado k = 5 componentes principales robustos. Acepto el valor predeterminado de alfa=0,75 ya que encuentro que las cargas variables no son muy sensibles a la elección de alfa, con valores alfa entre 0,6 y 0,9 produciendo cargas muy similares. Para PCA clásico, dejo k=5 para facilitar las comparaciones entre los dos métodos. Esta es una elección razonable para el PCA clásico, independientemente de ROBPCA, ya que los cinco componentes principales principales explican poco menos del 80 por ciento de la varianza total.

Dejados estos preliminares, comparemos los dos métodos. La siguiente imagen muestra las cargas de los componentes principales para ambos métodos. En los cinco componentes, las cargas sobre las variables ‘azúcar residual’ y ‘cloruros’ son mucho menores (en valor absoluto) para ROBPCA que para el PCA clásico. Ambas variables contienen una gran cantidad de valores atípicos, a los que ROBPCA tiende a resistir.

Mientras tanto, las variables «densidad» y «alcohol» parecen contribuir de manera más significativa a los componentes principales robustos. El segundo componente robusto, por ejemplo, tiene cargas mucho mayores sobre estas variables que el segundo componente clásico. Los componentes robustos cuarto y quinto también tienen cargas mucho mayores en «densidad» o «alcohol», respectivamente, que sus homólogos clásicos. Hay pocos valores atípicos en términos de densidad y contenido de alcohol, y casi todos los vinos tintos se distribuyen a lo largo de un continuo de valores. ROBPCA parece captar mejor estas fuentes comunes de variación.

Cargas variables para los componentes principales robustos (arriba) y los componentes principales clásicos (abajo). Imagen del autor.
Histogramas que muestran la distribución de cuatro características: azúcar residual, cloruros, densidad y alcohol. ROBPCA tenía cargas más pequeñas en azúcares y cloruros residuales, que contienen una serie de valores atípicos, y cargas mayores en densidad y alcohol. Imagen del autor.

Finalmente, describiré las diferencias entre ROBPCA y PCA clásico trazando las puntuaciones de los dos componentes principales principales entre sí, una técnica común utilizada para visualizar conjuntos de datos en un espacio de baja dimensión. Como se puede ver en el primer gráfico a continuación, hay una serie de valores atípicos en términos de los componentes principales clásicos, la mayoría de los cuales tienen una gran carga negativa en PC1 y/o una gran carga positiva en PC2. Hay algunos valores atípicos potenciales en términos de componentes principales sólidos, pero no se desvían tanto del conjunto principal de puntos de datos. Las diferencias entre los dos gráficos, particularmente en la esquina superior izquierda, indican que los componentes principales clásicos pueden estar sesgados hacia abajo en la dirección de los valores atípicos. Además, parece que los componentes principales robustos pueden separar mejor los vinos por calidad, lo que no se utilizó en la descomposición de los componentes principales, lo que proporciona alguna indicación de que ROBPCA recupera una variación más significativa en los datos.

Los datos del vino tinto se proyectan sobre los dos principales componentes principales clásicos. Imagen del autor.
Los datos del vino tinto se proyectan sobre los dos componentes principales más sólidos identificados a través de ROBPCA. Imagen del autor.

Este ejemplo demuestra cómo ROBPCA puede resistir valores extremos e identificar fuentes de variación que representen mejor la mayoría de los puntos de datos. Sin embargo, la elección entre PCA robusto y PCA clásico dependerá en última instancia del conjunto de datos y del objetivo del análisis. El PCA robusto tiene la mayor ventaja cuando hay valores extremos debido a errores de medición u otras fuentes de ruido que no están significativamente relacionados con el fenómeno de interés. A menudo se prefiere el PCA clásico cuando los valores extremos representan mediciones válidas, pero esto dependerá del objetivo del análisis. Independientemente de la validez de los valores atípicos, he descubierto que un PCA sólido puede tener una gran ventaja cuando el objetivo del análisis es agrupar los puntos de datos y/o visualizar su distribución utilizando solo los dos o tres componentes principales. Los componentes superiores son especialmente susceptibles a valores atípicos y pueden no ser muy útiles para segmentar la mayoría de los puntos de datos cuando hay valores extremos.

Posibles limitaciones del procedimiento ROBPCA:

Si bien ROBPCA es una herramienta poderosa, existen algunas limitaciones que el lector debe tener en cuenta:

  1. El procedimiento de proyección del paso dos puede llevar mucho tiempo. Si n>500, el paquete ROSPCA recomienda establecer el número máximo de direcciones en 5000. Incluso fijando ndir=5000, el paso de proyección todavía tiene una complejidad temporal O(np + nlog(n)), donde el término nlog(n) es la complejidad temporal para encontrar las estimaciones MCD de ubicación y escala. Esto podría no ser adecuado para n y/o p muy grandes.
  2. Los componentes principales robustos no son una base ortogonal para el conjunto de datos completo, que incluye los puntos de datos periféricos a los que se resistió en la identificación de los componentes robustos. Si se desean predictores no correlacionados, entonces ROBPCA podría no ser el mejor enfoque.

Un algoritmo PCA robusto alternativo:

Existen varios enfoques alternativos para una PCA robusta, incluido un método propuesto por Candes et al. (2011), que busca descomponer la matriz de datos en un componente de baja dimensión y un componente disperso. Este enfoque se implementa en el paquete rpca R. Apliqué este método en el conjunto de datos de vino tinto, pero más del 80 por ciento de las entradas en la matriz dispersa eran distintas de cero. Este bajo nivel de escasez indica que los supuestos del método no se cumplieron correctamente. Si bien este enfoque alternativo no es muy adecuado para los datos del vino tinto, podría ser un algoritmo muy útil para otros conjuntos de datos donde la descomposición supuesta es más apropiada.

Referencias:

M. Hubert, PJ Rousseeuw, K. Vanden Branden, ROBPCA: un nuevo enfoque para el análisis robusto de componentes principales (2005), Tecnometría.

E. Candes, X. Li, Y. Ma, J. Wright, ¿Análisis robusto de componentes principales? (2011), Revista de la ACM (JACM).

T. Reynkens, V. Todorov, M. Hubert, E. Schmitt, T. Verdonck, rospca: PCA disperso y robusto utilizando el algoritmo ROSPCA (2024), Red integral de archivos R (CRAN).

V. Todorov, rrcov: Estimadores robustos escalables con alto punto de averíat (2024), Red integral de archivos R (CRAN).

Sr. Sykulski, rpca: PCA robusto: descomponga una matriz en componentes dispersos y de bajo rango (2015), Red integral de archivos R (CRAN).

P. Cortez, A. Cerdeira, F. Almeida, T. Matos, J. Reis, Calidad del vino (2009), Repositorio de aprendizaje automático de UC Irvine. (CC POR 4.0)