Proč potřebujeme simulace?
V poslední lekci jsi provedl/a vícerozměrné normální rozdělení pomocí průměru a kovarianční matice datasetu dia. Teď využiješ výsledky simulace k zodpovězení zajímavých otázek!
Možná tě napadne: proč vlastně simulace provádíme, když máme historická data? Nemůžeme je použít přímo k zodpovězení otázek?
To je skvělá otázka. Monte Carlo simulace jsou založeny na modelování pomocí pravděpodobnostních rozdělení, která poskytují celé pravděpodobnostní rozdělení ke zkoumání (velký počet vzorků) – na rozdíl od omezeného počtu datových bodů dostupných v historických datech.
Můžeš se například ptát: jaký je 0,1. kvantil proměnné age u pacientů s diabetem v naší simulaci? Na tuto otázku nelze odpovědět přímo z historických dat dia: ta obsahují jen 442 záznamů, takže z nich tisící hodnotu jednoduše nevyčteme. Místo toho můžeš využít výsledky Monte Carlo simulace – a přesně to teď uděláš!
Dataset diabetes je načten jako DataFrame dia a následující knihovny jsou za tebe naimportovány: pandas jako pd, numpy jako np a scipy.stats jako st.
Toto cvičení je součástí kurzu
Monte Carlo simulace v Pythonu
Pokyny k cvičení
- Vypočítej 0,1. kvantil (spodní tisícinu) proměnné
tcve výsledcích simulace.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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(____)