{"word_count": 2029, "character_count": 13183}
J'ai expliqué, mercredi et vendredi, comment fabriquer des réseaux de co-occurrences de mots-clés à partir d'un blog qui a archivé et catégorisé les "unes" de Charlie Hebdo sur plusieurs années. On dispose de l'intégralité des années 2009-2014, que l'on a découpées en tranches de trois mois, ainsi que des réseaux propres à quatre illustrateurs des “unes” : Cabu, Charb, Luz et Riss.Dans ces réseaux, on a procédé à un recodage supplémentaire des mots-clés en grandes catégories comme “France” et “International”, et on a spécifiquement codé trois catégories plus précises et moins fréquentes : “Religion”, “Terrorisme” et “Violence”. Le codage est à juger par vous-même : j'ai fourni le code, libre à vous, donc, de faire mieux si vous trouvez des erreurs ou des ambiguïtés dans la thématisation.La questionRappelons désormais la question initiale, qui vient d'une réflexion de Gaël : “mesurer l'islamophobie ? vaste programme…” Effectivement, et comme je n'ai aucune, mais aucune envie de prêter le flanc à quiconque voudrait obtenir des “preuves” que Charlie Hebdo est “islamophobe” ou pas, je ne vais pas partir de cette question, qui contient son pesant de cacahuètes de biais et de raccourcis.Posons une autre question, plus inductive, à partir de l'exploration des données. Charlie Hebdo évoque, dans ses “unes”, la religion, le terrorisme, et des actes violents de toutes sortes. Ces thèmes sont-ils souvent évoqués ensemble ? Ou plus exactement, sont-ils plus souvent évoqués ensemble que séparément dans le reste des “unes” du magazine, qui peuvent évoquer, par exemple, la violence du terrorisme sans évoquer la religion ?La question cherche donc à mesurer une probabilité conditionnelle : la probabilité d'occurrence des thèmes joints, conditionnée à celle de l'occurrence des thèmes disjoints. Et en réalité, comme on est dans un réseau de co-occurrences, on ne cherche pas la co-occurrence des trois thèmes en même temps, mais celles des paires (des dyades) formées par ces thèmes au fil des “unes”.Les paires qui nous intéressent particulièrement sont les paires “Religion-Terrorisme” et “Religion-Violence”, ainsi qu'une dernière qui nous va nous servir d'effet-contrôle : la paire “Terrorisme-Violence”. Si le corpus est bien codé, cette paire va avoir une probabilité d'occurrence positive. Dans ce cas, on pourra également observer les probabilités des deux autres paires. Allez go.Le modèleBon, là, j'en arrive au stade où ça devient un peu sérieux. Asseyez-vous.Imaginez un espace en deux dimensions avec 400 mots-clés répartis aléatoirement dans l'espace. Chaque mot-clé est un sommet du réseau, qui apparaît une ou plusieurs fois dans les “unes” de Charlie Hebdo. Certains apparaissent souvent, d'autres pas : ça, c'est leur probabilité d'occurrence principale, qu'on va appeler l'effet principal dans la modélisation qui va s'ensuivre.Vous n'avez pas encore tracé de lien entre les mots-clés. Maintenant, tracez un lien entre les mots-clés qui se retrouvent ensemble sur une même “une” de Charlie Hebdo. Quand les liens se produisent plus d'une fois, placez le nombre de co-occurrences à côté du lien. Quand vous avez fini, félicitations, vous venez de mesurer la probabilité de co-occurrence pondérée de chaque paire de mots-clés.Pour terminer, rajoutez dans l'équation les zéros structurels de la matrice d'adjacence de votre réseau. Whaaat the fuck! Sauf que c'est très simple : il s'agit de tous les liens qui n'existent pas dans votre graphe. S'il n'y a aucune co-occurrence de “Benoît XVI” et de “pédophilie”, alors il y a un zéro structurel à l'intersection de la ligne “Benoît XVI” et de la colonne “pédophilie” de la matrice du réseau.Je viens de vous forcer à penser au réseau sous la forme d'un tableau à double entrée, c'est-à-dire d'une matrice d'adjacence, où chaque ligne et chaque colonne correspond à un mot-clé. Le réseau n'est pas dirigé : on a les mêmes mots-clés en lignes et en colonnes : la matrice est symétrique. De plus, elle contient beaucoup plus de “0” que de “1” : c'est une matrice creuse.Maintenant, cherchez un modèle qui va simuler des dizaines de milliers de matrices aux dimensions similaires, en les remplissant aléatoirement avec autant de “1” que dans la matrice empirique (c'est-à-dire la matrice initiale, celle que vous avez observée dans les “unes”). Ne cherchez pas trop longtemps : ça s'appelle une modélisation par graphes exponentiels aléatoires – un “ERGM”, dans le jargon.Respirez un coup.L'équationUn ERGM ressemble de très près à une équation de régression logistique, adaptée aux éventuelles dépendances dyadiques que vous pouvez vouloir mesurer. Si vous savez ce qu'est une équation de régression, vous savez qu'elle suppose que les observations soient indépendantes. Dans un réseau, ce n'est pas le cas : il y a des liens entre les observations. Du coup, l'ERGM se charge de modéliser ça.Si vous ne savez pas ce qu'est une régression de régression, vous n'avez rien compris au paragraphe précédent. Contentez-vous de ça : le modèle va mesurer la probabilité de co-occurrence des mots-clés en contrôlant (c'est-à-dire, d'une certaine manière, en annulant) les effets de structure qui émanent du réseau lui-même, comme par exemple le fait qu'il contient surtout des absences de co-occurrence entre les mots-clés ((Pour bien s'en assurer, on va même pousser le vice jusqu'à utiliser une distribution de Poisson “zéro-inflatée” dans certains des modèles.)).L'équation contient donc :un terme qui compte le nombre de liens (c'est-à-dire l'équivalent de l'ordonnée à l'origine dans une modélisation linéaire ou assimilée) ;un terme qui absorbe les probabilités conditionnelles principales d'occurrence des catégories des mots-clés ; etun terme qui mesure les probabilités conditionnelles de co-occurrence des catégories des mots-clés.L'équation est additive : les termes sont mesurés indépendamment des deux autres termes. On raisonne donc “toutes choses égales par ailleurs”. Et comme on se concentre sur les catégories “Religion”, “Terrorisme” et “Violence”, on utilise toutes les autres catégories (“France”, “International”, etc.) comme catégorie de référence pour le troisième terme. Voilà, c'est terminé.Je ne sais pas comment expliquer ça de manière plus simple sans trahir le fonctionnement du schmilblick. Trouvez un moyen de lire cet article, cet article et cet article (ne pas lire à jeun ; déconseillé aux femmes enceintes ; ne contient pas de noisettes). Concentrez-vous, c'est plus simple que ça en a l'air, surtout si on sait comment fonctionne une régression. Et dîtes non à la drogue.Les résultatsVoici les résultats pour les réseaux de co-occurrence périodisés, correspondant chacun à une période trois mois. Il manque certaines périodes où les modèles ont échoué à produire des résultats suffisamment précis. Les résultats n'utilisent pas la pondération des co-occurrences des mots-clés, parce que celle-ci est presque toujours égale à 1 (ce qui est normal, quand on a beaucoup de mots-clés différents) ((Ça ne vaut pas le coup de remplacer une distribution de Bernoulli par une distribution de Poisson zéro-inflatée quand on a, à tout casser, trois ou quatre valeurs différentes de 1.)).L'axe vertical est une log-probabilité conditionnelle : quand elle est positive, la co-occurrence de la paire de mots-clés est plus fréquente dans le réseau observé que dans un réseau aléatoire de même composition. La magnitude de la probabilité est calculée en référence à toutes les probabilités conditionnelles de co-occurrence que l'on ne montre pas ici : “France-Violence”, “International-Violence”, etc.Enfin, le segment autour des points correspond à l'effet estimé ± 2 erreurs standard : c'est l'intervalle de confiance, qui met en doute la significativité statistique du résultat lorsqu'il contient zéro. Pour faire les choses bien, il faudrait faire des simulations supplémentaires pour mesurer un intervalle de crédibilité, mais j'ai la méga-flemme, et puis les résultats seraient à peu près mêmes (si si, promis).Voici à présent les résultats par auteurs, plutôt que par période. Les coefficients (W), pour “weighted”, tiennent compte des pondérations des liens, ce qui n'est pas le cas des coefficients (B), pour “binaire”. Notez, par ailleurs, que les ERGM pondérés restent très expérimentaux : on sait ce qu'il y a dedans, mais on ne sait pas très bien vers quoi ça va ((Par exemple, on ne connaît pas encore grand chose sur leur convergence quand la distribution est uniforme au lieu d'être binomiale ou Poisson.)). Du coup, prudence dans la lecture des coefficients.À ce stade, vous avez peut-être envie de dire :Les explicationsVoici ma lecture des résultats. Je ne vais pas discuter du fond : mes conclusions suivront dans quelques jours. Pour le moment, je vais me contenter de parler des coefficients, en évoquant leur direction, leurs intervalles de confiance, et leur distribution. Sans cette première phase de lecture, aucune interprétation possible.Q : Que disent les coefficients ?On commence par les modèles des réseaux périodisés.Les coefficients sont presque tous positifs : la probabilité de co-occurrence des mots-clés associés aux thèmes “Religion”, “Terrorisme” et “Violence” est supérieure à celle des autres mots-clés, et même plutôt très supérieure : les coefficients tirent vers 1.7, soit une probabilité d'association des thèmes exp(1.7) = 5.5 fois supérieure à celle des autres associations  thématiques.On s'attendait à ce résultat, en particulier pour l'association thématique “Terrorisme-Violence”. Le seul contre-exemple se situe début 2013 : dans ce seul cas, l'association thématique “Religion-Violence” est moins probable que les autres associations thématiques de type “France-Violence” ou “International-Violence”. Le reste du temps, l'association thématique est forte, mais ne suit pas de progression temporelle particulière.On observe aussi des probabilités d'association positives dans les réseaux des illustrateurs, mais la comparaison des coefficients pondérés et non pondérés montre des grosses différences de magnitude, ce qui n'est pas bon signe pour la suite.Q : Que disent les intervalles de confiance ?Les intervalles signifient que les résultats sont loin d'être hyper-robustes d'un point de vue statistique : c'est particulièrement vrai pour la période de janvier à mars 2012, par exemple. Cela signifie que l'on ne peut pas être certain que les probabilités mesurées soient différentes de zero : au vu des intervalles, ça a l'air plutôt probable, mais la magnitude de l'effet est sujette à caution.De plus, il manque des coefficients dans les résultats parce que les erreurs standard étaient parfois très larges : raison de plus de douter qu'on ait mesuré quelque chose de tout à fait fiable. Encore une fois, la direction de la probabilité d'association ne fait, à mes yeux, aucun doute ; mais la magnitude de l'effet (par exemple, le "5.5 fois supérieure" précité) mérite d'être mise en doute dans de nombreux cas.Qu'est-ce qu'on en retient ?On en retiendra que les modèles n'ont pas très bien convergé, mais suffisamment pour détecter une probabilité supérieure d'association entre les mots-clés des thématiques “Religion”, “Terrorisme” et “Violence”. Par exemple, il est plus probable de trouver “Benoît XVI” associé à “pédophilie” que de trouver “Johnny Halliday” associé à “pédophilie” ou “Johnny Halliday” et “Benoît XVI” associés entre eux.Ce résultat général est obtenu toutes choses égales par ailleurs : on a pris en compte, dans le modèle, la fréquence d'occurrence de chaque thème, et la probabilité générale d'une co-occurrence entre deux mots-clés, quels qu'ils soient. En revanche, ce résultat n'est pas très précis : on va donc s'abstenir de le quantifier précisément, vu la largeur des intervalles de confiance.Ce résultat ne varie pas non plus de manière caractéristique au cours du temps, ou selon les illustrateurs : les “unes” de Charlie Hebdo associent plus volontiers la religion, le terrorisme et la violence qu'elles n'associent d'autres thèmes entre eux ou à ces thèmes, mais sans que l'on ait pu détecter une progression de cette probabilité supérieure d'association au cours du temps ou chez un illustrateur particulier.Conclusion ?Aucune : on est au stade exploratoire, où l'on s'est contenté de faire tourner des modèles préliminaires sur des petits segments des données, histoire de voir si ça fonctionnait à peu près. Et ça fonctionne à peu près, même avec les soucis de puissance statistique évoqués ci-dessus. À ce stade, on cherche juste à expliquer et à tester la méthodologie principale, qui n'est pas aussi intuitive qu'un tri à plat.On notera, de plus, qu'on a segmenté par période de trois mois et par auteur. Pour la période de trois mois, passe encore : c'est généralement une bonne idée que de rééchantillonner dans ses données, histoire de voir si l'effet observé sur N = { a, b, c } est aussi observable sur chacune des composantes de N. Mais segmenter par auteur, c'est purement exploratoire : la “une” n'est pas une publication individuelle.Suite et (presque) fin, donc, au prochain épisode, avec un modèle global des “unes” de Charlie Hebdo. En attendant, voici le code intégral de l'analyse.