BiopSci

La science à portée de tous

Vous n’avez plus d’excuses: mettez vous au data!

Par | Catégorie: Analyse | Le 02 mai 2014

Le data! Voilà un terme dont on entend de plus en souvent parler, que ce soit dans les journaux ou à la télé. Ajoutez y des termes comme décryptage ou fact checking et vous passerez même pour un journaliste nouvelle génération.
Ce mot signifie simplement « données » en anglais mais est utilisé de manière large pour désigner l’utilisation de ces données pour appuyer une idée ou les conclusions d’un article ou reportage. En gros, on montre que ce que l’on dit est pertinent car les données le disent aussi (bien que manipuler les données est aussi un art en soi).
Si ce terme vous semble inaccessible et pensez que ce merveilleux monde n’est destiné qu’aux statisticiens et journalistes, détrompez vous! Cet article vous présente 5 analyses ou projets qui montrent à quel point l’usage de données disponibles publiquement peut se révéler riche en enseignement. Que ce soit pour satisfaire votre curiosité ou vous aider à prendre des décisions. Et, cerise sur le gâteau, dans certains cas cela est assez simple!

#1: Shyamalan, ce gars qui eut fait des films bien

Il m’est plusieurs fois arrivé de discuter de mon expérience traumatique avec la filmographie de M. Night Shyamalan (vous savez, le réalisateur et scénariste de Sixième sens) avec à chaque fois le même sentiment: chaque nouveau film est plus décevant que le précédent. Pourquoi se contenter d’impressions lorsque l’on peut avoir un avis un peu plus définitif? Direction RottenTomatoes, un site compilant des critiques de professionnels et amateurs et en extrayant une note finale. En récoltant ces notes et l’année de production pour chacun de ces films je peux alors très facilement produire un graphique comme le suivant.

shyamalan580
Notes des films de Shyamalan (en tant que scénariste (rouge), réalisateur (bleu) ou les deux (violet)) en fonction de l’année de sortie. Titres originaux (The happening=Phénomènes, pour les autres c’est normalement assez simple)

Et le résultat est éloquent. La production de Shyamalan semble – à quelques exceptions près – suivre une loi mathématique rendant chaque nouveau film moins bon que le précédent! Je me suis arrêté à Phénomènes (The Happening sur le graphe – notez que je suis descendu assez bas) et sais donc que je peux faire l’impasse sans remords sur les films suivants.

Niveau: Facile. Un simple tableur comme Excel peut suffire pour ce genre de représentation.
Le plus: vous pouvez frimer en société en démontrant par A + B que Shyamalan, c’était mieux avant.
Le moins: Cela repose sur des critiques et votes que l’on ne contrôle pas trop. Après tout, peut être que vous avez adoré tous les films de Shyamalan.

#2: C’est qui le plus fort: Ted ou Dexter?

On reste dans le télévisuel! J’ai récemment vu le dernier épisode de la série How I Met Your Mother (HIMYM pour les intimes) et ai assisté amusé aux réactions quasi viscérales que ce final avait provoqué. Je me suis alors posé plusieurs questions quant à la réception des épisodes finaux par rapport aux séries elles mêmes. Par exemple: est il fréquent que les spectateurs soient aussi déçus par le final d’une série? Là aussi, il existe des données disponibles publiquement pour répondre à cette question, alors pourquoi s’en priver?

Direction IMDB ce coup ci. Cette base de données propose, entre autre, aux internautes de donner une note aux films et séries qui y sont recensés. On peut recueillir ces notes à la main ou bien les télécharger sur un serveur FTP disponible (fichier ratings.list.gz). Une fois ces données en main, on peut alors s’amuser.

Le graphique ci dessous représente les notes des internautes pour l’épisode final d’une série en fonction de la note globale de la série. Si un point se trouve au dessus de la ligne noire cela veut dire que l’épisode final est mieux noté que la série elle même (le final a été bien reçu) et inversement si il se situe en dessous (le final a déçu les spectateurs).

plotfinalevsrating580
Notes de l’épisode final en fonction de la note globale de la série. Titres en anglais (ER=Urgences).

Ce graphe contient pas mal d’informations: quelles sont les séries les mieux perçues, celles dont le final a été apprécié et, surtout, celles dont le final a fortement déçu. Dexter, HIMYM et The L Word font définitivement partie de la dernière catégorie. Si on veut un peu plus quantification, on peut alors générer un graphe similaire à celui ci-dessous.

seriesquant
Note de la finale divisée par la note globale de la série. En dessous de la ligne, le finale a été moins apprécié que la série en soi.

Les différences entre séries (en terme de relative appréciation du final) sont plus visibles et on peut alors quantifier à quel point Dexter (de Dexter…) a plus déçu que Ted (de HIMYM). Le classement en soi est à prendre avec des pincettes étant donné qu’on ne sait pas trop qui a voté et comment (mais chaque épisode reçoit plusieurs milliers de votes ce qui tend à donner une relativement bonne image). Cependant les valeurs extrêmes sont très certainement informatives.

Niveau: Facile à Moyen. Si vous collectez manuellement les données, un simple tableur peut vous suffire. Si vous utilisez un fichier texte comme source de données, il vous faudra un peu plus de connaissances en programmation…
Le plus: vous pouvez devenir une gloire sur internet (le premier graphique a été vu près de 500 000 fois après avoir été partagé sur Reddit). Plus sérieusement, ces graphiques ont pu déclencher des discussions intéressantes sur divers réseaux sociaux. Les questions adressées ici semblent être partagées par de nombreuses personnes.
Le moins: Comme énoncé, on ne contrôle pas trop qui vote et comment. Mais c’est certainement suffisant pour avoir une vision globale.

#3: Twitter, es tu content?

Passons maintenant à un petit projet tenant à première vue plus de l’exercice qu’autre chose. Pour utiliser un peu mon Raspberry Pi (vous savez, ce mini ordinateur au prix de 40€), j’ai créé un petit programme analysant quelle est le niveau de bonheur des utilisateurs de Twitter en analysant le contenu d’un jeu aléatoire de tweets publiés à un temps t (en gros: quelle est la proportion de mots a connotation positive par rapport aux mots à connotation négative). En compilant ces données toutes les 30 minutes on peut avoir une estimation de comment évolue l’humeur mondiale au fil du temps. Pour être honnête, il y a généralement peu de variations (du moins avec ma méthode – les résultats ont été automatiquement publiés sur ce compte Twitter) mais on peut observer des fortes baisses d’humeur lors de décès tels ceux de Nelson Mandela ou de l’acteur Paul Walker (image ci dessous) qui avait – à la surprise de beaucoup – fortement ému les réseaux sociaux.

pwdeath580
Quantification de l’humeur mondiale au cours de la journée du 1er décembre 2013, jour de la mort de l’acteur Paul Walker.

Si ce projet est avant tout didactique, il peut, avec un peu plus de travail, déboucher sur des projets plus artistiques comme ce cube changeant de couleur en fonction de l’humeur mondiale ou plus appliqués en tentant de prédire les cours de la bourse en fonction des statuts postés.

Niveau: plutôt difficile. Il faut manipuler un langage de programmation (comme python), savoir utiliser une API (Twitter dans ce cas ci). Mais cela peut être un bon projet pour s’y mettre!
Le plus: C’est marrant et un bon exercice, y a t’il besoin de plus que ça?.
Le moins: Pas le projet le plus informatif malgré tout. Et il faut avoir un ordinateur connecté en permanence pour récupérer les données.

#4: Liens entre blogs

Revenons à une analyse motivée par une question précise. Suite à un billet très discuté de Marc sur la blogosphère scientifique francophone, j’ai voulu analyser et visualiser comment les différents blogs de sciences interagissaient entre eux. En créant un petit programme extrayant les adresses URL contenus dans différents billets de différents blogs, j’ai pu alors créer une petite carte de ces interactions et compiler quelques statistiques intéressantes décrivant un peu cette fameuse blogosphère.

Pour les détails, vous pouvez jeter un oeil à l’article consacré à cette analyse.

Niveau: Difficile. Demande de l’expertise en analyse de données, extraction d’information, théorie des graphes,… Mais là aussi, cela peut être un prétexte pour apprendre.
Le plus: Vous pouvez ramener (de manière constructive) votre fraise dans un débat en vue.
Le moins: Au final ça n’intéresse que vous et une petite centaine de personnes. =)

#5: Dis moi data, à quelle heure dois je me lever?

Passons maintenant à des aspects plus pratiques. J’ai en bas de chez moi une station de vélos en libre service (à l’image des Vélib) mais je la trouvais souvent vide à l’heure de me rendre au travail. Ni une ni deux, j’ai cherché un moyen d’obtenir les données d’occupation des différentes stations et ai écrit un petit programme les récupérant toutes les 10 minutes. Entre diverses analyses on peut par exemple regarder le taux d’occupation d’une station au cours d’une journée comme ci dessous.

bicingbarplot
Nombre de vélos disponibles (rouge) et de places disponibles (gris) à une station de vélo en libre service au cours d’une journée.

On peut voir que, pour cette journée, il y a eu peu de vélos disponibles entre 7h et 9h. Si l’on désire avoir une vision plus complète on peut créer une heatmap (voir ci dessous) indiquant le taux d’occupation des stations au cours des différentes journées d’un même mois (ou autre laps de temps).

bicinghm580
Nombre de vélos/places de parking disponibles à une station de vélo en libre service durant le mois d’octobre 2013. Chaque ligne est une journée, chaque colonne un moment de la journée (les chiffres correspondent à l’heure de la journée).
Bleu: aucun vélo disponible, rouge: aucune place de parking disponible.

Les principaux enseignements sont alors:

  • il y a des variations non négligeables entre jours (les week ends sont assez clairement identifiables).
  • il semble que la station soit quasiment toujours vide entre 8h et 9h.
  • De manière générale, il y a peu de vélos disponibles entre 7h et 10h.

En gros, je peux me lever très tôt ou très tard si je veux un vélo à cette station (heureusement, il y a d’autres stations proches). Une fois les données disponibles, rien ne vous empêche de regarder plein d’autres choses telles que l’état des stations proches ou de destination, les zones les plus encombrées de la ville, les heures de la journée où le plus de vélos sont disponibles en général,… Vous ne serez limités que par les questions que vous vous posez.

Niveau: Plutôt difficile. Il faut de l’expérience en programmation ainsi qu’en statistiques ou visualisation de données.
Le plus: Vous tirez une réelle plus value de l’analyse.
Le moins: Le pouvoir de prédiction reste limité.

A votre tour

Vous l’avez vu, quelque soit votre niveau, vous pouvez vous aussi tirer profit de l’immense quantité de données disponibles librement sur internet (par exemple via les plateformes du gouvernement français, de la SNCF ou de Vélib) et satisfaire votre curiosité ou même aider à la prise de décision. Alors plongez! Le data ce n’est pas seulement cool, ça peut aussi être facile!

créateur de BiopSci
Voir tous les articles de

2 commentaires »

  1. Jolie exploitation de données !
    Mais maintenant on peut même aller encore un peu plus loin et rendre l’exploration interactive avec des graphes responsives. Un peu du genre de cette étude : http://www.brandfootprint-ranking.com/report/ranking/fmcg/2013,2012/
    Je ne pense pas que ça demande bien plus de temps que ce que tu as déjà fait et qui est déjà super convenable.

    Perso, n’étant pas super copain avec R et ses packages (sérieux, c’est quand même assez moche le rendu final on est d’accord…) et aimant bien tripoter python (en toute amitié), j’ai fais récemment la découverte de Pygal (http://pygal.org/) qui à l’air d’avoir pas mal de choses sympa à essayer. Dès que j’ai un peu de temps je m’y essaye :)

    Merci encore pour ce bel article Philippe, la bise à ta ptite famille.

    Yo.

  2. Merci Yo pour les liens (ce que t’a valu de passer par la case modération de commentaire pour être sur que tu n’étais pas un vulgaire spam =)).

    R n’est effectivement pas le plus indiqué pour faire des très jolis graphes mais avec les packages adéquats (comme ggplots) on peut tout de même faire des trucs pas trop moches. Et une fois que l’on y est habitué c’est extrêmement puissant pour faire des analyses rapidement. Pour l’avenir je pense que des outils comme Shiny (http://www.rstudio.com/shiny/) permettant de créer des applications web pouvant explorer des jeux de données complexes seront amenés à être assez populaires.

    Pygal a l’air pas mal en effet et des librairies JS ou HTML permettent aussi de faire des trucs bien jolis pour de l’intégration web (à l’image de ton premier lien). Il faut s’y mettre et en avoir l’utilité évidemment.

Laisser un commentaire