Nota: aunque la respuesta antigua (debajo de la línea) fue aceptada, el comentario de abajo me alertó sobre el hecho de que había interpretado mal la pregunta. Mi respuesta antigua se refiere a comparar PCs en diferentes lotes de observaciones (es decir, filas diferentes). Pero la pregunta en realidad se trata de hacer PCs en diferentes lotes de variables (es decir, columnas diferentes). Ahora abordaré esto.
Para reducir la dimensionalidad, un PCA calcula vectores ortogonales a partir de todo el conjunto de variables. Si no haces el PCA en todas las variables, por definición no estás logrando este objetivo básico. Al hacer PCAs en 5000 variables a la vez y retener 500 PCs de cada uno de los 12 lotes, corres el riesgo de capturar mucha información redundante en tu conjunto final de 6000 PCs. Si hay unos pocos ejes dominantes de variación, estos estarían siendo capturados una y otra vez en cada uno de los 12 lotes. Podrías comprobar en qué medida esto es cierto haciendo otro PCA en tus 6000 PCs agregados.
En cuanto a soluciones mejores, no soy un experto, pero aquí hay un par de ideas. (i) Hay métodos de PCA Incremental específicamente diseñados para esto, y creo que funcionan cargando algunas filas en memoria a la vez. (ii) Como eso implica, creo que necesitas usar todas las variables (columnas) para hacer el PCA, pero no necesitas usar todas las observaciones (filas). Entonces una opción simple es hacer el PCA en un subconjunto de las observaciones y luego aplicarlos al resto del conjunto de datos.
Tienes razón en que este es un problema: basado en cómo se ha hecho, los PCs no pueden ser comparados entre sí a través de lotes [de observaciones].
Esto se debe principalmente a que incluso pequeñas diferencias en la estructura de covarianza entre lotes llevarán a identificar vectores ortogonales diferentes. En otras palabras, ¡PC1 en el lote 1 y PC1 en el lote 2 representan cosas diferentes! Si examinas las cargas de algunos de los PCs a través de los lotes, verás estas diferencias. Pero incluso si la estructura de covarianza fuera idéntica por alguna razón mágica, un PC podría tener signos de coeficientes invertidos en un lote diferente porque estos son arbitrarios.
Lo más simple sería hacer un PCA en todos los datos simultáneamente. Si eso representa un desafío computacional demasiado grande, puedes hacerlo en un subconjunto aleatorio de los datos y luego aplicar ese PCA al resto de los datos. Esto se ha discutido en varias preguntas en este sitio, por ejemplo ¿Cómo se aplica PCA a nuevos datos?
Por cierto, observo que estás aplicando un PCA a datos binarios. Aunque se puede hacer, hay una discusión valiosa aquí sobre lo que implica y posibles alternativas mejores:
Realizando análisis de componentes principales o análisis factorial en datos binarios
¿Se puede aplicar el análisis de componentes principales a conjuntos de datos que contienen una mezcla de variables continuas y categóricas?