Por que precisamos de simulações?
Na última lição, você realizou uma distribuição normal multivariada usando a média e a matriz de covariância de dia
. Agora, você responderá a perguntas de interesse usando os resultados simulados!
Você pode se perguntar: por que realizamos simulações quando temos dados históricos? Não podemos simplesmente usar os próprios dados para responder a perguntas de interesse?
Essa é uma ótima pergunta. As simulações de Monte Carlo baseiam-se na modelagem usando distribuições de probabilidade, que produzem toda a distribuição de probabilidade para inspeção (um grande número de amostras), em vez do número limitado de pontos de dados disponíveis nos dados históricos.
Por exemplo, você pode fazer perguntas como: qual é o quantil 0,1 da variável age
para os pacientes com diabetes em nossa simulação? Não podemos responder a essa pergunta com os dados históricos do próprio dia
: como ele tem apenas 442 registros, não podemos calcular qual é o valor de um milésimo. Em vez disso, você pode aproveitar os resultados de uma simulação de Monte Carlo, o que você fará agora!
O conjunto de dados do diabetes foi carregado como um DataFrame, dia
, e as seguintes bibliotecas foram importadas para você: pandas
como pd
, numpy
como np
, e scipy.stats
como st
.
Este exercício faz parte do curso
Simulações de Monte Carlo em Python
Instruções de exercício
- Calcule o 0,1º quantil (o 1.000º inferior) da variável
tc
nos resultados simulados.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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(____)