CommencezCommencez gratuitement

Pourquoi a-t-on besoin de simulations?

Dans la leçon précédente, vous avez exécuté une distribution normale multivariée en utilisant la moyenne et la matrice de covariance de dia. Maintenant, vous allez répondre à des questions d'intérêt à partir des résultats simulés!

Vous vous demandez peut-être : pourquoi effectuer des simulations quand on a des données historiques? Ne pourrait-on pas simplement utiliser les données elles-mêmes pour répondre aux questions qui nous intéressent?

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

Par exemple, vous pouvez poser des questions comme : quel est le 0,1e quantile de la variable age pour les patients diabétiques dans notre simulation? Nous ne pouvons pas répondre à cette question avec les données historiques dia elles-mêmes : comme elles ne comptent que 442 enregistrements, nous ne pouvons pas calculer la valeur correspondant au millième. À la place, vous pouvez exploiter les résultats d'une simulation de Monte Carlo, ce que vous allez faire maintenant!

L'ensemble de données sur le diabète a été chargé comme DataFrame, dia, et les bibliothèques suivantes ont été importées pour vous : pandas sous pd, numpy sous np et scipy.stats sous st.

Cette activité fait partie du cours

Simulations de Monte-Carlo en Python

Voir le cours

Instructions de l’exercice

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

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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