¿Por qué se necesitan simulaciones?
En la última lección, realizaste una distribución normal multivariante utilizando la media y la matriz de covarianza de dia
. Ahora, ¡responderás a preguntas de interés utilizando los resultados simulados!
Te preguntarás: ¿por qué hacemos simulaciones si tenemos datos históricos? ¿No podemos utilizar los propios datos para responder a preguntas de interés?
Esta es una gran pregunta. Las simulaciones de Montecarlo se basan en la modelización mediante distribuciones de probabilidad, que ofrecen toda la distribución de probabilidad para su inspección (un gran número de muestras), en lugar del número limitado de puntos de datos disponibles en los datos históricos.
Por ejemplo, puedes hacer preguntas como ¿cuál es el cuantil 0,1 de la variable age
para los pacientes diabéticos de nuestra simulación? No podemos responder a esta pregunta con los propios datos históricos dia
: como sólo tiene 442 registros, no podemos calcular cuál es el valor de la milésima parte. En su lugar, puedes aprovechar los resultados de una simulación de Montecarlo, ¡lo que harás ahora!
El conjunto de datos de la diabetes se ha cargado como un DataFrame, dia
, y 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
- Calcula el cuantil 0,1 (el 1000 inferior) de la variable
tc
en los resultados simulados.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
cov_dia = dia[["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"]].cov()
mean_dia = dia[["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"]].mean()
simulation_results = st.multivariate_normal.rvs(mean=mean_dia, size=10000, cov=cov_dia)
df_results = pd.DataFrame(simulation_results, columns=["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"])
# Calculate the 0.1st quantile of the tc variable
print(____)