CommencerCommencer gratuitement

Pourquoi avons-nous besoin de simulations ?

Dans la leçon précédente, vous avez utilisé une loi normale multivariée à partir de la moyenne et de la matrice de covariance de dia. Vous allez maintenant répondre à des questions d’intérêt en vous appuyant sur les résultats simulés !

Vous vous demandez peut-être : pourquoi réaliser des simulations quand on dispose de données historiques ? Ne pourrait-on pas simplement utiliser ces données pour répondre aux questions qui nous intéressent ?

Excellente question. Les simulations de Monte Carlo reposent sur des modèles utilisant des lois de probabilité, qui fournissent l’ensemble de la distribution de probabilité à analyser (un grand nombre d’échantillons), plutôt qu’un nombre limité de points de données comme dans les historiques.

Par exemple, vous pouvez poser la question suivante : quel est le quantile 0,1 de la variable age pour les patients diabétiques de notre simulation ? On ne peut pas y répondre avec les données historiques dia elles-mêmes : avec seulement 442 enregistrements, il est impossible de calculer la millième valeur. En revanche, vous pouvez exploiter les résultats d’une simulation de Monte Carlo, ce que vous allez faire maintenant !

Le jeu de données diabetes a été chargé dans un DataFrame dia, et les bibliothèques suivantes ont été importées pour vous : pandas sous pd, numpy sous np, et scipy.stats sous st.

Cet exercice fait partie du cours

Simulations de Monte Carlo en Python

Afficher le cours

Instructions

  • Calculez le quantile 0,1 (le millième inférieur) de la variable tc dans les résultats simulés.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

cov_dia = dia[["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"]].cov()
mean_dia = dia[["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"]].mean()

simulation_results = st.multivariate_normal.rvs(mean=mean_dia, size=10000, cov=cov_dia)

df_results = pd.DataFrame(simulation_results, columns=["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"])

# Calculate the 0.1st quantile of the tc variable
print(____)
Modifier et exécuter le code