Como parte de una tarea universitaria, tengo que llevar a cabo el preprocesamiento de datos en un conjunto de datos sin procesar bastante grande, multivariante (> 10). No soy un estadístico en ningún sentido de la palabra, así que estoy un poco confundido sobre lo que está sucediendo. Disculpas de antemano por lo que probablemente sea una pregunta ridículamente simple: mi cabeza da vueltas después de mirar varias respuestas y tratar de leer las estadísticas.
He leído eso:
- PCA me permite reducir la dimensionalidad de mis datos
- Lo hace fusionando / eliminando atributos / dimensiones que se correlacionan mucho (y por lo tanto son un poco innecesarias)
- Lo hace al encontrar vectores propios en los datos de covarianza (gracias a un buen tutorial que seguí para aprender esto)
Lo cual es genial.
Sin embargo, me cuesta mucho ver cómo puedo aplicar esto prácticamente a mis datos. Por ejemplo (este no es el conjunto de datos que usaré, sino un intento de un ejemplo decente con el que la gente pueda trabajar), si tuviera un conjunto de datos con algo como ...
PersonID Sex Age Range Hours Studied Hours Spent on TV Test Score Coursework Score
1 1 2 5 7 60 75
2 1 3 8 2 70 85
3 2 2 6 6 50 77
... ... ... ... ... ... ...
No estoy muy seguro de cómo interpretaría los resultados.
La mayoría de los tutoriales que he visto en línea parecen darme una visión muy matemática de PCA. Investigué un poco y lo seguí, pero todavía no estoy completamente seguro de lo que esto significa para mí, que solo está tratando de extraer algún tipo de significado de este montón de datos que tengo frente a mí.
Simplemente realizar PCA en mis datos (usando un paquete de estadísticas) escupe una matriz de números NxN (donde N es el número de dimensiones originales), que es completamente griego para mí.
¿Cómo puedo hacer PCA y tomar lo que obtengo de una manera que luego pueda poner en inglés simple en términos de las dimensiones originales?
Respuestas:
Las páginas 13-20 del tutorial que publicó proporcionan una explicación geométrica muy intuitiva de cómo se utiliza PCA para la reducción de la dimensionalidad.
La matriz de 13x13 que menciona es probablemente la matriz de "carga" o "rotación" (supongo que sus datos originales tenían 13 variables?) Que se pueden interpretar en una de dos formas (equivalentes):
Las (valores absolutos de) las columnas de su matriz de carga describen cuánto "contribuye" proporcionalmente cada variable a cada componente.
La matriz de rotación gira sus datos sobre la base definida por su matriz de rotación. Entonces, si tiene datos en 2-D y multiplica sus datos por su matriz de rotación, su nuevo eje X será el primer componente principal y el nuevo eje Y será el segundo componente principal.
EDITAR: esta pregunta se hace mucho, así que voy a presentar una explicación visual detallada de lo que sucede cuando usamos PCA para reducir la dimensionalidad.
Considere una muestra de 50 puntos generados a partir de y = x + ruido. El primer componente principal se ubicará a lo largo de la línea y = x y el segundo componente se ubicará a lo largo de la línea y = -x, como se muestra a continuación.
La relación de aspecto lo estropea un poco, pero confío en que los componentes son ortogonales. La aplicación de PCA rotará nuestros datos para que los componentes se conviertan en los ejes xey:
Los datos antes de la transformación son círculos, los datos después son cruces. En este ejemplo en particular, los datos no se giraron tanto como se voltearon a través de la línea y = -2x, pero podríamos haber invertido con la misma facilidad el eje y para que esto sea realmente una rotación sin pérdida de generalidad como se describe aquí .
La mayor parte de la varianza, es decir, la información en los datos, se extiende a lo largo del primer componente principal (que está representado por el eje x después de que hemos transformado los datos). Hay una pequeña variación a lo largo del segundo componente (ahora el eje y), pero podemos eliminar este componente por completo sin una pérdida significativa de información . Entonces, para colapsar esto de dos dimensiones a 1, dejamos que la proyección de los datos en el primer componente principal describa completamente nuestros datos.
Podemos recuperar parcialmente nuestros datos originales al rotarlos (ok, proyectarlos) nuevamente sobre los ejes originales.
Los puntos azules oscuros son los datos "recuperados", mientras que los puntos vacíos son los datos originales. Como puede ver, hemos perdido parte de la información de los datos originales, específicamente la variación en la dirección del segundo componente principal. Pero para muchos propósitos, esta descripción comprimida (usando la proyección a lo largo del primer componente principal) puede satisfacer nuestras necesidades.
Aquí está el código que usé para generar este ejemplo en caso de que quiera replicarlo usted mismo. Si reduce la varianza del componente de ruido en la segunda línea, la cantidad de datos perdidos por la transformación de PCA también disminuirá porque los datos convergerán en el primer componente principal:
fuente
prcomp
donde la matriz de cargas es solo la matriz cuyas columnas son vectores propios unitarios. Creo que está siendo innecesariamente técnico, y en la mayoría de los casos creo que estos términos se usan indistintamente.Yo diría que su pregunta es una pregunta calificada no solo en
cross validated
sino también enstack overflow
, donde se le indicará cómo implementar la reducción de dimensiones en R (... etc.) para ayudarlo a identificar efectivamente qué columna / variable contribuye mejor a la varianza de todo el conjunto de datos.El PCA (Análisis de componentes principales) tiene la misma funcionalidad que SVD (Descomposición de valor singular), y en realidad son exactamente el mismo proceso después de aplicar
scale
/ la transformación z al conjunto de datos.Aquí hay algunos recursos que puede recorrer en media hora para obtener una mejor comprensión.
No soy capaz de dar una solución de codificación vívida para ayudarlo a comprender cómo implementar svd y qué hace cada componente, pero la gente es increíble, aquí hay algunas publicaciones muy informativas que solía ponerme al día con el lado de la aplicación de SVD, incluso si saber cómo calcular a mano un problema 3by3 SVD .. :)
fuente
En PCA desea describir los datos en menos variables. Puede obtener la misma información en menos variables que con todas las variables. Por ejemplo, las horas estudiadas y el puntaje de la prueba podrían estar correlacionados y no tenemos que incluir ambos.
En su ejemplo, supongamos que su objetivo es medir qué tan "bueno" es un estudiante / persona. Mirando todas estas variables, puede ser confuso ver cómo hacer esto. PCA nos permite ver claramente qué estudiantes son buenos / malos.
Si el primer componente principal explica la mayor parte de la variación de los datos, entonces esto es todo lo que necesitamos. Encontraría la correlación entre este componente y todas las variables. Las correlaciones "grandes" significan variables importantes. Por ejemplo, el primer componente podría estar fuertemente correlacionado con las horas estudiadas y el puntaje de la prueba. Entonces, los valores altos del primer componente indican valores altos de tiempo de estudio y puntaje de prueba.
fuente