Aan de slagGa gratis aan de slag

BMI-uitkomsten evalueren

Wat is het verschil in de voorspelde ziekteprogressie (de response, y) voor patiënten die in de hoogste 10% van BMI zitten vergeleken met de laagste 10% van BMI? Je gebruikt de resultaten van een simulatie die samplet uit de multivariate normale verdeling om deze vraag te beantwoorden!

De simulatie is al voor je uitgevoerd: jouw taak is om de simulatieresultaten in df_results te evalueren.

De volgende libraries zijn al voor je geïmporteerd: pandas als pd, numpy als np en scipy.stats als st.

Deze oefening maakt deel uit van de cursus

Monte Carlo-simulaties in Python

Cursus bekijken

Oefeninstructies

  • Gebruik np.quantile() om het 10e en 90e percentiel van bmi in de gesimuleerde resultaten te berekenen, en sla deze op als bmi_q10 en bmi_q90.
  • Gebruik bmi_q10 en bmi_q90 om df_summary te filteren en de voorspelde y-waarden te verkrijgen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren