Étudiant : Léo Folcher
Maître de stage : Guy Dumoulin
Pré-rapport de stage en entreprise
Sommaire (provisoire)
I- Contexte
1.1 L'entreprise 3
1.2 La base de données 3
1.3 Le logiciel Harmonie 4
1.4 Objectifs 6
II- Open Base Gédéon
2.1 Investigation et complétion de la base de données 6
2.2 Analyses statistiques à partir de Gédéon 7
2.3 Traitement R Studio
2.3.1 Redéfinition des coordonnées des communes et des frontières
2.3.2 Importation des données dans R Studio
2.3.3 Cartographie
III- Autres Missions
3.1 Test de la nouvelle version d'Harmonie 9
3.2 Traitement de petits dossiers
IV- Conclusions 10
NB : Toutes les parties ne sont pas complétées, elles dépendent de l'avancement du stage au bout de
3 semaines.
Je tenais à remercier Guy DUMOULIN pour son encadrement, ses apports culturels, ses
connaissances son franc-parler et sa passion des données ;
David LEBOURG pour m'avoir expliqué et m'aider dans la typologie et les analyses discriminantes
des jeux de données ;
Fabien LEBOURG pour m'impliquer dans le quotidien de l'entreprise, pour me faire tester les
nouveautés, et pour m'avoir initié aux assertions ;
Stéphane CHARTIER pour m'avoir accueilli et intégré dans l'équipe au premier jour, et pour
m'avoir montré le fonctionnement du logiciel Harmonie ;
Et je remercie tout le reste de l'équipe, Sylvie, Camille, Marie-Noëlle, Grégory et Asapha pour leur
sympathie et leur proximité.
1
Avec l'essor d'Internet durant la dernière décennie, l'accès aux informations de toutes sortes est
devenu commun à tout le monde. Néanmoins la plupart des données sont présentées sous forme de
tableaux ou de comptes rendus, et ne permettent pas d'avoir un détail sur une sélection plus précise.
C'est pourquoi certains instituts se sont joints à différentes organisations nationales ou régionales
dans le but de fournir aux utilisateurs des données brutes et complètes sur l'ensemble des secteurs.
En France, le gouvernement a instauré il y a quelques années [Link] qui regroupe l'ensemble
des données open sources liées au territoire national. Leurs informations sont tirées soit de l'INSEE,
soit de mairies et de conseils départementaux qui mettent à contribution les données qu'ils
possèdent. Ainsi des villes comme Toulouse ou Paris mettent en ligne une pléiade d'informations,
allant de la liste complète des rues aux bornes vélib' et autres détails issus de recensements. A
l'échelle nationale, on retrouve des données sur les emplacements de commerces, médecins,
services, équipements ou encore effectifs de la police, soit par commune soit par département.
2
I- Contexte
1.1 L'entreprise
ADN est une petite société française indépendante d'informatique tertiaire d'une dizaine d'employés.
Elle est spécialisée dans trois domaines précis :
- Le traitement des données : nettoyage, contrôles de cohérence, redéfinition des variables;
- L'analyse statistique : tableaux, pondération, analyses multivariées, rapports d'études;
- Le développement informatique : conception d'une gamme de logiciels;
La société a développé trois gammes de logiciels :
- Harmonie : gestion de tableaux croisés complexes, facilite le traitement des données;
- Daisie : outil d'analyse statistique performant;
- Slidie : Pour les rapports d'études, fonctionne sur le modèle de PowerPoint avec des
possibilités plus avancées et nombreuses;
La société possède de nombreux contrats avec différentes entreprises pour lesquelles elles
fournissent des comptes-rendus et bilans annuels. Dans leurs contacts on peut notamment citer EDF,
BVA, Crédit du Nord, IPSOS, UPMC (Université Pierre&Marie Curie), Auchan, SFR, Orange.
Ce sont eux qui ont entres autres fournit les estimations des départementales 2015 pour CSA et
l'IFOP.
ADN est aussi un partenaire officiel de Microsoft.
1.2 La base de données
M. Guy Dumoulin a commencé à recenser, depuis quelques années, toutes les données communales
de France via les différents sites d'Open Data. Toutes ces informations ont été concentrées au sein
d'une seule base nommée Gédéon. C'est une base de près de 1300 variables par 36600 communes
dont voici un chapitrage des différentes parties.
3
Gédéon dispose de la liste exhaustive des communes rangées par départements, triées en fonction
des communes de plus ou moins 1 000 habitants, de toutes les données démographiques, de
l'éducation des français, et quelques données comptables de C10 à C70 et C117.
Elle dispose aussi du nombre de commerces, médecins et services en tout genre répertoriés de C101
à C116.
On note aussi la présence de tous les résultats électoraux depuis 2007 de C71 à C85. Ces données
ne sont pas dans le même fichier que le reste des données. Elles sont stockées dans un fichier de 7
variables et 4 382 355 lignes. (toutes les élections sont à la suite en lignes d'où le nombre colossal
d'individus dépassant 4 000 000)
Enfin, M. Dumoulin a implanté un système de calcul de distance à l'aide des coordonnées X et Y
des communes. Ainsi, outre quelques points de repères tels Paris ou les centrales nucléaires, il a
implémenté les distances vis à vis de toutes les préfectures et sous-préfectures de France en C60 et
C80.
La base est codée en ASCII. Pour la lire on utilise un éditeur de texte, car la base est trop lourde
pour être supportée par un tableur. En effet le premier fichier pèse 265 Mo et le second sur les
élections 188Mo.
Pour traiter et visualiser la base, on utilise le logiciel Harmonie présenté ci-après. De plus, le
logiciel Daisie permet d'effectuer toutes sortes d'analyses, tris croisés, typologie sur les variables.
L'avantage de ce stage est donc de pouvoir travailler sur une base de données en effectuant un long
processus, allant de la complétion, nettoyage de bases, puis de différentes analyses sur des critères
de distance, de dénombrement ou encore sur un système booléen de présence, et enfin de réaliser
des comptes rendus, rapports et autres cartes.
1.3 Le logiciel Harmonie
Harmonie est un logiciel permettant de prendre en charge des tableaux de données de
différents formats. C'est un outil permettant de réaliser des tableaux indépendants les uns des autres
à partir des variables du classeur d'origine, de manière intuitive. Afin qu'Harmonie prenne en charge
correctement le fichier, plusieurs étapes sont nécessaires.
Pour commencer, Harmonie crée un Datamap du fichier. C'est à dire qu'il va répertorier toutes les
variables se trouvant dans le fichier, leur donner un niveau de travail, un type de données, et si
besoin est, les libellés du type. L'utilisateur peut décider de laisser Harmonie gérer automatiquement
les données et les utiliser telles quelles, ou bien il peut choisir d'effectuer une conversion, c'est à
dire qu'il va pouvoir modifier quelques paramètres avant de créer le datamap, et ensuite pouvoir
modifier notamment les types de données. En effet Harmonie reste un programme, et pour peu que
l'identifiant ne soit qu'une série de chiffre, comme par exemple le code INSEE d'une commune, il
va le considérer comme une variable quantitative. L'utilisateur devra alors manuellement changer le
type de données.
Il existe trois différents types de données : CONT pour des variables continues, soit numériques ;
DISC pour des variables discrètes avec plusieurs modalités de réponses dont on doit définir le
nombre et la liste ; et TEXT pour des variables alphanumérique qui sont soit des phrases du style
tweets, soit des variables discrètes dont les libellés sont trop nombreux à lister, auquel cas on
préférera la considérer comme une variable TEXT.
4
Voici un aperçu de l'onglet ''VARIABLES'' du Datamap
Le HEADER VAR est nécessaire pour afficher la variable sur Harmonie. S'il n'est pas présent, la
variable ne s'affichera pas. NAME est le nom de la variable. LEVEL correspond au niveau de la
variable. Bien souvent, le niveau correspond soit au fichier d'origine (si l'on travaille sur deux
fichiers différents ou plus), soit à la feuille de calcul d'un fichier (si un fichier se divise en plusieurs
années, et que chaque année correspond à une feuille de calcul par exemple. WHERE indique la
colonne à laquelle se trouve la variable, ou bien le caractère de départ si c'est un système de
séparation à longueurs fixes. WIDTH est la longueur que prend la variable. Ici, nous n'avons que
des colonnes donc width=1. Mais avec des longueurs fixes, cette longueur peut varier. Enfin
LABELS définit le nombre de libellés de la variable discrète.
Fenêtre de travail de Harmonie avec croisement de variables
5
L'interface simple de Harmonie confère un avantage de rapidité dans le traitement et l'analyse. Ici,
j'ai croisé deux variables qualitatives, et il en ressort un tableau de distribution verticale. Les options
sont réglables dans le Control Panel en bas. On peut y modifier les données que l'on veut pour les
variables discrètes ou pour les variables continues, si l'on veut afficher les totaux, la base interrogée
et non plus uniquement les répondants etc. Dans cet exemple, nous pouvions remplacer les
fréquences verticales par les effectifs.
Il est possible de pondérer ce croisement par une variable quantitative, par exemple ici le nombre de
voix exprimées.
Nous pouvons aussi définir un univers pour restreindre le champ d'action, par exemple n'avoir les
résultats que d'un seul département.
L'onglet de gauche permet la sélection des variables. En haut cela correspond au chapitrage présenté
en amont qui regroupe chaque variables portant des informations similaires ou corrélées ensemble,
et en bas cela correspond au plan détaillé du chapitre. Les variables qualitatives s'affichent en bleu,
les quantitatives en vert. Il est possible d'effectuer n'importe quel croisement, la seule limite est
notre logique.
En outre, Harmonie permet de créer, à partir de toutes ces fonctionnalités de nouvelles variables
issues de ces croisements.
1.4 Objectifs
L'objectif général est de réaliser une typologie des communes de France par rapport aux services et
aux commerces en présence et par rapport à la répartition de la population sur le territoire afin de
pouvoir observer les différences de tendances et de comportements qu'il existe au sein des
communes. Ce travail commence par une segmentation qu'il faut réaliser en amont, sur laquelle on
applique une analyse discriminante. Cette AD nous donnera alors les variables actives et les
variables explicatives que l'on pourra utiliser ensuite pour la typologie. Par la suite, on pourra
construire toutes sortes de graphiques, tableaux, et surtout des cartes de France à l'aide de R.
L'idée est à terme de pouvoir réaliser différents rapports et comptes rendus d'analyses en fonction de
ces données. L'analyse la plus pertinente qu'il faudrait réaliser serait de mettre en évidence les
régions ou zones d'enclavement, suffisamment loin de tous services pour être considérés comme
telles. Les comptes-rendus seront publiés sur le site internet de l'entreprise.
II- Open Base Gédéon
2.1 Investigation et complétion de la base de données
L'avantage d'une base Open Source est qu'elle peut être constamment alimentée par des données
diverses que n'importe qui peut récolter. Et à une telle échelle communale, n'importe quelle donnée
de distance s'avère intéressante et a une signification plus ou moins utile. Au début de mon stage,
avant que le vrai travail d'utilisation de la base démarre, j'ai recherché quelques variables
supplémentaires que l'on pouvait ajouter.
Nous avions déjà énormément de variables sur les commerces / services / loisirs sportifs dispatchées
à travers les différentes communes sans prendre en compte un quelconque aspect d'importance ou
de rayonnement. J'ai pris l'initiative de recueillir de nouvelles variables pour compléter Gédéon.
6
Ainsi j'ai commencé par dresser la liste des hypermarchés des trois plus grosses enseignes
françaises (Carrefour, Auchan, Casino), et la liste de tous les magasins Carrefour, car ils sont
présents sur toutes les déclinaisons de surfaces (hyper, super, supérettes, hard discount).
Puis j'ai recensé toutes les villes possédant une sortie d'autoroute. Même si une autoroute ne signifie
pas à elle seule un désenclavement, elle permet néanmoins de définir la rapidité de déplacement et
d'accès à une zone. Cela est particulièrement dans des zones plus sujettes à l'enclavement, telles les
montagnes. Nous n'avons pas la liste complète des sorties mais seulement les villes qui en
possèdent une, car nous travaillerons la base essentiellement avec des distances et non des
dénombrements.
Enfin dans un aspect plus culturel, j'ai recensé tous les stades de football et de rugby de plus de
9000 places. Il est intéressant de constater que tous les clubs de premières et deuxièmes divisions
dans chacun des deux sports y sont représentés. Cela permet de voir les dominantes et les zones
d'influences directes de chaque club, car un grand stade implique un club prestigieux donc une
communauté de supporters qui sera plus ou moins étendue.
2.2 Analyses statistiques à partir de Gédéon
La première étape dans l'analyse de Gédéon est de définir une segmentation de la base de données.
Compte tenu des disparités que l'on risquait d'obtenir en fonction des conditions géographiques, j'ai
crée une segmentation par type de reliefs. On obtient un découpage en 13 régions. Chaque région
est constituée de départements dont l'essentiel des communes est situé dans le type de relief auquel
le département appartient. Ici on ne cherche pas à ce que les communes soient également réparties
au sein des régions, on veut seulement les regrouper par types afin de réaliser plus tard une
typologie plus précise et plus rapidement. J'ai obtenu le découpage suivant :
MONTAGNES : 16 départements ; 5266 communes
VALLEES (Rhin, Rhône, Seine) : 17 départements ; 7735 communes
LOIRE (vallée de la Loire) : 7 départements ; 2129 communes
MEDITERRANNEE (longeant la côte méditerranéenne) : 5 départements ; 1011 communes
ATLANTIQUE (littoral atlantique) : 5 départements ; 2170 communes
BRETAGNE : 4 départements ; 1267 communes
MANCHE : 3 départements ; 2197 communes
FRONTIERES NORD-EST (frontière belge) : 4 départements ; 2437 communes
SUD-OUEST : 10 départements ; 3823 communes
GRAND OUEST (nord-ouest sauf côtes et vallée de la Loire) : 7 départements ; 2330 communes
NORD-EST : 9 départements ; 5006 communes
ILE-DE-FRANCE (sauf Seine-et-Marne) : 7 départements ; 786 communes
CORSE : 2 départements ; 360 communes
Puis par dessus cette segmentation, j'ai réalisé un second niveau de segmentation où j'ai divisé les
communes par un système PMG (Petit Moyen Grand) dans chaque région. Pour coller avec des
normes électorales, j'ai donné 3 bornes, à 300, 1000, et 3500 habitants.
Les bornes de 1000 et 3500 correspondent aux différenciations des élections municipales. Avant
2014, seules les communes de plus de 3500 habitants votaient pour une liste, désormais la taille des
communes est réduite à 1000 habitants pour augmenter le nombre de conseillers municipaux.
La borne à 300 est purement quantitative, il s'avère que près de 40 % des communes en France ont
moins de 300 habitants. Elle permet ainsi d'effectuer un fort écrémage des très petites communes en
amont.
7
En tenant compte des effectifs faibles, on se retrouve avec la Corse qui ne possède que deux classes
(plus ou moins 300 habitants) et l'Île-de-France qui en possède trois (regroupement de 0 à 1000
habitants). On se retrouve donc avec 49 segments pour réaliser notre typologie.
Avant de réaliser la typologie, on effectue une analyse discriminante sur les variables. Par soucis de
pertinence, nous ne conservons que les variables de distance pour réaliser nos analyses.
Grâce au logiciel Daisie, nous lançons cette AD. Le programme conçu par M. David Lebourg en
python va effectuer une prédiction de la typologie. En premier lieu elle donne le résultat des taux de
bien classés à la première itération et à la dernière. C'est à dire qu'elle donne dans un tableau croisé
de l'effectif que l'on observe avec l'effectif attendu pour chaque segment, le pourcentage vertical des
villes qui sont restées dans la même classe. Généralement dans la table de prédictions, la première
segmentation n'obtient pas un taux de bien classés supérieur à 40 % et il faut jusqu'à une semaine de
test et de resegmentation pour obtenir un taux correct dépassant les 70 %.
Ici la segmentation que j'ai appliqué au jeu de données est déjà supérieure à 52 %, au premier test,
ce qui signifie que la segmentation aura très peu de changements par la suite, on peut même
éventuellement la garder comme telle. Nous nous sommes rendus compte que cette segmentation
par reliefs permettaient vraiment d'obtenir des segments typés et donc de faire une typologie
pertinente plus tard.
Puis nous avons les Variables Discriminantes avec leur taux de contribution. Cela fonctionne sur le
même principe que les composantes principales d'une ACP, les VD expliquent un certain
pourcentage d'informations, de discrimination dans le cas présent.
Dans une analyse discriminante, le taux de contribution n'est pas calculé par le rapport variance
intra / variance inter-classe, mais calculé par le rapport variance intra / variance totale.
D'après le tableau que nous avons, nous considérerons qu'il y a 18 variables discriminantes.
Enfin le logiciel nous fournit un tableau qui croise les variables aux segments et le résultat de ce
croisement nous donne l'influence qu'à une variable sur un segment dans le type auquel il
appartient. Ce sont des valeurs centrées. Dans le cas d'une distance, une valeur de -120 indique que
la distance moyenne par rapport au service de la variable est très faible dans les communes de la
région, alors qu'une valeur supérieure à 80 indique que le service concerné est en général très loin
des communes du segment.
8
Une fois que nous aurons répertorié les variables importantes pour chaque segment, nous aurons
une vraie typologie, et nous pourrons procéder à l'analyse de cette typologie et aux productions
cartographiques.
III- Autres missions
3.1 Test de la nouvelle version de Harmonie
A mon arrivée dans ADN, la nouvelle version du logiciel Harmonie venait de sortir et elle contenait
(et contient toujours) beaucoup d'erreurs et de problèmes. Fabien Lebourg directeur de l'agence m'a
donc demander de tester les fonctionnalités de Harmonie, faire des comptes rendus oraux des
problèmes rencontrés. En deux semaines, j'ai testé 6 versions différentes du logiciel, en particulier
dans un cas précis.
L'entreprise a repris un fichier (Holidays) contenant les résultats d'un sondage sur les vacances des
touristes dans différents pays d'Europe. Ce fichier est intéressant pour tester le logiciel car il
contient tous les types de données que l'on peut trouver, tous les types de questions d'un sondage et
permet donc de faire tous les types de croisements et de tableaux possibles.
Je suis passé par deux chemins sur le logiciel Harmonie pour ce cas de figure. En effet je n'ai pas
seulement modifié un datamap comme présenté en 1.3 mais j'ai aussi utilisé un fichier de
recodification. Cela a pour avantage de tester les assertions.
En programmation, une assertion est une condition qui doit être vérifiée comme vraie, sinon le
programme peut selon le cas être interrompu à l'assertion fausse.
Dans Harmonie, chaque tableau est le résultat d'une ligne de commande, et peut être transformé en
variable. Je devais alors compléter les assertions pour chaque tableau que j'avais de listé. C'est à
dire rentrer tous les paramètres que je pouvais déceler visuellement et logiquement à partir du
tableau. Ainsi il me fallait trouver pour chaque tableau le nombre de répondants, le nombre de
libellés, le nombre de colonnes, de lignes et la distribution pour des variables discrètes.
Ces paramètres sont stockés dans un fichier recodes.
Ensuite le datamap est ouvert classiquement dans le menu de départ, et une fois que les variables
sont stockés, on bascule dans un menu qui permet d'appliquer le fichier recodes sur le datamap. Ce
fichier est appelé batch (lot). L'exécuter sur le fichier auquel il correspond permet de vérifier, grâce
aux assertions, sa cohérence.
9
Enfin, voici le moniteur qui affiche
le traitement des données par
Harmonie. J'entends par traitement
la prise en charge initiale. Ici, nous
avons le résultat de l'exécution du
batch d'assertion sur notre fichier
Holidays. Les lignes bleues
indiquent que l'assertion est vérifié
et vraie et qu'il n'y a pas d'erreurs.
En rouge ce sont les assertion
vérifiées et qui sont fausses.
Harmonie synchronisera malgré
tout le batch, mais les variables
concernées par les assertions
fausses seront inutilisables.
IV- Conclusions
Arrivé dans un univers de travail que je n'avais pas encore rencontré, avec des outils nouveaux, il
m'a fallu d'abord me familiariser avec l'environnement. L'entreprise dispose de logiciels de calcul
puissants qui me permettent et vont encore me permettre d'avancer bien plus rapidement dans la
préparation des données et dans l'analyse afin de m'attaquer plus longtemps et donc plus
soigneusement à l'interprétation des résultats.
Je découvre une nouvelle facette des statistiques et de l'analyse, qu'est la typologie, un domaine très
intéressant et très riche.
Justement, à l'heure actuelle nous possédons tellement de données que nous ne savons pas vers où
orienter la typologie. Regarde-t-on les communes, ou regarde-t-on les commerces et les services ?
Nous pourrions aussi faire les deux. En théorie, c'est l'analyse discriminante qui nous dis vers où
aller, vers où pointer les résultats, mais en pratique, si nous savons les résultats que l'on veut obtenir
précisément à l'avance, il y a toujours un tri naturel qui est fait des variables qui ne nous seront pas
utiles, car elles ne typent pas ce que l'on veut ou bien elles ne typent pas dans le bon sens.
10
Actuellement nous sommes loin de tout ça. Le rythme peut paraître assez lent, mais il a d'abord
fallu prendre en main la base, la compléter (ce travail est toujours en cours), l'augmenter, trouver
une segmentation idéale, faire un premier essai d'analyse discriminante afin d'avoir un premier
aperçu de ce que pourra donner la typologie finale. En clair nous avons pour l'instant fais un gros
travail de préparation.
L'essentiel du travail reste à accomplir. Il faut encore faire des tests sur les segmentations, parfaire
la typologie, puis une fois que nous aurons obtenu des résultats satisfaisants nous pourrons analyser
cette typologie de manière visuelle, avec des tableaux, des graphiques, et surtout des cartes de
France et des communes.
Enfin nous pourrons produire des comptes rendus et des mini-rapports d'analyses sur différentes
variables.
11