Elegir el número de componentes principales para retener
10
Un método que me sugirieron es mirar un diagrama de pantalla y verificar el "codo" para determinar la cantidad correcta de PC a usar. Pero si el gráfico no está claro, ¿tiene R un cálculo para determinar el número?
No que yo sepa. Primero, si se refiere al "valor propio por encima de 1 regla de oro" o la llamada regla de Kayser, probablemente encontrará la cantidad de PC que satisfacen esto (tenga en cuenta que esto generalmente sobreestima la cantidad de dimensiones) mirando más precisamente en su trama de pantalla. Segundo, el análisis paralelo es una mejor manera de determinar el número de componentes; consulte el paquete psyo psychen R, y los programas SPSS, SAS y MATLAB para determinar la cantidad de componentes y factores. Utilizando el análisis paralelo y la prueba MAP de Velicer de manera más general.
chl
Respuestas:
10
El siguiente artículo: La retención de componentes en el análisis de componentes principales con la aplicación de datos de microarrays de ADNc por Cangelosi y Goriely ofrece una visión general bastante agradable de la regla general estándar para detectar el número de componentes en un estudio. (Gráfico de pantalla, Proporción de la varianza total explicada, Regla de valor propio promedio, Diagrama de valor propio log, etc.) La mayoría de ellos son bastante fáciles de implementar en R.
En general, si su diagrama de pantalla no es muy concluyente, entonces solo necesita "elegir su veneno". No hay ningún derecho absoluto o incorrecto para ningún dato, ya que en realidad la cantidad de PC que se debe utilizar depende de su comprensión del problema. El único conjunto de datos que puede "realmente" conocer la dimensionalidad es el que construyó usted mismo. :-) Los componentes principales al final del día proporcionan la descomposición óptima de los datos bajo una métrica RSS (donde, como subproducto, obtiene que cada componente represente un modo principal de variación) e incluye o excluye un número dado de componentes dicta tu percepción sobre la dimensionalidad de tu problema.
Como cuestión de preferencia personal, me gusta el enfoque de Minka sobre esta elección automática de dimensionalidad para PCA que se basa en una interpretación probabilística de PCA pero, nuevamente, ingresa al juego de tratar de modelar la probabilidad de sus datos para una dimensionalidad dada. (Link proporciona el código de Matlab si desea seguir este razonamiento).
Intenta entender más tus datos. p.ej. ¿Realmente cree que el 99.99% de la variación de su conjunto de datos se debe a las covariables de su modelo? Si no es probable, probablemente no necesite incluir dimensiones que exhiban una proporción tan pequeña de la varianza total. ¿Crees que en realidad un componente refleja la variación por debajo de un umbral de diferencias notables? Eso probablemente significa que hay poca relevancia en incluir ese componente en su análisis.
En cualquier caso, buena suerte y verifique sus datos cuidadosamente. (Trazarlos también hace maravillas).
Me pregunto si el enfoque de Minka se aplica en R por ahora. Digamos que las PC más importantes se han determinado en un estudio mediante diferentes métodos, sabemos que estas deberían ser la parte de señal de los datos. ¿Sabe por casualidad si hay alguna limitación en el% de varianza que explican estas PC, que a continuación se considera un No-Go para un análisis posterior? Cualquier referencia será muy apreciada.
doctorado
6
Ha habido un trabajo posterior muy agradable sobre este problema en los últimos años desde que esta pregunta se hizo y respondió originalmente. Recomiendo encarecidamente el siguiente documento de Gavish y Donoho: El umbral óptimo óptimo para valores singulares es 4 / sqrt (3)
Su resultado se basa en el análisis asintótico (es decir, hay una solución óptima bien definida a medida que su matriz de datos se vuelve infinitamente grande), pero muestran resultados numéricos impresionantes que muestran que el procedimiento asintóticamente óptimo funciona para conjuntos de datos pequeños y de tamaño realista, incluso bajo diferentes ruidos. modelos.
σn×n
λ=4σn−−√3–√
También explican el caso no cuadrado en el documento. Aquí tienen un buen suplemento de código (en MATLAB), pero los algoritmos serían fáciles de implementar en R o en cualquier otro lugar: https://purl.stanford.edu/vg705qn9070
Advertencias:
Si le faltan datos, no estoy seguro de que esto funcione
Si cada característica en su conjunto de datos tiene diferentes magnitudes de ruido, no estoy seguro de que esto funcione (aunque el blanqueamiento probablemente podría solucionar esto bajo ciertas suposiciones)
Sería interesante ver si resultados similares son válidos para otras factorizaciones de matriz de bajo rango (por ejemplo, factorización de matriz no negativa).
+1, wow, este artículo se ve extremadamente interesante. Muchas gracias por mencionarlo.
ameba
4
El problema con el criterio de Kaiser (todos los valores propios superiores a uno) es que el número de factores extraídos suele ser aproximadamente un tercio del número de elementos o escalas en la batería, independientemente de si muchos de los factores adicionales son ruido. El análisis paralelo y el criterio de pantalla generalmente son procedimientos más precisos para determinar la cantidad de factores a extraer (de acuerdo con los textos clásicos de Harmon y Ledyard Tucker, así como el trabajo más reciente de Wayne Velicer).
psy
opsych
en R, y los programas SPSS, SAS y MATLAB para determinar la cantidad de componentes y factores. Utilizando el análisis paralelo y la prueba MAP de Velicer de manera más general.Respuestas:
El siguiente artículo: La retención de componentes en el análisis de componentes principales con la aplicación de datos de microarrays de ADNc por Cangelosi y Goriely ofrece una visión general bastante agradable de la regla general estándar para detectar el número de componentes en un estudio. (Gráfico de pantalla, Proporción de la varianza total explicada, Regla de valor propio promedio, Diagrama de valor propio log, etc.) La mayoría de ellos son bastante fáciles de implementar en R.
En general, si su diagrama de pantalla no es muy concluyente, entonces solo necesita "elegir su veneno". No hay ningún derecho absoluto o incorrecto para ningún dato, ya que en realidad la cantidad de PC que se debe utilizar depende de su comprensión del problema. El único conjunto de datos que puede "realmente" conocer la dimensionalidad es el que construyó usted mismo. :-) Los componentes principales al final del día proporcionan la descomposición óptima de los datos bajo una métrica RSS (donde, como subproducto, obtiene que cada componente represente un modo principal de variación) e incluye o excluye un número dado de componentes dicta tu percepción sobre la dimensionalidad de tu problema.
Como cuestión de preferencia personal, me gusta el enfoque de Minka sobre esta elección automática de dimensionalidad para PCA que se basa en una interpretación probabilística de PCA pero, nuevamente, ingresa al juego de tratar de modelar la probabilidad de sus datos para una dimensionalidad dada. (Link proporciona el código de Matlab si desea seguir este razonamiento).
Intenta entender más tus datos. p.ej. ¿Realmente cree que el 99.99% de la variación de su conjunto de datos se debe a las covariables de su modelo? Si no es probable, probablemente no necesite incluir dimensiones que exhiban una proporción tan pequeña de la varianza total. ¿Crees que en realidad un componente refleja la variación por debajo de un umbral de diferencias notables? Eso probablemente significa que hay poca relevancia en incluir ese componente en su análisis.
En cualquier caso, buena suerte y verifique sus datos cuidadosamente. (Trazarlos también hace maravillas).
fuente
Ha habido un trabajo posterior muy agradable sobre este problema en los últimos años desde que esta pregunta se hizo y respondió originalmente. Recomiendo encarecidamente el siguiente documento de Gavish y Donoho: El umbral óptimo óptimo para valores singulares es 4 / sqrt (3)
Su resultado se basa en el análisis asintótico (es decir, hay una solución óptima bien definida a medida que su matriz de datos se vuelve infinitamente grande), pero muestran resultados numéricos impresionantes que muestran que el procedimiento asintóticamente óptimo funciona para conjuntos de datos pequeños y de tamaño realista, incluso bajo diferentes ruidos. modelos.
También explican el caso no cuadrado en el documento. Aquí tienen un buen suplemento de código (en MATLAB), pero los algoritmos serían fáciles de implementar en R o en cualquier otro lugar: https://purl.stanford.edu/vg705qn9070
Advertencias:
fuente
El problema con el criterio de Kaiser (todos los valores propios superiores a uno) es que el número de factores extraídos suele ser aproximadamente un tercio del número de elementos o escalas en la batería, independientemente de si muchos de los factores adicionales son ruido. El análisis paralelo y el criterio de pantalla generalmente son procedimientos más precisos para determinar la cantidad de factores a extraer (de acuerdo con los textos clásicos de Harmon y Ledyard Tucker, así como el trabajo más reciente de Wayne Velicer).
fuente