Technique non orthogonale analogue à l'ACP

9

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:

entrez la description de l'image ici

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.

Ahmed
la source
Pourriez-vous rendre disponible votre exemple de jeu de données? Je voudrais essayer quelque chose pour vous. Cordialement, Eric
Eric Melse

Réponses:

10

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,

  1. les sources sont statistiquement indépendantes
  2. les composants indépendants sont non gaussiens
  3. la matrice de mélange est inversible

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 ) = 1x1x2N(0,I)

p(x1,x2)=p(x1)p(x2)=12πexp(x12+x222)=12πexp||x||22

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||

jpmuc
la source
Ouais, ça devrait ( scikit-learn.org/stable/auto_examples/decomposition/… ), merci beaucoup! : D
Ahmed
1
Cela pourrait devenir une réponse très profonde si vous en dites plus; en particulier, décidez de comparer la proposition de @ Gottfried (PCA avec rotation oblique) avec votre proposition (ICA), - quelles sont les différences et les lacunes des deux.
ttnphns
Je vois que cette question a reçu une réponse partielle. Vérifiez la modification en ajoutant un exemple simple pour lequel ICA ne s'applique pas.
jpmuc
3

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)

Heaumes Gottfried
la source
1
Hmm, après une troisième lecture, je vois que votre question est légèrement différente de la logique de rotation oblique: dans votre nuage de données, ce n'est même pas que la moyenne est à l'origine / que les données ne sont même pas centrées, donc vous pourrait avoir autre chose à l'esprit que ce que j'ai couvert ici dans ma réponse. Si tel est le cas, je peux supprimer la réponse plus tard ...
Gottfried Helms
1
Comme les "rotations" obliques sont postérieures à l'APC, ils ne peuvent pas "voir" le genre de situation illustré dans la question et ne semblent donc pas avoir plus de capacité à identifier les deux composantes que l'APC lui-même.
whuber
2

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.

Noah Stein
la source
2

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 λ ( ww - 1 ) λ Σ w - λ w = 0.wwΣwΣwλ(ww1)λ

Σwλw=0.

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

amibe
la source
Salut, je n'ai pas beaucoup d'expérience en mathématiques, pouvez-vous me recommander une bonne ressource pour en savoir plus sur les choses que vous avez mentionnées ci-dessus? Merci.
Ahmed
@Ahmed: Je ne suis pas sûr, cela dépend de ce que vous savez déjà. Je suppose que vous auriez besoin de manuels décents sur l'algèbre linéaire et l'analyse. C'est un truc assez basique, devrait être couvert dans n'importe quel manuel décent.
amibe