Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Använd np.quantile() för att beräkna den 10:e och 90:e kvantilen av bmi i simuleringsresultaten och spara dem som bmi_q10 respektive bmi_q90.
  • Använd bmi_q10 och bmi_q90 för att filtrera df_summary och 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)
Redigera och kör kod