Volver a la lista

Reducción de dimensionalidad: ¿Qué conserva y qué descarta cada uno de PCA, t-SNE y UMAP?

¿Cómo desplegar un espacio de 2000 dimensiones celulares en un mapa bidimensional? Se realiza un ejercicio práctico con el conjunto de datos PBMC 3k para explorar la descomposición de valores propios de PCA, cómo t-SNE y UMAP manejan respectivamente las estructuras locales y globales, y por qué se aplica primero PCA.

Intermedio
|
20min
|
Verificado (2026-07-24)
dimensionality reductionPCAUMAPt-SNE
Progreso0/120 (0%)

Para visualizar 2000 dimensiones a simple vista

En S28, se representaron las células mediante 2.000 HVG (genes de alta variabilidad). Cada célula es un punto en un espacio de 2.000 dimensiones. En este espacio, las células similares se agrupan cerca y las diferentes se alejan, formando una estructura. El problema es que los seres humanos no pueden visualizar 2.000 dimensiones. Es necesario comprimir esta estructura a un mapa bidimensional sin perder dicha estructura.

Tres herramientas — PCA · t-SNE · UMAP — realizan esta compresión de manera diferente. Además, cada una conserva y descarta aspectos distintos. No conocer estas diferencias lleva comúnmente al error de interpretar erróneamente la distancia entre dos clústeres en UMAP como un significado biológico. El objetivo de esta sección es capturar con precisión esas diferencias.

PCA — El eje que captura la mayor varianza

El análisis de componentes principales (PCA) encuentra secuencialmente las direcciones en las que los datos se dispersan más ampliamente (ejes de máxima varianza). Matemáticamente, son los autovectores de la matriz de covarianza.

C=1n1XX,Cvk=λkvk\mathbf{C} = \frac{1}{n-1}\mathbf{X}^\top \mathbf{X}, \qquad \mathbf{C}\mathbf{v}_k = \lambda_k \mathbf{v}_k

Si se seleccionan los ejes (componentes principales) en orden decreciente de sus autovalores λk\lambda_k, se puede capturar la mayor parte de la varianza de los datos con pocos ejes. Normalmente, se comprime las 2.000 dimensiones a los 50 primeros PC.

PCA es lineal. Captura bien las estructuras rectas, pero no puede desplegar variedades curvadas (casos en los que el estado celular cambia siguiendo una curva). Por ello, PCA se utiliza como paso de eliminación de ruido + precompresión dimensional, no como el mapa final. Al calcular la distancia entre células en 50 PC, se obtiene menos ruido y un cálculo mucho más rápido que con el original de 2.000 dimensiones. Esto sirve como entrada común para los grafos kNN, el clustering y UMAP posteriores.

Comprensión intuitiva

Si las células están aproximadamente alineadas a lo largo de una recta, PC1 (el primer autovector) captura la dirección de esa recta y absorbe la mayor parte de la varianza. Los autovalores de los ejes restantes pueden ser pequeños. Bajo el supuesto de que "varianza = información", PCA consiste simplemente en conservar solo los ejes con autovalores grandes.

t-SNE y UMAP — Preservación de vecinos locales

Hemos llegado a 50 dimensiones mediante PCA, pero aún no podemos visualizarlas. Aquí entran t-SNE y UMAP como métodos no lineales, compartiendo una filosofía común: mantener las células cercanas en el espacio original también cerca en 2D.

t-SNE expresa las relaciones de vecindad del espacio original mediante probabilidades. Define la probabilidad de que la célula ii considere a jj como vecina usando una distribución gaussiana y, en 2D, usa una distribución t con colas pesadas, minimizando luego la divergencia KL entre ambas distribuciones. La perplejidad (perplexity) es el parámetro clave que determina "cuántos vecinos considerar".

UMAP se basa en la teoría de variedades. Asume que los datos residen sobre una variedad de baja dimensión, construye un grafo difuso a partir de la estructura de vecinos locales y encuentra una disposición en 2D que preserve su topología. Es más rápido que t-SNE, preserva relativamente mejor la estructura global y es robusto para grandes conjuntos de células. Hoy en día, UMAP es el estándar para mapas de scRNA-seq.

Las diferencias de carácter entre ambos métodos se resumen a continuación:

ÍtemPCAt-SNEUMAP
Lineal/No linealLinealNo linealNo lineal
Objetivo preservadoVarianza globalVecinos localesLocal + débil global
VelocidadRápidoLentoRápido
UsoReducción de dimensionalidad y eliminación de ruidoVisualizaciónVisualización (estándar)

Advertencia crítica — No confíe en las distancias

La interpretación errónea más común de t-SNE y UMAP es leer la distancia entre clústeres como similitud biológica. Estos métodos distorsionan las distancias globales para preservar los vecinos locales. En UMAP, dos clústeres pueden parecer alejados, pero en realidad podrían corresponder a tipos celulares cercanos. Confiemos en la agrupación (qué células se agrupan juntas), pero no interpretemos la separación entre grupos. Solo con seguir esta regla se evitan las críticas frecuentes en la revisión de artículos científicos.

Práctica con Scanpy (PBMC 3k)

Continuamos desde la matriz de HVG de S28.

python
import scanpy as sc
# adata = normalización de S28 + selección de HVG completadas
# (Opcional) PCA después del escalado
sc.pp.scale(adata, max_value=10)
sc.tl.pca(adata, n_comps=50, svd_solver="arpack")
sc.pl.pca_variance_ratio(adata, n_pcs=50) # Determinar el número útil de PC mediante el codo
# Grafo kNN sobre PCA → UMAP
sc.pp.neighbors(adata, n_neighbors=15, n_pcs=40)
sc.tl.umap(adata)
sc.pl.umap(adata, color=["CST3", "NKG7", "MS4A1"]) # Comprobar la estructura mediante marcadores

El número de componentes principales útiles se determina en el codo de pca_variance_ratio, normalmente entre 30 y 50. El grafo kNN creado por neighbors se utiliza tanto para UMAP como para el agrupamiento de Leiden de la siguiente unidad S30; este grafo es la columna vertebral del análisis unicelular.

Si lo desea, podemos comparar también con t-SNE.

python
sc.tl.tsne(adata, n_pcs=40, perplexity=30)
sc.pl.tsne(adata, color="CST3")

Al cambiar la perplexity a 5, 30 y 50, la forma del mapa cambia significativamente. Debido a esta sensibilidad, se prefiere UMAP por su buena reproducibilidad.

Mapeo de CS

  • Descomposición en valores propios / SVD: PCA es la descomposición en valores propios de la matriz de covarianza (o SVD de la matriz de datos). Es fundamental en álgebra lineal y una herramienta clave para sistemas de recomendación y compresión de imágenes.
  • Aprendizaje de variedades: UMAP preserva la topología bajo el supuesto de que los datos de alta dimensión residen en una variedad de baja dimensión. Pertenece a la misma estirpe que Isomap y LLE.
  • Grafo kNN: El grafo de vecinos cercanos creado por neighbors sirve como entrada para algoritmos de grafos (detección de comunidades S30). Esto se conecta directamente con el módulo de grafos de DryBench.
  • Divergencia KL: La función objetivo de t-SNE consiste en minimizar la divergencia KL entre dos distribuciones de probabilidad, lo que se relaciona directamente con la teoría de la información.

Defectos comunes

  • Interpretar las distancias entre clústeres de UMAP con significado biológico: Es el error más frecuente. Confiemos en los aglomerados, pero no interpretemos los espacios vacíos.
  • Saltarse PCA y aplicar UMAP directamente sobre los 2000 dimensiones originales: Introduce mucho ruido y es lento. La precompresión mediante PCA es el estándar.
  • Elegir arbitrariamente el número de componentes principales (PC): Demasiado pocos provoca pérdida de estructura; demasiados introduce ruido. Se determina mediante el codo en la proporción de varianza explicada.
  • Sacar conclusiones basándose solo en perplexity o n_neighbors: Los parámetros son sensibles. Verifiquemos la estabilidad con varios valores.

Para profundizar más

El texto es una reconstrucción directa realizada por BPD. Para un estudio más profundo, utilicemos los siguientes recursos canónicos:

  • Libro web gratuito de referencia: Single-cell best practices (sc-best-practices.org) — El capítulo sobre reducción de dimensionalidad detalla las trampas específicas de cada método.
  • Artículo original (UMAP): McInnes, Healy, Melville (2018), UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction, arXiv:1802.03426.
  • Artículo original (t-SNE): van der Maaten & Hinton (2008), Visualizing Data using t-SNE, JMLR 9:2579.
  • Recurso intuitivo: Understanding UMAP (pair-code.github.io/understanding-umap) — Muestra de forma interactiva cómo los parámetros modifican el mapa.

Las células han revelado una estructura sobre el mapa 2D. Sin embargo, aún no sabemos "qué tipo de célula es este conglomerado". En el siguiente episodio S30, ejecutaremos la agrupación de Leiden en el gráfico kNN y asignaremos nombres a los tipos celulares utilizando los genes marcadores de cada clúster.

💬 Preguntas y comentarios

0 comentarios

Puedes publicar sin iniciar sesión. Los comentarios de invitados no pueden editarse ni eliminarse después.

0/2000

Cargando...