IniziaInizia gratis

Valutare gli esiti del BMI

Qual è la differenza nella progressione prevista della malattia (la risposta, y) tra i pazienti che sono nel 10% superiore del BMI rispetto al 10% più basso del BMI? Userai i risultati di una simulazione che campiona dalla distribuzione normale multivariata per rispondere a questa domanda!

La simulazione è già stata eseguita per te: il tuo compito è valutare i risultati della simulazione in df_results.

Sono già state importate le seguenti librerie: pandas come pd, numpy come np e scipy.stats come st.

Questo esercizio fa parte del corso

Simulazioni Monte Carlo in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Usa np.quantile() per calcolare il 10º e il 90º quantile di bmi nei risultati simulati, salvandoli come bmi_q10 e bmi_q90.
  • Usa bmi_q10 e bmi_q90 per filtrare df_summary e ottenere i valori previsti di y.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice