Estatísticas resumidas

Simulações de Monte Carlo em Python

Izzy Weber

Curriculum Manager, DataCamp

Desfechos por idade

Qual é a diferença nos desfechos para pessoas no 1º e no 4º quartis de idade? histograma da variável Age nos resultados simulados

Simulações de Monte Carlo em Python

Desfechos por idade

print(np.quantile(df_summary["age"], 0.25))
print(np.quantile(df_summary["age"], 0.75))
39.78584463094688
57.52092642086441
Simulações de Monte Carlo em Python

Desfechos por idade

age_q25 = np.quantile(df_summary["age"], 0.25)
age_q75 = np.quantile(df_summary["age"], 0.75)


mean_age_q75_outcome = np.mean(df_summary[df_summary["age"] > age_q75]["predicted_y"]) mean_age_q25_outcome = np.mean(df_summary[df_summary["age"] < age_q25]["predicted_y"])
mean_age_q75_outcome - mean_age_q25_outcome
34.09429663553621
Simulações de Monte Carlo em Python

Diferenças de desfecho por idade e bmi

  • Qual é a diferença nos desfechos para pessoas nos 1º e 4º quartis de bmi e idade?
  • Qual é o intervalo de confiança de 95% e o desvio padrão dessa diferença?
Simulações de Monte Carlo em Python

Diferenças de desfecho por idade e bmi

y_diffs = []
for i in range(1000):
    simulation_results = st.multivariate_normal.rvs(mean=mean_dia, size=1000, 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_sum = pd.concat([df_results, df_y], axis=1)
age_q25 = np.quantile(df_sum["age"], 0.25) age_q75 = np.quantile(df_sum["age"], 0.75) bmi_q25 = np.quantile(df_sum["bmi"], 0.25) bmi_q75 = np.quantile(df_sum["bmi"], 0.75)
q75_outcome = np.mean(df_sum[(df_sum["bmi"] > bmi_q75) & (df_sum["age"] > age_q75)]["predicted_y"]) q25_outcome = np.mean(df_sum[(df_sum["bmi"] < bmi_q25) & (df_sum["age"] < age_q25)]["predicted_y"])
y_diff = q75_outcome - q25_outcome y_diffs.append(y_diff)
Simulações de Monte Carlo em Python

Diferenças de desfecho por idade e bmi

  • Média:
    np.mean(y_diffs)
    
132.4948511247819
  • Intervalo de confiança de 95%:
    np.quantile(y_diffs,0.025)
    
120.73340800299707
np.quantile(y_diffs,0.975)
144.1344994507557
  • Desvio padrão:
    np.std(y_diffs)
    
5.9322225537128
  • Histograma dos resultados:
    sns.histplot(y_diffs)
    
    Histograma de y_diffs
Simulações de Monte Carlo em Python

Vamos praticar!

Simulações de Monte Carlo em Python

Preparing Video For Download...