Porngrams avec R

Pour celles et ceux qui auront besoin d’inclure les résultats de Sexualitics dans leurs papiers, voici la fonction R qui renvoie le graphique correspondant, avec la possibilité de visualiser jusqu’à dix mots-clés :

porngram("asian", "american", "french", adjust = FALSE)

porngram1

Il est assez fréquent de vouloir ajuster les courbes en incluant un diviseur commun pour contrôler par le volume de données disponible pour chaque année. Reprise du même exemple avec ce paramètre :

porngram("asian", "american", "french", adjust = "xxx")

porngram2

La fonction reprend des bouts de code que j’avais écrit pour le package ngramr. Malheureusement, les données de Google Ngram s’arrêtent en 2008, ce qui ne permet pas d’ajuster les Porngrams par les Ngrams.

Un exemple plus complet :

geo

Pour analyser ces bêtises, il faut faire un petit effort de manipulation en différenciant la série temporelle de chaque mot-clé sur les années 2008-2012, et en extrayant les composantes principales de la transposée du résultat : l’année 2011 est celle où les variations de volume des mots-clés sélectionnés ont été les plus importantes.

Des réseaux et des mots

Histoire d’en terminer avec les réseaux de députés, voici quelques slides publicitaires pour la fonction ggnet du package GGally, qui rassemble plusieurs fonctions graphiques exploitant la syntaxe de ggplot2 :

Côté analyse, le réseau « Twitter » des députés est moins parlant que celui de leur travail législatif, même s’il lui ressemble structurellement, mais je ne reviens pas là-dessus, n’ayant pas beaucoup plus de données qu’il y a quelques mois.

Je présenterai les slides sur ggnet mercredi à R Addicts Paris, aux côtés d’autres présentations beaucoup plus avancées dans la manipulation de graphiques. Côté réseaux, il y a plein de pistes pour produire des réseaux manipulables, comme sigma.js ou d3Network. Voici un exemple de réseau textuel visualisé avec cette dernière fonction, qui utilise d3.js :

d3Network

Cliquez sur l’image pour la version dynamique. Les données sont tirées d’un petit exemple de modélisation textuelle dans un corpus faiblement structuré, conçu pour Baptiste Coulmont.

Dans cet exemple, les liens entre les termes correspondent à leur probabilité d’association dans un ensemble de termes lemmatisés, où les termes sont groupés par « thèmes possibles« . La modélisation utilise des distributions de Dirichlet et s’estime, grosso modo, de manière “fixe”, “aléatoire” ou “bayésienne” — ce qui prend des plombes dès que le corpus contient plus de quelques centaines de documents…

Dernier truc en cours, un autre exemple de temps de calcul très lent, et qui demande en plus un très long processus préalable de récupération des données. Le graphique suivant contient un peu plus d’un million d’observations, agrégées par semaine de publication et séparées visuellement par institution d’origine :

fig4_week

Le projet auquel se rattache les données est trop peu construit pour en dire vraiment plus, sinon que R et RStudio gèrent très bien les manipulations graphiques sur un million de points, à condition d’être disposé à aller se faire un café (ou même en racheter à côté) pendant que les objets ggplot2 (environ 250 MB par objet) percolent. Peut-être bigvis peut-il encore réduire ce temps de calcul, mais dans tous les cas, R fonctionne à un million de points : testé, approuvé.

Bonnes fêtes :)