Samenvattende statistieken

Monte Carlo-simulaties in Python

Izzy Weber

Curriculum Manager, DataCamp

Leeftijdsuitkomsten

Wat is het verschil in uitkomsten voor mensen in het eerste en vierde leeftijdskwartiel? histogram van de variabele Age in de gesimuleerde resultaten

Monte Carlo-simulaties in Python

Leeftijdsuitkomsten

print(np.quantile(df_summary["age"], 0.25))
print(np.quantile(df_summary["age"], 0.75))
39.78584463094688
57.52092642086441
Monte Carlo-simulaties in Python

Leeftijdsuitkomsten

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
Monte Carlo-simulaties in Python

Uitkomstverschillen op basis van leeftijd en bmi

  • Wat is het verschil in uitkomsten voor mensen in het eerste en vierde kwartiel van bmi én leeftijd?
  • Wat zijn het 95%-betrouwbaarheidsinterval en de standaarddeviatie voor dit verschil?
Monte Carlo-simulaties in Python

Uitkomstverschillen op basis van leeftijd en 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)
Monte Carlo-simulaties in Python

Uitkomstverschillen op basis van leeftijd en bmi

  • Gemiddelde:
    np.mean(y_diffs)
    
132.4948511247819
  • 95%-betrouwbaarheidsinterval:
    np.quantile(y_diffs,0.025)
    
120.73340800299707
np.quantile(y_diffs,0.975)
144.1344994507557
  • Standaarddeviatie:
    np.std(y_diffs)
    
5.9322225537128
  • Histogram van de resultaten:
    sns.histplot(y_diffs)
    
    Histogram van y_diffs
Monte Carlo-simulaties in Python

Laten we oefenen!

Monte Carlo-simulaties in Python

Preparing Video For Download...