Comparé ?prcomp
y ?princomp
encontré algo sobre el análisis de componentes principales (PCA) en modo Q y modo R. Pero honestamente, no lo entiendo. ¿Alguien puede explicar la diferencia y tal vez incluso explicar cuándo aplicar cuál?
Comparé ?prcomp
y ?princomp
encontré algo sobre el análisis de componentes principales (PCA) en modo Q y modo R. Pero honestamente, no lo entiendo. ¿Alguien puede explicar la diferencia y tal vez incluso explicar cuándo aplicar cuál?
Respuestas:
La diferencia entre ellos no tiene nada que ver con el tipo de PCA que realizan, solo con el método que usan. Como la página de ayuda para prcomp
dice:
El cálculo se realiza mediante una descomposición de valor singular de la matriz de datos (centrada y posiblemente escalada), no mediante el uso
eigen
de la matriz de covarianza. Este es generalmente el método preferido para la precisión numérica.
Por otro lado, la princomp
página de ayuda dice:
El cálculo se realiza utilizando
eigen
la matriz de correlación o covarianza, según lo determinado porcor
. Esto se hace por compatibilidad con el resultado S-PLUS. Un método preferido de cálculo es usarsvd
enx
, como se hace enprcomp
".
Por lo tanto, prcomp
es preferible , aunque en la práctica es poco probable que vea mucha diferencia (por ejemplo, si ejecuta los ejemplos en las páginas de ayuda, debería obtener resultados idénticos).
prcomp
, es un método preferido.
Por lo general, un análisis multivariante (correlaciones de cálculo, la extracción de huellas latentes, etc.) se realiza de columnas de datos que son características o preguntas, - mientras que las unidades de muestra, las filas, son r espondents. Por lo tanto, esta forma se llama análisis de la forma R. A veces, sin embargo, es posible que desee hacer un análisis multivariado de responsents, mientras q reguntas se tratan como unidades de muestreo. Ese sería el análisis de Q way.
No existe una diferencia formal entre los dos, por lo que puede administrar ambos con la misma función, solo transponer sus datos. Hay diferencias, sin embargo, en cuestiones de estandarización e interpretación de resultados.
Esta es una respuesta general: no toco específicamente las funciones R prcomp
y princomp
porque no soy un usuario R y no soy consciente de las posibles diferencias entre ellas.
Una documentación útil y específica de Gregory B. Anderson , titulada, PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCA
ha brindado más información sobre este tema.
Los siguientes dos párrafos fueron extraídos de la introducción:
En R hay dos métodos generales para realizar PCA sin ningún valor perdido: (1) descomposición espectral (modo R [también conocido como descomposición propia]) y (2) descomposición de valores singulares (modo Q; R Development Core Team 2011). Ambos métodos se pueden realizar de forma manual utilizando las funciones eigen (modo R) y svd (modo Q), respectivamente, o se pueden realizar utilizando las muchas funciones de PCA que se encuentran en el paquete de estadísticas y otros paquetes adicionales disponibles. El método de análisis de descomposición espectral examina las covarianzas y correlaciones entre variables, mientras que el método de descomposición de valores singulares examina las covarianzas y correlaciones entre las muestras. Si bien ambos métodos se pueden realizar fácilmente dentro de R, el método de descomposición de valores singulares (es decir,
Este documento se centra en comparar los diferentes métodos para realizar PCA en R y proporciona técnicas de visualización apropiadas para examinar la normalidad dentro del paquete estadístico. Más específicamente, este documento compara seis funciones diferentes creadas para PCA o que pueden usarse para ellas: eigen, princomp, svd, prcomp, PCA y pca. A lo largo del documento, el código R esencial para realizar estas funciones está incrustado dentro del texto usando la fuente Courier New y está codificado por colores usando la técnica proporcionada en Tinn-R ( https://sourceforge.net/projects/tinn-r ). Además, los resultados de las funciones se comparan mediante el procedimiento de simulación para ver si los diferentes métodos difieren en los valores propios, los vectores propios y las puntuaciones proporcionadas por la salida.
A continuación se encuentran los resultados de mi prueba:
> job<-read.table("./job_perf.txt", header=TRUE, sep="")
> pc.cr<-prcomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr1<-princomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr$scale
commun probl_solv logical learn physical appearance
5.039841 1.689540 2.000000 4.655398 3.770700 4.526689
> pc.cr1$scale
commun probl_solv logical learn physical appearance
4.805300 1.610913 1.906925 4.438747 3.595222 4.316028
Datos de prueba:
commun probl_solv logical learn physical appearance
12 52 20 44 48 16
12 57 25 45 50 16
12 54 21 45 50 16
13 52 21 46 51 17
14 54 24 46 51 17
22 52 25 54 58 26
22 56 26 55 58 27
17 52 21 45 52 17
15 53 24 45 53 18
23 54 23 53 57 24
25 54 23 55 58 25