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ê vai responder a perguntas de interesse usando os resultados simulados!
Você pode perguntar: por que fazemos simulações quando temos dados históricos? Não poderíamos usar os próprios dados para responder às perguntas de interesse?
Essa é uma ótima pergunta. Simulações de Monte Carlo são baseadas em modelagem com distribuições de probabilidade, que produzem toda a distribuição de probabilidade para análise (um grande número de amostras), em vez do número limitado de pontos disponível nos dados históricos.
Por exemplo, você pode perguntar algo como: qual é o 0,1º quantil da variável age para os pacientes com diabetes na nossa simulação? Não conseguimos responder a essa pergunta apenas com os dados históricos dia: como há apenas 442 registros, não conseguimos calcular qual seria o valor do milésimo. Em vez disso, você pode aproveitar os resultados de uma simulação de Monte Carlo — e é isso que você vai fazer agora!
O conjunto de dados de diabetes foi carregado como um DataFrame, dia, e as seguintes bibliotecas já 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 do exercício
- Calcule o 0,1º quantil (o menor milésimo) da variável
tcnos resultados simulados.
Exercício interativo prático
Experimente este exercício completando 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(____)