Le théorème central limite en Python

En théorie des probabilités et en statistique, les lois normales sont parmi les lois de probabilité les plus adaptées pour modéliser des phénomènes naturels issus de plusieurs événements aléatoires.

Aussi, le théorème central limite (aussi improprement appelé théorème de la limite centrale ou centrée) établit la convergence en loi de la somme d’une suite de variables aléatoires (indépendantes, et identiquements distribuées) vers la loi normale.

Intuitivement, ce résultat affirme que toute somme de variables aléatoires indépendantes tend dans certains cas vers une variable aléatoire gaussienne.

Notre simulation vise à reproduire ce résultat, mais en utilisant le théorème central limite.

En sommant par colonne, les résultats d’un tirage aléatoire d’une matrice de taille 10000 x 10000, on obtient :

L’histogramme se rapproche fortement de la courbe en cloche, c’est l’illustration du TCL.

Code Python :

ARIMA et le PIB Français en Python

Une série temporelle, ou série chronologique est une suite de valeurs numériques représentant l’évolution d’une quantité spécifique au cours du temps.
De telles séries sont analysées mathématiquement à travers des concepts de probabilités et de statistique, afin de comprendre leurs évolutions passées et pour en prévoir le comportement futur.

En statistique et économétrie, et en particulier en analyse de séries chronologiques, un modèle de moyenne mobile intégrée autorégressive (ARIMA) est une généralisation d’un modèle de moyenne mobile autorégressive (ARMA) et permet de faire ce type d’analyse.

Je me suis intéressé au modèle ARIMA, et j’ai choisi l’évolution du PIB Français depuis 1950 (Source : Insee) comme série temporelle, pour analyser le comportement, et réaliser des prédictions sur le PIB de la France.

Avant de prédire, constater l’évolution : le PIB a presque été multiplié par 10 en 70 ans !
De plus, le ralentissement causé par la crise des subprimes peut être constaté.

L’étape d’après consiste à utiliser des modèles statistiques (que je ne maîtrise pas encore, pour l’instant !) basés sur quelques paramètres pour réaliser les prédictions.

En fonction des paramètres, les prédictions changent de manière significative, d’où l’important bagage statistique requis pour la compréhension de ces paramètres et de leurs valeurs.

Les résultats de la prédiction sont présentés ci-dessous :

En orange, les vraies valeurs et en bleu les prédictions.
Selon le modèle, le PIB de la France atteindra les 3000 md d’€ en 2040.

Code Python :

Propagation du Coronavirus en Python

Les différentes décisions prises dans beaucoup de Pays sur le confinement, ou sur d’autres sujets (achats de masques médicaments, etc..) sont basées sur des projections, ces dernières sont obtenues par le biais de simulations, et ces simulations suivent un modèle mathématique, et sont pour la plupart fournies par le prestigieux Imperial College of London.

Cela montre en quoi les mathématiques associées à l’informatique peuvent être un merveilleux outil au service de l’humanité.

Dans le cas d’un virus comme le Covid-19, la croissance est en effet exponentielle au début. Mais il est clair que cela ne peut pas continuer éternellement. À un moment donné, le virus manquera de ressources, c’est-à-dire de personnes susceptibles d’être infectées, car une grande partie de la population l’est déjà ou l’a déjà été. Ensuite, le nombre de cas n’augmente que de façon linéaire, c’est-à-dire de façon constante chaque jour. Et, encore plus tard, la croissance de la courbe s’arrête complètement. C’est exactement ce que décrit l’équation logistique ci-dessus :

Source : pourlascience – À noter que cette fonction décrit de façon approximative la propagation du virus, c’est la seule que j’ai pu trouver sur internet.

J’ai voulu comprendre le sens mathématique de ces simulations, pour les reproduire moi même en Python, en considérant les paramètres suivants :

  • X indique le temps, supposons qu’il commence au jour 0 et s’arrête après 50 jours.
  • X0 indique le moment où la croissance exponentielle s’arrête, disons après 30 jours.
  • L indique la valeur maximale pouvant être par la courbe (nombre de cas), disons 4.5 10^-4 de la population française, soit 30000
  • K indique la pente de la courbe : disons 0.5
Résultat de la simulation, après le 20ème jour d’apparition du virus, la croissance devient exponentielle avant de se stabiliser au 40ème jour

Ceci est une projection, basée sur une seule simulation, autrement dit, un seul scénario, mais il est tout à fait possible d’en simuler plusieurs, ce qui est fait d’ailleurs par l’Imperial College of London.

Les résultats sont visibles ci-dessous :

Le détail des scénarios est mentionnés dans le code Python.

Bien sûr, les simulations officielles sont basées sur beaucoup plus de détails et de paramètres, cet article est purement écrit dans un but pédagogique.

Code Python :