Aller au contenu

Les curieuses machines de l’atelier – chap. 3 : Prédire le marché de la construction

Panneau de chantier

Bienvenue à toi pour ce troisième épisode de la série des curieuses machines. Cette colonne me sert de vitrine pour une machine conçue et fabriquée à l’Atelier. J’y explique en quoi elle consiste, ce qu’elle fait, et surtout à quoi elle peut bien servir !

22 février 2023 – Météo de la construction à Périgueux

Contexte

Cette machine sert à répondre au besoin d’un client qui souhaite pouvoir évaluer son marché de services à la construction de façon précise.

Il est possible aujourd’hui d’obtenir des informations sur les surfaces autorisées à la construction, soit de façon extrêmement détaillée par une longue liste d’informations sur chaque permis de construire délivré par l’administration, soit de façon beaucoup plus globale par des notes et des tableaux de conjoncture.

Le souhait de mon client est de pouvoir obtenir quelque chose d’assez proche des tableaux de projection fournis par l’administration, avec quelques différences cruciales :

  • La possibilité d’adapter les territoires considérés à son organisation. En clair, de pouvoir connaître le marché de la construction dans le Nord du Finistère, dans les communes aux alentours d’Aix-en-Provence, et ainsi de suite, pas seulement à l’échelle des départements.
  • La possibilité d’obtenir ces informations de façon plus régulière que ce qui est fourni aujourd’hui : tous les mois et non pas tous les trimestres.

D’autres aspects entrent en ligne de compte, comme :

  • Une meilleure maîtrise des données utilisées et de leur traitement, c’est à dire moins de variations intempestives et inexplicables d’une fois sur l’autre.
  • Une prise en compte simplifiée de la segmentation du marché en différents types de projet (logement, centres commerciaux…).
  • Un lien avec le carnet de commande des unités pour obtenir directement les parts de marché locales par segment.
Panneau de chantier
Panneau de chantier

La curieuse machine

J’entre ici dans quelques détails techniques, à la fois sur la structure de la machine, mais aussi sur la nature des données qu’elle a dû traiter.

L’exercice sera cette fois-ci difficile et frustrant pour moi. En effet nous parlons ici d’un petit bijou de technologie qui s’abreuve à de nombreuses sources de données publiques (merci data.gouv.fr pour le magnifique travail que vous réalisez!) et de l’entreprise.

Je veux tout de même les citer:

  • la liste des permis accordés pour la construction de logement depuis 2017,
  • la liste des permis accordés pour la construction d’autres locaux depuis 2017,
  • la liste des communes de France, bien entendu, mais aussi
  • les fusions, séparations, créations et autres changements de la liste des communes au fil du temps,
  • les coordonnées géographiques des centres géographiques des communes,
  • les coordonnées géographiques des limites de communes,
  • les coordonnées géographiques des parcelles cadastrales,
  • la liste des unités de mon client,
  • les fusions, séparations, créations et autres changements de la liste des unités au fil du temps,
  • la zone de chalandise de chaque unité (une liste de communes),
  • les carnets de commandes des unités.

Dans la suite, je vais me concentrer sur la description de la partie qui présente une complexité mathématique dans la machine : l’algorithme de prédiction.

A ce stade, chère lectrice, cher lecteur, je devrais t’avoir perdu. Quoi ? Une prédiction ? Quel rapport ?

Oui, je l’admets, ce n’était pas clair. Il y a une bonne raison pour laquelle cette machine a besoin de faire des prédictions pour connaître le présent – et même le passé ! C’est même ce qui a inspiré le titre de cet article, car prédire le présent est un exercice classique en météorologie…

Vue tridimensionnelle de la relation entre le nombre de permis (taille des points), leur date de délivrance et leur date de remontée de janvier 2017 à mars 2022.
Vue tridimensionnelle de la relation entre le nombre de permis (taille des points), leur date de délivrance et leur date de remontée de janvier 2017 à mars 2022.

Lorsqu’une commune Française accorde une autorisation d’urbanisme comme un permis de construire, elle est dans l’obligation d’en informer les services de l’Etat, pour que cette information puisse être publiée, entre autres. C’est la Loi qui oblige. La Loi, par contre, reste assez vague sur les délais dans lesquels cette information doit remonter. Certains permis de 2017 continuent encore aujourd’hui à apparaître dans la liste des permis plus de cinq ans après, même si la plus grande partie des informations arrive tout de même dans les mois qui suivent l’autorisation.
Un autre petit souci que la machine doit faire disparaître : ce retard plus ou moins grand à informer l’Etat dépend beaucoup de la commune ! Ainsi, je pourrais vous dresser un panorama des bons et des mauvais élèves en France à cet exercice il est vrai un peu secondaire dans l’optique d’une bonne gestion municipale… J’en connais… et vous savez, pas que des petites villes, hein !… Mais je m’égare, revenons à la machine.

En possession de la liste des permis de construire sur un territoire donné, il est possible de reconstituer, dans le temps, combien de permis étaient délivrés et connus sur ce territoire à une date donnée. On peut reconstituer l’oeil innocent que nous avions dans le passé. Si seulement c’était possible pour d’autres choses me direz-vous… Eh bien ce n’est pas possible. Voilà.

Cette table, construite pour chaque territoire, peut servir de base à des algorithmes simples de prédiction de séries temporelles.

La machine consiste donc en :

  • Un module pour détecter les données mises à jour par l’administration.
  • Un module pour aller récupérer toutes les données nécessaires et les enregistrer.
  • Un module pour lire toutes les tables, publiques ou spécifique au client.
  • Un module pour traiter la liste des permis de construire et en tirer deux tables : une plus simple pour le module de prédiction, une plus complète pour le module de post-traitement.
  • Un module de prédiction (nowcasting) du nombre de permis probablement accordés sur chaque territoire.
  • Un module de post-traitement pour transformer les permis en surfaces, puis en valeur de marché par territoire et par segment.
  • Un module de post-traitement pour rapprocher les marchés des commandes, par territoire et par segment, et obtenir les parts de marché.
Panneau de chantier
Panneau de chantier

La machine en fonctionnement : Le futur antérieur

Je veux détailler ici un peu plus, pour ceux que le sujet intéressera, les outils de traitement.

– – – – Lecteur, lectrice, ne lis pas le paragraphe qui suit si tu as un début de migraine. – – – –

Il s’agit de prédire une grandeur en fonction de ses valeurs passées en se projetant dans ce passé, puis de vérifier le résultat avec les valeurs futures de ce passé-là. 

C’est délicat. Mais nos problèmes ne font que commencer : comment fait-on pour éviter qu’une prédiction se repose sur des données qu’elle ne devrait pas connaître à la date où on lui demande de prédire ?

Eh bien je ne répondrai pas à cette question. Elle fait l’objet de mon mémoire de certification, en l’occurence, aussi je te propose de rejoindre nos migraineux.

– – – – Lecteur, lectrice, tu peux reprendre ta lecture. – – – –

Pour la prédiction, j’ai utilisé un algorithme de la famille des méthodes linéaires, en l’occurence l’algorithme ARIMAX.

J’ai choisi cet algorithme après l’avoir comparé à ses cousins ARIMA1 et SARIMAX, ainsi qu’à des algorithmes de forêts aléatoires et d’accélération de gradient car d’une part il donnait de meilleures valeurs de prédiction en un temps record, et d’autre part il me permettait d’obtenir un intervalle de confiance sur mes prédictions, ce qui fait beaucoup pour ma tranquilité d’esprit sur un sujet où les erreurs peuvent engendrer des conséquences très sérieuses.

Les résultats

La machine fonctionne désormais tous les mois depuis plus d’un an et fournit des prédictions de bonne qualité. Vous pouvez vous faire une idée de la qualité des résultats sur différents territoires grâce aux figures ci-dessous. Vous pourrez y constater que les incertitudes varient considérablement, en fonction de la régularité des communes à fournir les informations.

Mauvais élève
Mauvais élève
Bon élève
Bon élève
Bon élève en croissance
Bon élève en croissance

Références et bibliothèques utilisées

Page Internet du Ministère de l’Environnement, avec un accès aux données et leur présentation : Liste des permis de construire et autres autorisations d’urbanisme | Données et études statistiques
Base des permis de construire : Base des permis de construire et autres autorisations d’urbanisme (Sitadel) – data.gouv.fr
Note de méthode sur l’évaluation des surfaces autorisées à la construction.
python – Van Rossum, G. & Drake, F.L., 2009. Python 3 Reference Manual, Scotts Valley, CA: CreateSpace.
numpy – Harris, C.R. et al., 2020. Array programming with NumPy. Nature, 585, pp.357–362.
pandas – McKinney, W. & others, 2010. Data structures for statistical computing in python. In Proceedings of the 9th Python in Science Conference. pp. 51–56
scipy – Virtanen, P. et al., 2020. SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17, pp.261–272.
scikit-learn – Pedregosa, F. et al., 2011. Scikit-learn: Machine learning in Python. Journal of machine learning research, 12(Oct), pp.2825–2830.
pmdarima
mpire
tomli
folium – python-visualization, 2020. Folium.
geopandas – Jordahl, K., 2014. GeoPandas: Python tools for geographic data.
shapely – Gillies, S. & others, 2007. Shapely: manipulation and analysis of geometric objects.
mongodb
pymongo


Pour la bonne forme, les tables publiées par l’administration se basent sur un algorithme ARIMA, décrit dans une note de méthode que j’ai mise en référence de cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *