Utvärdera BMI-utfall
Vad är skillnaden i förutsedd sjukdomsprogression (responsvariabeln y) för patienter som tillhör de översta 10 % av BMI jämfört med de lägsta 10 %? Du använder resultaten från en simulering som samplar den multivariata normalfördelningen för att besvara frågan!
Simuleringen har redan körts åt dig – din uppgift är att utvärdera simuleringsresultaten i df_results.
Följande bibliotek har importerats åt dig: pandas som pd, numpy som np och scipy.stats som st.
Den här övningen är en del av kursen
Monte Carlo-simuleringar i Python
Övningsinstruktioner
- Använd
np.quantile()för att beräkna den 10:e och 90:e kvantilen avbmii simuleringsresultaten och spara dem sombmi_q10respektivebmi_q90. - Använd
bmi_q10ochbmi_q90för att filtreradf_summaryoch hämta de förutsagda y-värdena.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)