Supposons que j'ai un jeu de données ponctuelles 2D et que je veuille détecter les directions de tous les maxima locaux de variance dans les données, par exemple:
L'ACP n'aide pas dans cette situation car il s'agit d'une décomposition orthogonale et ne peut donc pas détecter les deux lignes que j'ai indiquées en bleu, sa sortie peut plutôt ressembler à celle indiquée par les lignes vertes.
Veuillez recommander toute technique qui pourrait convenir à cet effet. Merci.
Réponses:
L'analyse indépendante des composants devrait être en mesure de vous fournir la bonne solution. Il est capable de décomposer des composants non orthogonaux (comme dans votre cas) en supposant que vos mesures résultent d'un mélange de variables statistiquement indépendantes.
Il existe de nombreux bons didacticiels sur Internet et quelques implémentations librement disponibles à essayer (par exemple dans scikit ou MDP ).
Quand l'ICA ne fonctionne-t-il pas?
Comme d'autres algorithmes, l'ICA est optimal lorsque les hypothèses pour lesquelles il a été dérivé s'appliquent. Concrètement,
ICA renvoie une estimation de la matrice de mélange et des composants indépendants.
Lorsque vos sources sont gaussiennes, ICA ne peut pas trouver les composants. Imaginez que vous avez deux composants indépendants, et , qui sont . Ensuite, x 2 N ( 0 , I ) p ( x 1 , x 2 ) = p ( x 1 ) p ( x 2 ) = 1x1 x2 N(0,I)
où. est la norme du vecteur bidimensionnel. S'ils sont mélangés avec une transformation orthogonale (par exemple une rotation ), nous avons,, ce qui signifie que la distribution de probabilité ne change pas sous la rotation. Par conséquent, ICA ne peut pas trouver la matrice de mélange à partir des données.R | | R x | | = | | x | || | . | | R ||Rx||=||x||
la source
Il existe des procédures de type PCA pour le cas dit "oblique". Dans les logiciels de statistiques comme SPSS (et peut-être aussi dans son clone freeware) PSPP, on trouve les équivalents appelés "rotations obliques", et leurs instances nommées "oblimin", "promax" et quelque chose de plus. Si je comprends bien les choses, le logiciel essaie de «rectangulaire» les charges factorielles en recalculant leurs coordonnées dans un espace euclidien orthogonal (comme par exemple montré dans votre image) en coordonnées d'un espace dont les axes sont non orthogonaux peut-être avec une technique connue par régression multiple. De plus, je pense que cela ne fonctionne que de manière itérative et consomme un ou plusieurs degrés de liberté dans les tests statistiques du modèle.
de comparaison PCA et rotation oblique
Le manuel de référence de SPSS (sur le site IBM) pour les rotations obliques contient même des formules pour le calcul.
[Mise à jour] (Upps, désolé, vient de vérifier que PSPP ne fournit pas de "rotations" de type oblique)
la source
Je n'ai pas beaucoup d'expérience avec cela, mais le PCA généralisé de Vidal, Ma et Sastry a été conçu pour un problème très similaire.
la source
Les autres réponses ont déjà donné quelques indications utiles sur les techniques que vous pouvez envisager, mais personne ne semble avoir souligné que votre hypothèse est fausse: les lignes affichées en bleu sur votre image schématique NE SONT PAS des maxima locaux de la variance.
Pour le voir, notez que la variance dans la direction est donnée par , où dénote la matrice de covariance de la Les données. Pour trouver des maxima locaux, nous devons mettre la dérivée de cette expression à zéro. Comme est contraint d'avoir une longueur unitaire, nous devons ajouter un terme où est un multiplicateur de Lagrange. En différenciant, nous obtenons l'équation suivante:w ⊤ Σ w Σ w λ ( w ⊤ w - 1 ) λ Σ w - λ w = 0.w w⊤Σw Σ w λ(w⊤w−1) λ
Cela signifie que doit être un vecteur propre de la matrice de covariance, c'est-à-dire l'un des principaux vecteurs. En d'autres termes, PCA vous donne tous les maxima locaux , il n'y en a pas d'autres.w
la source