Оцінювання результатів за BMI
Яка різниця в прогнозованому прогресуванні хвороби (відгук, y) між пацієнтами з найвищими 10% значень BMI та найнижчими 10% BMI? Ви скористаєтеся результатами моделювання з вибіркою з багатовимірного нормального розподілу, щоб відповісти на це запитання!
Моделювання вже виконано для вас: ваше завдання — оцінити результати моделювання в df_results.
Для вас вже імпортовано такі бібліотеки: pandas як pd, numpy як np та scipy.stats як st.
Ця вправа є частиною курсу
Моделювання Монте-Карло в Python
Інструкції до вправи
- Використайте
np.quantile(), щоб обчислити 10-й і 90-й квантиліbmiу змодельованих результатах та збережіть їх якbmi_q10іbmi_q90. - Використайте
bmi_q10іbmi_q90, щоб відфільтруватиdf_summaryі отримати прогнозовані значення y.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)