Matrice de corrélation, et R

Plus j’avance dans R, plus je trouve cet outil fabuleux.

En mai-juin dernier, une élève kiné vint me voir pour que je lui fasse des stats avec des petits p pour son mémoire final (je trouve ça parfaitement débile, mais c’est un autre débat).

Je n’avais pas touché un logiciel de statistiques (piraté, d’ailleurs) depuis ma thèse, et encore, j’avais mis à contribution fait faire tout le boulot à un interne du DIM de mon CHU.

Autrement dit, je partais de très très loin.

Je suis allé cherché le meilleur test adapté à ses données, puis je suis tombé sur un os, n’ayant plus de logiciel à disposition. Finalement, je m’en suis sorti avec je ne sais plus quel site qui proposait des feuilles Excel® permettant de faire le test voulu.

Je ne sais pas si le test était bon, en tout cas, le jury de distingués kinés, qui doit être aussi calé en statistiques que moi (huhuhuhuhuhu…), n’a pas élevé de protestations devant mon Wilcoxon.

Influencés par le Scrabble®, avec un W et un X dans un nom propre, ils ont dû être impressionnés, tout comme moi je le fus. La prochaine fois, je leur sortirai un test de Wald–Wolfowitz.

Au cours de mes recherches, j’ai découvert R, logiciel gratuit, communautaire, surpuissant et totalement imbitable.

Après un ou deux MOOC, le survol de dizaines de ressources disponibles sur la toile, et une rencontre, j’ai commencé à utiliser R, presque avec plaisir.

Je triche quand même un peu car, toujours à la suite de discussions sur Twitter, un pharma (@PotardDechaine ou @PierrikFaure ?) m’a fait découvrir RStudio, une interface qui rend R un peu moins aride.

Les choses simples sont difficiles sur R (ne serait-ce que pour visualiser ses données…), et les choses complexes sont très simples à faire. Pour corser le tout, certaines opérations ne sont possibles qu’après avoir téléchargé et installé des packages.

Bref, R se mérite, mais on peut faire des choses sympas.

Petit exemple.

Imaginez 65 individus chez lesquels ont été mesurées 7 variables quantitatives continues. Vous souhaitez savoir si certaines de ces variables sont corrélées entre elles.

Mon fichier texte (R ne lit que les fichiers textes, qui sont simples à obtenir à partir d’un fichier Excel®) s’appelle JMV.

Une seule ligne de commande, cor(JMV), permet de sortir une matrice de corrélation:

matcor8On ne peut pas faire beaucoup plus simple, non?

Par exemple, le coefficient de corrélation entre Var1 et Var2 est de 0.84 et des poussières.

On peut imaginer qu’un graphique sera plus parlant:

matcorr9Quelques lignes de code permettent d’obtenir un tel graphique:

>base <- JMV

>base.r <- abs(cor(base))

>cpairs(base, gap = .5)

Elles ne s’inventent pas, mais je n’ai pas eu trop de difficultés pour les trouver.

C’est joli, mais presque plutôt moins informatif que la matrice de corrélation, car on n’arrive toujours pas à discerner quelles sont les variables qui sont bien corrélées entre elles, et surtout si on pourrait en grouper certaines.

Point curieux, comme me l’a fait remarquer @Potarddechaine, s’agissant de coefficients de corrélation, ils devraient être compris entre -1 et +1, or l’échelle montre de toutes autres valeurs (67, 68, 69, 70…). Quelles sont-elles? Quels sont leurs réseaux?

Une autre série de lignes de code permet de classer ces corrélations et de les colorier en fonction de leur intensité (rouge si coefficient de corrélation>+/-0.5, bleu entre +/-0.5 et +/-0.18, blanc en dessous:

corrmtx3On commence à pouvoir grouper certaines variables en fonction de leurs corrélations (par exemple Var1, Var5 et Var2). Je vous avais déjà montré ce type de graphique qui m’avait beaucoup impressionné. Mais ça, c’était avant.

Aujourd’hui, j’ai découvert le package corrplot.

Et là, R devient sublime.

Voici quelques graphiques que j’ai tiré sans trop de difficultés de ma série de données:

corrmtx4corrplot1Par exemple, pour obtenir le graphique ci-dessus, le code à entrer dans R est « tout simplement »:

>corrplot(JMV_corr, method = « number »)

corrplot3

On peut ainsi regrouper les coefficients de corrélation (-1 à +1 😉 ), les illustrer de différents manières, même coupler les graphiques avec un test statistique, bref, rendre intelligibles des données en les rendant belles.

121 curriculum vitae pour un tombeau

C’est une amie lectrice de ce blog qui m’a prêté ce bouquin, et je lui avoue que je ne l’ai pas touché durant des mois.

L’aspect un peu dépressif de la couverture, avec le titre, et la gueule de l’auteur m’a longtemps rebuté.

Pas trop besoin de ça en ce moment.

Pourtant, il fallait bien le rendre, ce livre, et je n’allais pas faire comme tous les étudiants l’ont fait et le feront, parler d’un livre dont je n’aurais lu que la fiche de lecture, ou le résumé sur la toile.

121J’ai donc commencé à le lire avec circonspection, et j’ai beaucoup aimé.

Le héros, artiste peintre, est l’auteur lui-même.

Le fait que les 112 portraits qui sont le centre du bouquin existent réellement, ne m’a pas pas semblé être le plus marquant. J’ai trouvé ça drôle, sans plus, comme quand on met ses pas dans ceux d’un roman, au coin d’une rue.

L’intérêt du bouquin réside surtout dans les portraits que l’auteur trace en quelques lignes (de texte) de ses/nos contemporains. L’écriture est souvent drôle et vitriolée, mais aussi parfois tendre. Il dézingue l’hypocrisie et le cynisme du petit chef d’une obscure administration, du manager ultra-libéral, mais aussi certaines postures « obligatoires » en société. Il parle aussi très bien de la misère sociale des sans-grades, bien souvent victimes bovines  de l’hypocrisie et du cynisme des « managers ».

Ce bouquin n’est certainement pas une sorte de Germinal, il n’a pas d’ambition sociale. Il représente plutôt la vision qu’un artiste un peu désabusé peut porter sur ses/nos contemporains qui vivent comme des guêpes dans un bocal.

C’est bien écrit et souvent drôle.

°0°0°0°0°0°0°0°0°0°0°0°0°

121 curriculum vitae pour un tombeau par le blog Les 8 plumes.