Actualité :
État de l'emploi bioinformatique en France : analyse des offres de la SFBI (2ème partie)

Nous revoilà pour la suite de notre premier article sur l'analyse des offres de la SFBI. On vous avait promis une analyse de l'évolution du marché, et c'est ce dont nous allons parler dans cet article.

Je vous renvoie au premier article si vous voulez plus d'informations sur l'origine des données et la disponibilité du code. Les contributions sur le Github du projet ont été bien ternes... ou plutôt inexistantes. C'est bien dommage car nous nourrissions le secret espoir de publier ici vos meilleurs graphes.

Le code n'est probablement pas facile à prendre en main. Nous avons donc choisi un format proche d'un jupyter notebook pour ce second article : le code qui génère les graphes est ainsi directement disponible. L'article est, de fait, un poil plus technique que le précédent, mais nous espérons que cela suscitera des vocations pour améliorer nos graphes, et surtout, en créer d'autres. Notons qu'il s'agit d'un excellent exemple de l'utilisation du module python Pandas sur des données réelles.

Chargement des modules nécessaires et des données

On entre donc dans le vif du sujet en commençant par charger les données contenues dans la base de données.

On constate que l'on a gagné environ 150 offres depuis mi-février. Vous pouvez voir que chaque offre dans job_list est un dictionnaire qui contient 11 clés. Comme ce n'est pas très pratique à manipuler, on va créer ce que l'on appelle un dataframe grâce au module Pandas. Au passage on ne va récupérer que les champs potentiellement intéressants pour cet article.

contract_type contract_subtype duration submission_date
count 1437 1437 1437 1437
unique 4 11 33 671
top CDD 6 2015-11-09 00:00:00
freq 785 412 253 12
first NaN NaN NaN 2012-04-23 00:00:00
last NaN NaN NaN 2016-05-19 00:00:00

Ce petit tableau généré par la fonction describe de Pandas est très pratique. Il nous donne pour chaque champ le nombre total d'offres, le nombre de champs uniques (par exemple, 4 types de contrats), celui qui ressort le plus souvent (les CDD), et le nombre de fois qu'il ressort (785 fois). On peut également voir que la première offre date du 23 avril 2012, et que la dernière est du 19 mai 2016 (date à laquelle a été mise à jour la base de données).

Évolution du nombre d'offres sur la période 2012-2016

Premier exemple avec un petit graphe tout simple : peut-on tracer l'évolution de la quantité d'offres au cours du temps ? On peut obtenir ça très facilement en quelques lignes avec la puissance du module Pandas.

Comme vous pouvez le voir, on obtient en une seule ligne de code l'information demandée, il ne reste plus qu'à optimiser l'affichage.

Evolution du nombre d'offres par bimestre

Puissant n'est-ce pas ?

Nous avons décidé de regrouper les données par bimestre (tranches de 2 mois) car les données sont très bruitées d'un mois sur l'autre, ce qui rend la visualisation difficile. Les points correspondent à des fins de mois et comprennent toutes les offres des 2 mois précédents (par exemple, un point au 31 décembre comprend toutes les offres du 1er novembre au 31 décembre). Notons ainsi que les graphes vont jusqu'au 30 juin, le dernier bimestre est donc inévitablement sous-évalué puisqu'il est encore en cours au moment de la rédaction de l'article.

On peut aussi utiliser le sous-module dates de matplotlib pour obtenir un graphe légèrement plus élaboré (avec par exemple, une meilleure lisibilité des mois de l'année). Cela prend quelques lignes de plus car nous n'utilisons plus les méthodes de visualisation du module Pandas.

Evolution du nombre d'offres par bimestre (en plus joli)

On voit que la fréquence de publication des offres augmente au cours du temps. On devine aussi quelques variations saisonnières, avec notamment un creux chaque année autour de la période estivale. Mais depuis plusieurs mois, la liste s'est maintenue au dessus de 1 offre par jour. À l'heure actuelle, le mois le plus riche en offres est le mois de novembre 2015 avec une moyenne de plus de 2,5 offres par jour. Il fait partie du bimestre le plus haut sur le graphe du haut.

Notons que la SFBI (et la liste de diffusion bioinfo) pousse de plus en plus à passer par son site internet, ce qui pourrait facilement expliquer cette croissance (notre jeu de données ne prend en compte que les offres hébergées par le site). Une question demeure, cependant : dans quelle mesure la progression observée ici reflète-t-elle la progression réelle de l'offre en bioinformatique ? En effet, tous les recruteurs ne passent pas nécessairement par la SFBI pour diffuser leurs offres. Il est donc toujours nécessaire de garder un peu de recul face à ces données.

Évolution des types d'offres sur la période 2012-2016

De quels types d'offres parle-t-on ? Est-ce que comme l'a évoqué Sophie Schbath, présidente de la SFBI, la proportion de contrats courts augmente, ou s'agit-il d'un biais de perception ? Une première analyse consisterait à tracer le graphe précédent par type de contrat, ce qui se fait là encore très facilement avec Pandas.

CDD CDI Stage Thèse
submission_date
2012-04-30 1 0 1 1
2012-06-30 6 0 0 3
2012-08-31 9 1 0 0
2012-10-31 15 3 2 0
2012-12-31 11 2 7 0

Evolution du nombre d'offre par type de contrat

Évolution du nombre et de la proportion d'offres par type de contrat.

Le graphe de gauche donne la quantité d'offres par type de contrat chaque bimestre depuis l'ouverture du site. Le graphe de droite représente la proportion de trois types d'offres comparables : CDD, CDI et Thèse (les stages ne touchent pas le même public). On constate tout d'abord que les CDD sont majoritaires sur toute la période. Bien que leur proportion ait diminué depuis l'ouverture du site, elle semble s'être stabilisée depuis 2014 autour de 70%. Chaque mois, un abonné à la liste a ainsi le choix entre environ 20 CDDs, 7 CDI et 3 thèses. On n'observe cependant pas une augmentation de la proportion de CDD comme imaginé initialement. Cette impression venait probablement du fait que le nombre de CDD postés sur le site a énormément augmenté, et que l'on est moins attentifs au fait que toutes les autres offres l'ont fait dans les mêmes proportions.

On devine quelques variations saisonnières pour les contrats très connotés "académique" comme les stages et les thèses : on trouve généralement les thèses au début de l'année, et les stages ne semblent exister que sous forme d'un énorme pic d'octobre à décembre (point culminant en novembre). Les autres contrats ne sont pas exempts de telles variations puisqu'on observe par exemple un pic de CDI pendant les mois de janvier-février 2014 et 2015. Ce phénomène ne semble pas s'être reproduit en 2016 (avec à la place, un pic de CDD). Certains membres de l'équipe l'expliquent par l'actualité et les incertitudes qui y sont associées (modification possible de ces contrats dans quelques semaines). Pour d'autres, cela peut simplement venir de la baisse du nombre de postes dans le public, ou d'une catégorie d'offres qui n'apparaîtrait plus sur la liste. Cela mériterait une analyse plus fine. Quels types de CDI ont disparu ? Quels types de CDD sont apparus ? Un cookie à qui trouvera la meilleure explication (données à l'appui).

Évolution des types de CDD sur la période 2012-2016

On rappelle que l'on a 4 sous-catégories de CDD, telles que définies sur le site de la SFBI au moment d'entrer une offre : Post-doc / IR, CDD Ingénieur, ATER et CDD autre. Le jeu de données ne comprend que 2 offres ATER sur toute la période, on va donc exclure cette catégorie de l'analyse. Pour rappel, les post-docs occupaient à eux seuls 50% du nombre de CDD publiés dans notre dernier article. Cette proportion est-elle variable au cours du temps ?

CDD Ingénieur CDD autre Post-doc / IR
submission_date
2012-04-30 0 0 1
2012-06-30 2 0 4
2012-08-31 3 0 6
2012-10-31 10 2 3
2012-12-31 2 3 6

Évolution du nombre d'offres par bimestre par type de CDD

Évolution du nombre et de la proportion d'offres par bimestre par type de CDD.

Il semblerait que le parent pauvre des sous-types de CDD soit le CDD autre. On observe massivement des CDD ingénieur ou Post-doc/IR, dans des proportions et augmentations comparables (les Post-doc/IR sont légèrement plus représentés). Les proportions sont stables depuis les débuts du site, l'analyse temporelle n'apporte ainsi pas grand chose sur cet aspect. Une séparation entre privé et public serait intéressante, mais nous n'avons pas les données nécessaires pour le faire à l'heure actuelle.

Évolution de la durée des CDD sur la période 2012-2016

Une donnée à laquelle nous avons cependant accès est la durée de ces CDD. Les contrats signés ont-ils tendance à l'être pour des durées plus courtes ou plus longues ? Comme nous l'avons vu dans l'article précédent, la nature discrète des durées des contrats (seulement 33 valeurs uniques sur plus de 1400 offres, d'après le tableau en début d'article) rend les distributions de durées très asymétriques. Il peut donc être intéressant de visualiser ça sous forme de catégories.

≤ 1 an 1 < x ≤ 2 ans > 2 ans
submission_date
2012-04-30 0 1 0
2012-06-30 2 3 0
2012-08-31 2 5 2
2012-10-31 7 6 0
2012-12-31 3 4 3

Évolution des nombres et proportions de CDD par catégorie de durée.

Évolution des nombres et proportions de CDD par catégorie de durée.

Finalement sur l'ensemble des CDD, les contrats courts (≤ 1 an) et les contrats moyens (entre 1 et 2 ans) augmentent à la même vitesse, et occupent donc des proportions comparables. Les contrats longs (plus de 2 ans) se maintiennent à une proportion constante sur la période. On a également essayé de tracer ça par type de contrat, mais nous n'avons pas vu de différences claires. On laisse à nos lecteurs curieux le soin d'explorer cette voie par eux même.

Au final, il n'y a pas d'argument majeur soutenant la thèse d'une diminution de la durée des contrats.  On constate cependant un pic de contrats courts début 2016. Reste à voir si la tendance va se confirmer sur le reste de l'année.

En conclusion, on a vu que l'on pouvait très facilement explorer ce jeu de données avec des commandes Pandas bien construites. Il y a probablement plein d'aspects auxquels nous n'avons pas pensé, et on compte sur vous pour nous aider. Les meilleurs graphes proposés sur Github ou dans les commentaires seront en effet au cœur de l'article suivant.

Merci à Akira, Kumquatum, lroy et Sylvain P. pour leurs commentaires et améliorations lors de la relecture de cet article. Merci à lroy pour sa gestion de la base de données et son aide dans la réalisation des graphes et la rédaction de cet article.

  • À propos de
  • Postdoc au LS2N à Nantes. Biologiste de formation, j'ai touché à la biologie des systèmes, la biologie synthétique et l'écologie. Je travaille actuellement sur la modélisation métabolique des communautés microbiennes à l'échelle des écosystèmes (données de TARA Océans). J'aime les belles équations, les modèles simples, le libre, les claviers bépo et Python.

4 commentaires sur “État de l'emploi bioinformatique en France : analyse des offres de la SFBI (2ème partie)

  1. Merci pour ce travail super intéressant pour les étudiants aussi bien que les profs.
    Si cela vous intéresse j\'ai gardé tous les mails d\'offres d\'emploi diffusés sur la liste Bioinfo depuis 2001!

    • Merci de ce retour. Le problème des mails c\'est que les offres ne sont pas formatées, donc ça rend très difficile les analyses, c\'est pour ça qu\'on s\'est concentrés sur les offres du site.

      On réfléchit actuellement à un moyen d\'en dire quand même quelque chose (on les a aussi stockés), mais bon c\'est pas trop la bonne période niveau disponibilité. Vous aurez sûrement des nouvelles d\'ici la rentrée 😉 .

  2. Super intéressant le détail et les explications, merci!

    Par contre, les offres cumulées prennent-elles en compte d\'éventuelles vacances multiples pour le même poste? Il serait intéressant aussi, par exemple, de voir ce que ça donne en nombre de poste pour les CDD en supprimant les postes au bout de leur durée, mais ça ne prendrait pas en compte les renouvellements. Pas facile de lire ces données!

    • Ce genre de subtilité n\'a pas été pris en compte, c\'est quelque chose de très compliqué à faire. Tous ces chiffres restent des approximations. Néanmoins ça serait très intéressant, je suis d\'accord.

Laisser un commentaire