Neden simülasyonlara ihtiyaç duyarız?
Son derste, dia'nın ortalama ve kovaryans matrisini kullanarak çok değişkenli normal dağılımdan örnekleme yaptın. Şimdi, simülasyon sonuçlarını kullanarak ilgi çekici soruları yanıtlayacaksın!
Aklına şu gelebilir: elimizde tarihsel veriler varken neden simülasyon yapıyoruz? İlgi duyduğumuz soruları doğrudan verinin kendisiyle yanıtlayamaz mıyız?
Bu harika bir soru. Monte Carlo simülasyonları, olasılık dağılımlarını kullanan bir modellemeye dayanır ve tarihsel verideki sınırlı sayıdaki gözlem noktası yerine inceleme için tüm olasılık dağılımını (çok sayıda örnek) sunar.
Örneğin, şu soruyu sorabilirsin: simülasyonumuzdaki diyabet hastaları için age değişkeninin binde birinci (0.1'inci) kantili nedir? Bu soruyu tarihsel veri dia ile yanıtlayamayız: sadece 442 kayıt olduğu için binde birinci değeri hesaplayamayız. Bunun yerine, şimdi yapacağın gibi, bir Monte Carlo simülasyonunun sonuçlarından yararlanabilirsin!
Diyabet veri kümesi bir DataFrame olarak dia ismiyle yüklendi ve şu kütüphaneler senin için içe aktarıldı: pandas pd olarak, numpy np olarak ve scipy.stats st olarak.
Bu egzersiz, kursun bir parçasıdır
Python ile Monte Carlo Simülasyonları
Egzersiz talimatları
- Simülasyon sonuçlarında
tcdeğişkeninin 0.1'inci kantilini (en alt binde 1) hesapla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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(____)