Une méthode qui m'a été suggérée est de regarder un tracé d'éboulis et de vérifier le «coude» pour déterminer le nombre correct de PC à utiliser. Mais si l'intrigue n'est pas claire, R a-t-il un calcul pour déterminer le nombre?
fit <- princomp(mydata, cor=TRUE)
psy
oupsych
dans les programmes R et SPSS, SAS et MATLAB pour déterminer le nombre de composants et de facteurs. Utilisation de l'analyse parallèle et du test MAP de Velicer plus généralement.Réponses:
L'article suivant: Rétention des composants dans l'analyse des composants principaux avec application aux données de puces à ADNc par Cangelosi et Goriely donne un assez bon aperçu de la règle empirique standard pour détecter le nombre de composants dans une étude. (Tracé d'éboulis, Proportion de la variance totale expliquée, Règle des valeurs propres moyennes, diagramme Log-valeurs propres, etc.) La plupart d'entre elles sont assez simples à mettre en œuvre dans R.
En général, si votre intrigue n'est pas concluante, il vous suffit de "choisir votre poison". Il n'y a pas de bien ou de mal absolu pour les données car, en réalité, le nombre de PC à utiliser dépend en fait de votre compréhension du problème. Le seul ensemble de données dont vous pouvez "vraiment" connaître la dimensionnalité est celui que vous avez construit vous-même. :-) Les composants principaux à la fin de la journée fournissent la décomposition optimale des données sous une métrique RSS (où en tant que sous-produit, vous obtenez que chaque composant représente un mode de variation principal) et en incluant ou en excluant un nombre donné de composants dicte votre perception de la dimensionnalité de votre problème.
Par préférence personnelle, j'aime l'approche de Minka sur ce choix automatique de dimensionnalité pour PCA qui basée sur une interprétation probabiliste de PCA mais là encore, vous vous lancez dans le jeu d'essayer de modéliser la probabilité de vos données pour une dimensionnalité donnée. (Le lien fournit le code Matlab si vous souhaitez suivre cette justification.)
Essayez de mieux comprendre vos données. par exemple. Croyez-vous vraiment que 99,99% de la variation de votre ensemble de données est due aux covariables de votre modèle? Sinon, vous n'avez probablement pas besoin d'inclure des dimensions qui présentent une si petite proportion de la variance totale. Pensez-vous qu'en réalité une composante reflète une variation inférieure à un seuil de différences tout simplement perceptibles? Encore une fois, cela signifie probablement qu'il est peu pertinent d'inclure cette composante dans votre analyse.
Dans tous les cas, bonne chance et vérifiez attentivement vos données. (Les tracer fait aussi des merveilles.)
la source
Il y a eu de très bons travaux ultérieurs sur ce problème au cours des dernières années depuis que cette question a été posée et répondue à l'origine. Je recommande fortement l'article suivant de Gavish et Donoho: Le seuil dur optimal pour les valeurs singulières est de 4 / sqrt (3)
Leur résultat est basé sur une analyse asymptotique (c'est-à-dire qu'il existe une solution optimale bien définie à mesure que votre matrice de données devient infiniment grande), mais ils montrent des résultats numériques impressionnants qui montrent que la procédure asymptotiquement optimale fonctionne pour les petits ensembles de données de taille réaliste, même sous différents bruits des modèles.
Essentiellement, la procédure optimale se résume à estimer le bruit, , ajouté à chaque élément de la matrice. Sur cette base, vous calculez un seuil et supprimez les composants principaux dont la valeur singulière tombe en dessous du seuil. Pour une matrice carrée , la constante de proportionnalité 4 / sqrt (3) apparaît comme suggéré dans le titre:n × nσ n×n
Ils expliquent également le cas non carré dans le document. Ils ont un bon complément de code (dans MATLAB) ici, mais les algorithmes seraient faciles à implémenter dans R ou n'importe où ailleurs: https://purl.stanford.edu/vg705qn9070
Mises en garde:
la source
Le problème avec le critère de Kaiser (toutes les valeurs propres supérieures à un) est que le nombre de facteurs extraits est généralement environ un tiers du nombre d'éléments ou d'échelles dans la batterie, indépendamment du fait que de nombreux facteurs supplémentaires soient du bruit. L'analyse parallèle et le critère éboulis sont généralement des procédures plus précises pour déterminer le nombre de facteurs à extraire (selon les textes classiques de Harmon et Ledyard Tucker ainsi que des travaux plus récents de Wayne Velicer.
la source