Évaluer les résultats de l’IMC
Quelle est la différence de progression de la maladie prédite (la réponse, y) entre les patient·e·s appartenant aux 10 % les plus élevés d’IMC et celles et ceux appartenant aux 10 % les plus faibles ? Vous allez utiliser les résultats d’une simulation échantillonnant la loi normale multivariée pour répondre à cette question !
La simulation a déjà été effectuée pour vous : votre tâche consiste à évaluer les résultats de la simulation dans df_results.
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
Instructions
- Utilisez
np.quantile()pour calculer les quantiles 10 % et 90 % debmidans les résultats simulés, et enregistrez-les dansbmi_q10etbmi_q90. - Utilisez
bmi_q10etbmi_q90pour filtrerdf_summaryet obtenir les valeurs prédites de y.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
simulation_results = st.multivariate_normal.rvs(mean=mean_dia, size=20000, cov=cov_dia)
df_results = pd.DataFrame(simulation_results,columns=["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"])
predicted_y = regr_model.predict(df_results)
df_y = pd.DataFrame(predicted_y, columns=["predicted_y"])
df_summary = pd.concat([df_results,df_y], axis=1)
# Calculate the 10th and 90th quantile of bmi in the simulated results
bmi_q10 = np.quantile(df_summary["bmi"], ____)
bmi_q90 = np.quantile(df_summary["bmi"], ____)
# Use bmi_q10 and bmi_q90 to filter df_summary and obtain predicted y values
mean_bmi_q90_outcome = np.mean(df_summary[____]["predicted_y"])
mean_bmi_q10_outcome = np.mean(df_summary[____]["predicted_y"])
y_diff = mean_bmi_q90_outcome - mean_bmi_q10_outcome
print(y_diff)