Evaluar los resultados BMI
¿Cuál es la diferencia en la progresión prevista de la enfermedad (la respuesta, y
) para los pacientes que se encuentran en el 10 % superior de BMI en comparación con el 10 % inferior de BMI? Utilizarás los resultados de una simulación de muestreo de la distribución normal multivariante para responder a esta pregunta.
La simulación ya se ha realizado por ti: tu tarea consiste en evaluar los resultados de la simulación en df_results
.
Se han importado para ti las siguientes bibliotecas: pandas
como pd
, numpy
como np
, y scipy.stats
como st
.
Este ejercicio forma parte del curso
Simulaciones Montecarlo en Python
Instrucciones de ejercicio
- Utiliza
np.quantile()
para calcular el 10º y el 90º cuantiles debmi
en los resultados simulados, guardándolos comobmi_q10
ybmi_q90
. - Utiliza
bmi_q10
ybmi_q90
para filtrardf_summary
y obtener los valores y previstos.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
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)