emilienschultz / pyshs-bib

MIT License
9 stars 4 forks source link

Ajouter la projection de variables supplémentaires pour PRINCE #21

Open emilienschultz opened 2 years ago

emilienschultz commented 2 years ago

Prince fait bien le job pour ACM & CO mais pas de projection de variables supplémentaires + cercle de corrélation pour ACP. A ajouter ??

jeanbaptisteb commented 1 year ago

Je ne sais pas si tu avais vu cette info, mais la projection de variables supplémentaires a été implémentée dans PRINCE pour l'ACP, suite à une refactorisation complète du code du package (https://maxhalford.github.io/prince/pca/#supplementary-data). Les variables s'affichent quand on génère un graphique.

Par contre, et cela indépendamment de la question des variables supplémentaires, PRINCE utilise désormais Vega-Altair au lieu de Matplotlib pour la génération de graphiques, ce qui a l'avantage de générer par défaut des graphiques interactifs si on en a l'utilité, mais qui a le désavantage de rendre plus compliquée la création de graphiques statiques (.png, .svg, etc.) de bonne qualité.

Par exemple, après quelques tests rapides, les exports statiques proposés par défaut par vega-altair montrent dans la légende uniquement le nom des lignes, et pas le nom des variables "colonnes" (ici, ces variables "colonnes" sont les sources d'énergie associées à chaque continent: pétrole, solaire, éolien, etc., ça correspond à l'exemple utilisé dans la documentation de PRINCE). Ces variables "colonnes" apparaissent sous forme de carrés verts, mais sans qu'on sache à quoi ça correspond:

image

Générer par défaut des graphiques statiques de bonne qualité à partir des sorties numériques de PRINCE, sans devoir faire des réglages plus ou moins compliqués, pourrait être une plus-value intéressante apportée par PySHS. (Je comptais me pencher sur le sujet indépendamment de PySHS, mais puisqu'il y a ce ticket qui mentionne un recours éventuel à PRINCE, autant en discuter !).

emilienschultz commented 1 year ago

Hello

Oui j'ai vu le changement de Prince, qui sous le capot marche du tonnerre, mais n'a pas le format qui me convient non plus.

Je pensais refaire une factorisation de pyshs cet été en intégrant les issues ouvertes (notamment sur la qualité des tests statistiques) pour aller vers une v1.

Je vais mettre ça dans les priorités, car les analyses factorielles sont importantes dans nos pratiques au final.

(j'ai été un peu sous l'eau cette dernière année)

jeanbaptisteb commented 1 year ago

Je suis en train de bosser sur la représentation d'une ACM pour un article, j'en ai profité pour créer une fonction générant un graphique statique pour les ACM à partir des sorties PRINCE. Code dispo ici: https://gist.github.com/jeanbaptisteb/b89c5d0d0743b40ddd4d1a5f43412964 C'est encore en cours de finition et ce n'est pas testé extensivement, mais ça fait une base de code potentiellement réutilisable pour PySHS (si besoin de définir une licence pour intégrér ce code à PySHS, disons que je le mets sous licence MIT, il me semble que c'est la même que PySHS).

emilienschultz commented 1 year ago

@jeanbaptisteb ajouté à la version 0.3.7, merci ça m'a fait découvrir adjustText que je ne connaissais pas. Il faudra que je complète avec le cercle des corrélations dès que j'ai l'occasion d'avoir à en faire un dans les prochains temps.