Dans le cadre d'une mission universitaire, je dois effectuer un prétraitement des données sur un ensemble de données brutes assez vaste et multivarié (> 10). Je ne suis pas un statisticien dans aucun sens du mot, donc je suis un peu confus quant à ce qui se passe. Je m'excuse d'avance pour ce qui est probablement une question ridiculement simple - ma tête tourne après avoir regardé diverses réponses et essayé de parcourir les statistiques.
J'ai lu ça:
- PCA me permet de réduire la dimensionnalité de mes données
- Il le fait en fusionnant / supprimant des attributs / dimensions qui corrèlent beaucoup (et sont donc un peu inutiles)
- Il le fait en trouvant des vecteurs propres sur les données de covariance (grâce à un joli tutoriel que j'ai suivi pour l'apprendre)
Qui est genial.
Cependant, j'ai vraiment du mal à voir comment je peux l'appliquer pratiquement à mes données. Par exemple (ce n'est pas l'ensemble de données que j'utiliserai, mais une tentative d'exemple décent avec lequel les gens peuvent travailler), si je devais avoir un ensemble de données avec quelque chose comme ...
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
... ... ... ... ... ... ...
Je ne sais pas trop comment j'interpréterais les résultats.
La plupart des didacticiels que j'ai vus en ligne semblent me donner une vision très mathématique de l'ACP. J'ai fait des recherches à ce sujet et je les ai suivies - mais je ne suis pas encore tout à fait sûr de ce que cela signifie pour moi, qui essaie simplement d'extraire une certaine forme de sens de cette pile de données que j'ai devant moi.
Simplement effectuer PCA sur mes données (en utilisant un package de statistiques) crache une matrice de nombres NxN (où N est le nombre de dimensions originales), ce qui est entièrement grec pour moi.
Comment puis-je faire de l'APC et prendre ce que j'obtiens d'une manière que je peux ensuite mettre en anglais simple en termes de dimensions d'origine?
Réponses:
Les pages 13 à 20 du didacticiel que vous avez publié fournissent une explication géométrique très intuitive de la façon dont PCA est utilisé pour la réduction de dimensionnalité.
La matrice 13x13 que vous mentionnez est probablement la matrice de «chargement» ou de «rotation» (je suppose que vos données d'origine comportaient 13 variables?) Qui peuvent être interprétées de deux manières (équivalentes):
Les colonnes (valeurs absolues des) de votre matrice de chargement décrivent dans quelle mesure chaque variable «contribue» proportionnellement à chaque composant.
La matrice de rotation fait pivoter vos données sur la base définie par votre matrice de rotation. Donc, si vous avez des données 2D et multipliez vos données par votre matrice de rotation, votre nouvel axe X sera le premier composant principal et le nouvel axe Y sera le deuxième composant principal.
EDIT: Cette question est souvent posée, donc je vais simplement présenter une explication visuelle détaillée de ce qui se passe lorsque nous utilisons l'ACP pour la réduction de la dimensionnalité.
Considérons un échantillon de 50 points générés à partir de y = x + bruit. Le premier composant principal se trouvera le long de la ligne y = x et le deuxième composant se trouvera le long de la ligne y = -x, comme indiqué ci-dessous.
Le rapport d'aspect gâche un peu, mais croyez-moi, les composants sont orthogonaux. L'application de PCA fera pivoter nos données afin que les composants deviennent les axes x et y:
Les données avant la transformation sont des cercles, les données après sont des croix. Dans cet exemple particulier, les données n'ont pas été tournées autant qu'elles ont été inversées sur la ligne y = -2x, mais nous aurions pu tout aussi facilement inverser l'axe y pour en faire une rotation sans perte de généralité comme décrit ici .
La majeure partie de la variance, c'est-à-dire les informations contenues dans les données, est répartie le long de la première composante principale (qui est représentée par l'axe des x après avoir transformé les données). Il y a une petite variation le long du deuxième composant (maintenant l'axe des y), mais nous pouvons supprimer ce composant entièrement sans perte significative d'informations . Donc, pour réduire cela de deux dimensions en 1, nous avons laissé la projection des données sur le premier composant principal décrire complètement nos données.
Nous pouvons récupérer partiellement nos données d'origine en les faisant pivoter (ok, en les projetant) sur les axes d'origine.
Les points bleu foncé sont les données "récupérées", tandis que les points vides sont les données d'origine. Comme vous pouvez le voir, nous avons perdu une partie des informations des données d'origine, en particulier la variance dans la direction de la deuxième composante principale. Mais à de nombreuses fins, cette description compressée (en utilisant la projection le long du premier composant principal) peut répondre à nos besoins.
Voici le code que j'ai utilisé pour générer cet exemple au cas où vous voudriez le répliquer vous-même. Si vous réduisez la variance de la composante de bruit sur la deuxième ligne, la quantité de données perdues par la transformation PCA diminuera également car les données convergeront vers la première composante principale:
la source
prcomp
où la matrice de charges est juste la matrice dont les colonnes sont des vecteurs propres unitaires. Je pense que vous êtes inutilement technique et, dans la plupart des cas, je pense que ces termes sont utilisés de manière interchangeable.Je dirais que votre question est une question qualifiée non seulement dans
cross validated
mais aussi dansstack overflow
, où l'on vous dira comment mettre en œuvre la réduction de dimension dans R (.. etc.) pour vous aider efficacement à identifier quelle colonne / variable contribue le mieux à la variance de l'ensemble de données.La PCA (analyse en composantes principales) a les mêmes fonctionnalités que la SVD (décomposition en valeurs singulières), et elles sont en fait exactement le même processus après avoir appliqué
scale
/ la transformation z à l'ensemble de données.Voici quelques ressources que vous pouvez parcourir en une demi-heure pour mieux comprendre.
Je ne suis pas capable de donner une solution de codage vivante pour vous aider à comprendre comment implémenter svd et ce que fait chaque composant, mais les gens sont géniaux, voici quelques articles très informatifs que j'ai utilisés pour rattraper le côté application de SVD même si je savoir comment calculer un problème SVD 3by3 .. :)
la source
Dans PCA, vous voulez décrire les données en moins de variables. Vous pouvez obtenir les mêmes informations dans moins de variables qu'avec toutes les variables. Par exemple, les heures étudiées et le score au test peuvent être corrélés et nous n'avons pas à inclure les deux.
Dans votre exemple, disons que votre objectif est de mesurer la «qualité» d'un étudiant / d'une personne. En regardant toutes ces variables, il peut être déroutant de voir comment procéder. L'ACP nous permet de voir clairement quels élèves sont bons / mauvais.
Si le premier composant principal explique la majeure partie de la variation des données, alors c'est tout ce dont nous avons besoin. Vous trouveriez la corrélation entre ce composant et toutes les variables. Les «grandes» corrélations signifient des variables importantes. Par exemple, la première composante pourrait être fortement corrélée avec les heures étudiées et le score au test. Des valeurs élevées du premier composant indiquent donc des valeurs élevées de temps d'étude et de score de test.
la source