IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

ACP avec variables complexes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Par défaut ACP avec variables complexes
    Bonjour à tous,

    Sur une matrice ayant comme éléments des nombres complexes je souhaiterai effectuer une ACP. Je commence par déterminer les valeurs propres et les vecteurs propres de cette matrice. Mais mon souci c'est que j'obtiens des valeurs propres complexes et que dans C on ne peut pas les ordonnées. De fait je peut pas déterminer la composante principale associée à la plus grande valeur propre, ni déterminer le pourcentage de variabilité de chaque composante.
    Comment puis-je effectuer une ACP sur ce type de matrice ?
    Comment déterminer la première composante principale ?
    Existe t-il des conditions qui me permettrait d'obtenir des valeurs propres réelles ?

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Je commence par déterminer les valeurs propres
    Est-ce qu'il ne faudrait pas plutôt déterminer les valeurs singulières?
    Jean-Marc Blanc

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Par défaut
    Merci, je viens d'avoir la même idée.

    En effet, les valeurs singulières correspondront à la racine carrée des valeurs propres et l'une des matrices des vecteurs singuliers est identique à la matrices des vecteurs propres.
    Cependant existe t-il une explication au fait de l'utilisation de la svd pour faire l'ACP ?

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    Comment calcule tu ta matrice de covariance ? Cela devrait être

    C = 1/N sum_i (zi - <z>) ( zi - <z>)'

    où <z> est la valeur moyenne et où le " ' " désigne la conjuguaison complexe (transposition plus conjuguaison des éléments). Définie de cette façon la matrice résultant est forcément Hermitique et ses valeurs propres sont forcément réelles.

    Attention également lorsque tu effectueras la projection à bien utiliser la conjuguaison complexe au lieu de la transposition.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Par défaut
    La matrice de var-cov je la calcule de cette façon :
    Soit M ma matrice de données centrée (ou centrée réduite) et V la matrice de var-cov associée, V = M*M où M* est la matrice adjointe de M (transconjuguée de M).

    J'ai calculé ensuite les vecteurs propres et valeurs propres de V avec la librairie C++ Eigen3 et qui m'a fournie des valeurs propres complexes (malgré le fait que V soit hermitienne). N'étant pas spécialiste du calcule numérique je n'ai pas regardé quel algo a été implémenté par Eigen.
    J'ai simplement chercher un autre moyen d'obtenir les vecteurs et valeurs propres. L'ACP étant généralement implémentée à l'aide la svd et ayant fait ces preuves avec des matrices complexes, j'ai suivi le mouvement.

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    Les "solvers" ont généralement des méthodes spécialisées pour les matrices hermitiennes. Il existe "SelfAdjointEigenSolver" dans Eigen.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Par défaut
    Je te remercie je ne le savais pas.

    Dis moi, le sens des vecteurs propres que l'on obtient est aléatoire et dépend de la librairie que l'on a utilisé pour les calculer. Connaîtrais-tu une méthode ou un critère qui permet de fixer le sens de ces vecteurs ?

  8. #8
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    Je ne pense pas qu'il y ait en général de convention. Si les vecteurs propres ont une signification particulière, il peut y avoir des conventions du genre la première composante positive.

Discussions similaires

  1. ACP avec variables supplémentaires
    Par flourangel dans le forum SAS STAT
    Réponses: 2
    Dernier message: 24/01/2013, 11h55
  2. ACP avec variables catégorielles et continues
    Par joyeux_lapin13 dans le forum SAS STAT
    Réponses: 0
    Dernier message: 29/06/2010, 15h04
  3. 3 tables avec requête complexe
    Par yamino dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/03/2004, 19h50
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo