Categories

Archives

L’initiale de mon prénom a-t-elle un genre ?

Les prénoms ont un genre : Aurélia et Aurélien n’ont probablement pas été déclarés avec le même sexe. La terminaison des prénoms aussi : Clara, Léa, Zora, Anna… Sophie, Mélanie, Marie…
Mais qu’en est-il de l’initiale ?
Sur les graphiques suivant, vous trouvez en abscisses un ‘taux de masculinité’ (nombre de bébés garçons / nombre de bébé filles [merci Pierre !]) et en ordonnées le nombre total de naissances.
Pour les naissances de 2008, les prénoms en C, L, Z ou O comptent principalement des filles (2 fois plus de filles que de garçons). Les prénoms en T, G, Y, B, W, U, Q, et X sont surtout donnés aux garçons.
lettres-masculines-2008
En 1970, les prénoms en Z étaient déjà féminins (ainsi que les prénoms en I, K, V et N). Mais les prénoms en L étaient autant féminins que masculins.
lettres-masculines-1970
Il semble donc que si les initiales des prénoms sont objectivement “genrées”, l’association entre genre et initiale est instable : la terminaison marque bien plus que l’initiale le genre de la personne qui porte le prénom.
Ceci s’aperçoit bien si l’on regarde l’évolution temporelle, en fonction du “taux de masculinité” des 26 initiales disponibles en français.
lettres-a-z
Cliquez pour ouvrir l’image et pouvoir la déchiffrer [pdf]

À un moment donné, la plupart des initiales semblent bien “genrées” : mais quelques années après, l’association initiale/genre a pu s’inverser. Et les initiales qui restent constamment masculines ou féminines ne sont pas très répandues.

Sociologie d’un quartier

Un correspondant m’envoie un problème. Dans le cadre d’une enquête portant sur la socio-histoire d’un quartier, il a eu accès à des archives qui indiquent, pour quelques pâtés de maison (pâtés d’immeubles), la composition sociale.
Ces données apparaissent sur des cartes réalisées à différents moments :
quartier
Les zones les plus foncées sont celles où la population a fréquemment une certaine caractéristique (peu importe la caractéristique, que ce soit la composition sexuée, la proportion de cadres ou de joueurs de banjo).
La question posée était : comment refaire la carte ? Plus précisément, il m’écrit : “Je souhaite montrer les évolutions que connaissent ces différentes zones en utilisant les fonctions cartographiques de R, surtout les cartes choroplèthes et en cercles proportionnels. En bref, comment faire pour coder ces zones ?”

Ce n’est pas très compliqué :
Pour commencer, il faut retracer les formes. Pour cela, il est possible de créer une carte sur google maps (cliquer sur “My places” (à côté de “Get Directions”) dans l’interface de google maps (il vous faudra peut-être un compte google).
Il est ensuite possible de dessiner des formes (“shapes”), et de leur associer un identifiant (qui sera la “clé” à partir de laquelle associer les données chiffrées).
map-google-quartier
Ensuite, google maps permet d’exporter les “shapes” au format .kml

Voici une explication en vidéo :

Et dès qu’on a du .kml, alors on peut lancer R.
Imaginons que notre fichier .kml s’appelle quartier.kml

Dans R : (Note : il faut le package osmar, que j’ai présenté ici)

library(maptools)
library(rgdal)
library(osmar)
#charger les polygones du quartier :
quartier < - readOGR("Desktop/quartier.kml",layer="quartier")
#charger la carte du quartier
#grâce au package osmar [info] 
src < - osmsource_api()
bb <- center_bbox(LONGITUDE,LATITUDE, 800, 800)
ua <- get_osm(bb, source = src)
#dessiner les bâtiments (c'est optionnel)
bg_ids <- find(ua, way(tags(k == "building")))
bg_ids <- find_down(ua, way(bg_ids))
bg <- subset(ua, ids = bg_ids)
bg_poly <- as_sp(bg, "polygons")
#dessiner les routes (pour donner une idée)
plot(bg_poly, col = "lightgray",border="#ffffff00")
cw_ids <- find(ua, way(tags(k %in% c("highway"))))
cw_ids <- find_down(ua, way(cw_ids))
cw <- subset(ua, ids = cw_ids)
cw_line <- as_sp(cw, "lines")
plot(cw_line, add = TRUE, col = "black",lwd=10)
plot(quartier,add=TRUE,col=CODECOULEUR)

Created by Pretty R at inside-R.org

carto-quartier
Cliquez pour avoir un PDF vraiment yummy-yummy

Par comparaison, voici un morceau de la carte originale :
quartier-comparaison
Je ne sais pas ce que mon correspondant va faire avec ses cartes, mais l’objectivation cartographique peut sans doute contribuer au raisonnement sociologique.

L’évaporation académique : les qualifiés non postulants

Je vais parler ici de l’évaporation académique, c’est-à-dire des personnes qui, qualifiées par le Conseil national des universités, ne candidatent à aucun poste universitaire. Je vais m’appuyer sur les données des “DGRH A / LT & DGRH A1-1 / PR”.
Dans l’Etude de la promotion 2012 des qualifiés aux fonctions de MCF et de PR, on trouve quelques pages consacrées à ceci : “3589 personnes détenant globalement 4911 qualifications délivrées cette année n’ont pas candidaté sur les postes ouverts au recrutement. Elles représentent 43,5% des personnes qualifiées par le CNU au titre de l’année 2012”. La DGRH-A appelle cela “l’évaporation”.
Près d’une candidate sur deux, donc, qualifiée, ne candidate pas. Peut-être parce qu’il n’y a aucun poste qui lui convienne. Peut-être par autocensure…
Mais ce n’est peut-être pas dû uniquement aux candidates elles-mêmes. La plus ou moins grande sévérité des sections est liée à la plus ou moins grande proportion d’évaporées.
evaporation
Cliquez pour avoir un beau graphique en PDF

La taille des points est fonction (linéaire) du nombre de candidats qualifiés (je me suis limité, ici, à la qualification “maître de conférences”. La droite orange est la droite de régression linéaire. Une relation croissante existe entre le taux de qualification et le taux d’évaporation : dans les sections les plus “laxistes”, de nombreux candidats abandonnent avant même de postuler.
Mais c’est un peu plus compliqué encore (rien qu’avec les données de la DGRH A), car une relation évidente existe entre la “pression” (le nombre de qualifiés de l’année rapporté au nombre de postes ouverts au recrutement dans l’année). Ainsi, quand il y a environ un poste pour chaque qualifié (en droit, par exemple), il y a très peu d’évaporation. Mais quand il y a un poste pour 20 candidats, alors près de 60% des candidats abandonnent.pression
Cliquer pour agrandir

On remarquera, sur ce graphique, le comportement “optimiste” des politistes, de la 4e section du CNU : 15 candidats pour chaque poste, mais à peine 20% d’évaporation.
Et si l’on combine le tout ? En coloriant les points en fonction du taux de qualification ? On arrive, je pense, à la limite de la synthèse graphique possible.
evaporation-pression
Le “taux d’évaporation” était de 34% en 2007, et, depuis, il augmente régulièrement.
[mise à jour 2013-03-02] Regardons maintenant la relation entre la “porosité” des sections CNU et le taux d’évaporation. Le graphique suivant met en relation la proportion de “multiqualifiés” par section et l’évaporation. Il apparaît que, globalement, plus la section comporte de candidats multiqualifiés, plus ces candidats s’évaporent…
multiqualifies
Je trouve cela a priori étrange : je pensais que la proportion de multiqualifiés pouvait être un indicateur de la volonté des candidats de postuler aux postes universitaires.

Note : Données : evaporation.csv [j’ai extrait ces données du rapport de la DGRH-A, qui est au format PDF]

Mise à jour : Poursuite de l’analyse chez Olivier Bouba-Olga

La boîte à moustaches

On n’utilise pas assez les boîtes à moustaches. Je ne suis pas le seul à faire le constat. Howard Becker, qui n’est pas connu pour être un “quantitatif”, regrette l’absence de telles boîtes moustachues dans les principales revues de sociologie américaines.
Rappelons ce que sont ces boîtes. Pour citer Becker, elles fournissent “une grande quantité de données sur un ensemble de chiffres, dans un format pratique, facile à lire et aisément comparable. La boîte à moustache montre de manière graphique (…) les données le splus importantes d’une distrtibution numérique — la médiane, les charnières (les points marquant les quartiles approximatifs), l’aire complète de distribution –, elle permet d’identifier facilement les cas qui sortent de la moyenne, pour s’y intéresser plus particulièrement.” [Becker, Howard S. Comment parler de la société, Paris, La Découverte, 2009 (édition originale, 2007), p.91]
C’est un graphique synthétique, qui permet de connaître, pour une distribution, sa dispersion, la tendance centrale, l’aire… mais aussi les extrêmes.
Ainsi la répartition des notes dans deux classes :
boitemoustache
La note médiane de classe “t1” est 10, celle de la classe t2 est 9. Mais la distribution des notes des deux classes diffère : la classe “t1” est plus homogène.
La zone en grisé représente ce qui se trouve entre le premier quartile et le troisième quartile. Les “charnières” se trouvent situées au point maximal situé en dessous de 1,5 fois l’écart inter-quartile en partant du 3e quartile (même chose, mais de manière inverse, pour le 1er quartile). Tous les points situés au dessus de cette “charnière” se trouvera représenté par un point, ce qui permet d’attirer l’attention sur certaines valeurs extrêmes. En l’occurrence, ici, les deux élèves ayant eu 20 de moyenne.

La boîte à moustache a été inventée par John Tukey dans les années 1970 : le caractère relativement récent de cette création explique probablement qu’il n’y a pas qu’une seule convention de représentation. La moyenne est parfois représentée dans la boîte. Certains quantiles sont parfois aussi représentés… bref, il y a de la variation, et on n’est jamais certain (sauf à regarder la note de bas de page) de la convention utilisée pour dessiner la boîte à moustaches que l’on a sous les yeux.
Ceci explique probablement pourquoi Becker n’a trouvé aucune boîte dans les 77 articles de l’American Sociological Review et de l’American Journal of Sociology de l’année 2001, alors que 68 articles, écrit-il, contenaient des données qui auraient pu être synthétisées à l’aide de telles boîtes.

Note : avec R, l’instruction boxplot() dessine les boîtes à moustaches.

Osmar : manipuler des données OpenStreetMap avec R

Il y a parfois un intérêt certain à créer des cartes dans un format vectoriel. Je vais ici utiliser le paquet “osmar”, qui permet d’utiliser des données en provenance d’OpenStreetMap, avec le logiciel R.


cliquez pour ouvrir la carte au format pdf

Pour réaliser cette carte, j’ai suivi les instructions présentées dans ce document osmar: OpenStreetMap and R, by Manuel J. A. Eugster and Thomas Schlesinger.
Pourquoi passer par osmar ? L’on trouve des shapefiles extraits de OpenStreetMap sur différents sites (comme cloudmade), mais ces shapefiles commencent à être très lourds, et ils ne contiennent qu’une partie des informations disponibles sur OpenStreetMap.

install.package(osmar)
library(osmar)
src <- osmsource_api()
bb <- center_bbox(3.0775880813598633,50.37404355240673, 1000, 1000)
ua <- get_osm(bb, source = src)
 
#tracer les bâtiments
bg_ids <- find(ua, way(tags(k == "building")))
bg_ids <- find_down(ua, way(bg_ids))
bg <- subset(ua, ids = bg_ids)
bg_poly <- as_sp(bg, "polygons")
plot(bg_poly, col = "gray",border="gray")
 
#tracer une zone "commerciale"
nat_ids <- find(ua, way(tags(v %in% c("commercial"))))
nat_ids <- find_down(ua, way(nat_ids))
nat <- subset(ua, ids = nat_ids)
nat_poly <- as_sp(nat, "polygons")
plot(nat_poly, col = "#ffaaaa11",add=TRUE,border="#ffffff00")
 
#tracer les cours d'eau
nat_ids <- find(ua, way(tags(k %in% c("waterway"))))
nat_ids <- find_down(ua, way(nat_ids))
nat <- subset(ua, ids = nat_ids)
nat_poly <- as_sp(nat, "polygons")
plot(nat_poly, col = "#aaaaff",add=TRUE,border="#aaaaff",lwd=2)
 
#tracer les parcs
nat_ids <- find(ua, way(tags(k %in% c("leisure"))))
nat_ids <- find_down(ua, way(nat_ids))
nat <- subset(ua, ids = nat_ids)
nat_poly <- as_sp(nat, "polygons")
plot(nat_poly, col = "#99dd99",add=TRUE,border="#99dd99")
 
#tracer les rues, de différentes épaisseurs
cw_ids <- find(ua, way(tags(v %in% c("residential","pedestrian"))))
cw_ids <- find_down(ua, way(cw_ids))
cw <- subset(ua, ids = cw_ids)
cw_line <- as_sp(cw, "lines")
plot(cw_line, add = TRUE, col = "pink",lwd=1)
 
cw_ids <- find(ua, way(tags(v %in% c("secondary"))))
cw_ids <- find_down(ua, way(cw_ids))
cw <- subset(ua, ids = cw_ids)
cw_line <- as_sp(cw, "lines")
plot(cw_line, add = TRUE, col = "pink",lwd=5)
 
cw_ids <- find(ua, way(tags(v %in% c("tertiary"))))
cw_ids <- find_down(ua, way(cw_ids))
cw <- subset(ua, ids = cw_ids)
cw_line <- as_sp(cw, "lines")
plot(cw_line, add = TRUE, col = "pink",lwd=3)

Created by Pretty R at inside-R.org

Classes et réseaux

Max Weber commence par définir ce qu’il appelle une “situation de classe”, qui est associée à une “chance typique” résultant de l’accès à des biens et services permettant de se procurer des rentes ou des revenus. Puis il définit la classe sociale comme “l’ensemble de ces situations de classe à l’intérieur duquel un changement est aisément possible, pour une personne donnée, dans la succession des générations” [Economie et Société, Tome 1, Paris, Plon, 1995, coll. Pocket, p.391].
La traduction n’est pas simple, et je ne sais pas ce que Weber écrit dans la version originale. Mais il me semble que l’idée est ici de définir la classe sociale à partir de la mobilité des personnes entre “situations de classe”. C’est le flux entre situations, qui fait se rassembler les situations (et c’est ce rassemblement qui forme des “classes”) : une classe est ici un ensemble d’éléments presque équivalents du point de vue de la mobilité.
Le graphique suivant illustre ce que j’ai cru comprendre. Les points représentent des situations de classe (à partir d’une profession) et les flèches des passages intergénérationnels entre ces situations de classe. Plus le trait est épais, plus ces passages sont fréquents.

On peut tester l’idée à partir de nombreuses bases. Parce que j’avais l’enquête TRA sous la main (déjà explorée ici), voici ce qu’une exploration donne, pour le XIXe siècle. Les flèches indiquent que “les pères de telle profession ont souvent des fils de telle profession”. Les couleurs indiquent l’appartenance à une “communauté”, repérée par un algorithme (“walktrap.community”, avec igraph, dans R). [D’autres algorithmes auraient été possibles, mais je ne cherche pas ici à repérer le meilleur découpage.]

On repère bien, en violet, un gros groupe composé de domestiques, de journaliers, manoeuvres, sabotiers et bergers… Un deuxième groupe travaille la terre (fermiers, ouvrier agricole, laboureur) ou les frontières (marins, douaniers)… Les deux groupes verts regroupent des professions “mobiles” mais liées au travail agricole : l’occupation centrale étant “cultivateur” (CVR); et des professions plutôt commerciales immédiatement dérivées du travail de la terre (meunier, maréchal ferrant….) Le groupe bleu est doublement séparé du travail agricole (les professions fournissent des “outils d’outils” : tailleurs, marchand, menuisier, cordonnier, tonnelier) et contiennent des professions “nouvelles” (au XIXe) comme instituteur et employé. Un dernier groupe, en rose, contient les professions financières (rentiers, employés de commerce et négociants), qui fournissent les outils des outils des outils ?
La description n’est pas inutile… reste à savoir si ces “communautés” peuvent sérieusement être considérées comme des “classes”, ne serait-ce qu’au sens wébérien.
Pour aller plus loin, je recommande la lecture des billets de Pierre Mercklé, Réseaux sociaux contre classes sociales ou Les réseaux sociaux contre les classes sociales ? Pour en savoir un peu plus

Un graphe dynamique et interactif avec d3.js

R est un logiciel formidable. Mais d’autres outils sont plus adaptés pour une présentation sur internet. Il existe un ensemble d’instructions appelées d3.js, qui permettent en quelques instructions de mettre en ligne des graphiques interactifs. Pour deux exemples, voir ce réseau de sociologues et ce réseau d’écrivains.

Voici comment faire la même chose, chez vous.
Ce “tutoriel” nécessite quelques connaissances de R et de html.

Le point de départ :
– vous avez créé un graphe, dans R, avec le package igraph. Ce graphe se nomme g2. Il est constitué de “vertices” (des individus par exemple) et de “edges” (des liens entre individus). À chaque individu, vous avez associé un “groupe” : V(g2)$group (il peut y avoir plein de groupes, numérotez-les)
– il s’agit maintenant d’exporter ce graphe (ou une partie), dans un format que d3.js peut comprendre… et d3.js comprend surtout le .json
– le code suivant va enregistrer un fichier .json utilisable par d3.js, en se servant du package RJSONIO

library(RJSONIO)
 
#creation de la partie qui renseigne les "nodes"
temp<-cbind(V(g2)$name,V(g2)$group)
colnames(temp)<-c("name","group")
js1<-toJSON(temp)
#creation de la partie qui renseigne les "liens"
write.graph(g2,"Desktop/edgelist.csv",format="edgelist")
edges<-read.csv("Desktop/edgelist.csv",sep=" ",header=F)
colnames(edges)<-c("source","target")
edges<-as.matrix(edges)
js2<-toJSON(edges)
#concatenation des deux parties
reseau<-paste('{"nodes":',js1,',"links":',js2,'}',sep="")
write(reseau,file="Desktop/reseau.json")

Created by Pretty R at inside-R.org

Ce fichier .json a normalement la structure suivante :

{
"nodes":[
{"name":"Nom1","group":4},
...
{"name":"Nom3","group":3}],
"links":[
{"source":0,"target":1},
...
{"source":138,"target":126}]
}

Ensuite : téléchargez ce fichier reseau.txt, enregistrez le dans le même répertoire que celui dans lequel est enregistré reseau.json. Changez l’extension (remplacez .txt par .html).

Des proximités commerciales entre sociologues

Le site amazon propose des choses intéressantes. Non seulement mes livres, mais aussi les livres des collègues, et, souvent, une liste d’auteurs “similaires”. Ainsi, si vous allez sur la page du Coulmont, vous verrez que “les clients ont aussi acheté les livres de ces personnes” :

Aujourd’hui — car cette liste est mouvante — “je” me retrouve associé à d’illustres sociologues. Mais ce n’est pas réciproque. Sur la page du Bourdieu, “je” n’apparais pas comme lui étant associé.
Mais bon… amazon nous propose une sorte de trou de serrure par lequel apercevoir un réseau de relations commerciales entre auteurs.
On peut essayer de recomposer une partie de ce réseau (en agrandissant le trou de la serrure).

Cliquez pour télécharger un fichier PDF zoomable

Dans ce réseau, tel qu’il est ici reconstitué (en partant de la page “Coulmont” et en récupérant tous les liens d’ordre 2 — les voisins des voisins du Coulmont), fait sens : par exemple, les économistes ont tendance à se retrouver associés aux économistes (même si, ici, c’est une branche particulière, plutôt régulationniste, qui apparaît) :

Le point de départ importe : partir de “Coulmont” ne donnera pas tout à fait le même réseau de relations que partir de Louis Pinto ou du Lord Voldemort de la sociologie française… Mais quel que soit le point de départ, les “communautés” que l’on peut repérer semblent faire sens, de manière disciplinaire (sociologie, histoire, économie, philosophie) ou même entre sous-disciplines (sociologie de la culture, sociologie économique…).
Le tout a été réalisé avec R. Je peux mettre le code en ligne, mais je n’en suis pas très fier, c’est du code bidouillé et redondant.
Pour aller plus loin, je vous conseille le blog Data Sciences Sociales de Ollion et Hobeika.
mise à jour (31/10/12) : une visualisation plus interactive est proposée ici

Prénoms et mentions au bac, édition 2012

Mise à jour
Le “Projet mentions” vous permet d’avoir accès aux statistiques, à la répartition des notes des personnes portant le même prénom que vous, et à une comparaison des résultats du “groupe-prénom” avec la moyenne des candidats.
 

 

Cette année [voir ici pour 2011], plus de 25% des Madeleine, Irene, Come et Ariane qui ont passé le bac ont reçu mention “très bien”. Plus d’une Marie-Anne, d’une Anne-Claire et d’un Gaspard sur cinq ont reçu cette mention. Même mention pour 15% et plus des Violette, Apolline, Iris, Beatrice, Judith, Domitille, Hortense, Fleur, Daphne, Noe, Lara, Henri, Adele, Rose, Augustin, Astrid et Eleonore.
À ces prénoms sont associés relativement peu d’échecs au bac, repérés ici par l’indication “Passe second groupe” (ce qui signifie rattrapage à l’oral, je pense). Seules 3% des Madeleine sont dans ce cas.
À l’opposé de cette dimension de l’espace social : aucun des quelques 125 Youssef et 105 Nabil n’ont obtenu de mention “TB”. Mais plus de 30% d’entre eux sont dans la situation de passer l’oral de rattrapage. Seules une ou deux Sandy, Alison ou Sofiane décrochent la mention TB. 4 Christopher (sur 300) et 5 Mohamed (sur 400). 8 Cassandra et 8 Sabrina sur 470. Plus d’un tiers des 140 Yacine et Linda devront passer les épreuves de rattrapage.

Cliquez pour rendre plus lisible ce graphique

La différence entre la proportion de personnes ayant reçu la mention TB et la proportion de personnes devant passer en second groupe) nous renseigne indirectement sur l’uniformité de la population. Certains prénoms semblent beaucoup plus concentrés sur l’une ou l’autre option. Pour Come, Ariane et Madeleine, la différence est de 20 points ou plus. Pour d’autres prénoms, le contraire se remarque: les Aude et les Hippolyte sont 15% à recevoir la mention TB, ils sont aussi 15% à passer au rattrapage, signalant que ces “Aude” et ces “Hippolyte” ont des origines sociales variées. [Il faudrait calculer un indice de dissimilarité/concentration pour chaque prénom]
 
Note : Pour repérer ces associations entre prénom et mention, j’ai “aspiré” sur un site internet les résultats nominatifs de plus de 340 000 personnes ayant passé le bac en 2012. Cette méthode souffre de certains biais : je pense que certains candidats n’autorisent pas la diffusion de leurs résultats. [mise à jour] Il y a eu, en 2012, plus de 700 000 candidats, dont 220 000 candidats au bac pro (que je n’ai pas étudié). Ce sont donc [corrigé] 480 000 candidats au départ, et mes données portent sur un peu moins de 350 000 personnes ayant eu une moyenne de 8 ou plus ET n’ayant pas refusé que leurs résultats soient diffusés.[fin de la mise à jour]

Quelques flux de mobilité

Je continue l’exploration commencée dans le billet précédent. Je regarde ici, à partir de quelques dizaines de millier d’actes de mariage au XIXe siècle, les professions de l’époux, du père de l’époux et du père de l’épouse. Ceci pour prendre en compte non pas seulement la mobilité “père–>fils”, mais aussi la mobilité “beau-père–>beau-fils”.
Les “flux” ne sont pas les mêmes.
Ainsi “l’employé aux chemin de fer”, plus que de raison, épouse une fille d’employé, mais il est lui-même fils de mécanicien. L'”avoué” est fils de “propriétaire”, mais il épouse une fille de “rentier”. Le garçon boucher est fils de boucher, il épouse la fille d’un marchand. Les serruriers “donnent” leurs filles à leurs partenaires de travail : aux mécaniciens et aux menuisiers. Les filles de terrassiers et de peintres choisissent des maçons.
Explorez le graphe en haute résolution