LoslegenKostenlos loslegen

BMI-Ergebnisse auswerten

Wie groß ist der Unterschied in der vorhergesagten Krankheitsprogression (die Zielvariable y) zwischen Patientinnen und Patienten im obersten 10 %-Bereich des BMI im Vergleich zum niedrigsten 10 %-Bereich? Du nutzt die Ergebnisse einer Simulation mit Stichproben aus der multivariaten Normalverteilung, um diese Frage zu beantworten!

Die Simulation wurde bereits für dich durchgeführt: Deine Aufgabe ist es, die Simulationsergebnisse in df_results auszuwerten.

Folgende Bibliotheken wurden bereits importiert: pandas als pd, numpy als np und scipy.stats als st.

Diese Übung ist Teil des Kurses

Monte-Carlo-Simulationen in Python

Kurs anzeigen

Anleitung zur Übung

  • Verwende np.quantile(), um das 10.- und 90.-Quantil von bmi in den simulierten Ergebnissen zu berechnen und als bmi_q10 bzw. bmi_q90 zu speichern.
  • Verwende bmi_q10 und bmi_q90, um df_summary zu filtern und die vorhergesagten y-Werte zu erhalten.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen