比較模擬結果與歷史資料
一個好的模擬,結果應該要和歷史資料相近。影片中的模擬有做到嗎?在這個練習中,你會用一種方式來檢查模擬結果,找出答案!
首先,你會使用多變量常態分配,搭配 dia 的平均數與共變異數矩陣來進行模擬。接著,你會檢查歷史資料與模擬資料的平均數。它們相近嗎?
糖尿病資料集已載入為 DataFrame dia。以下函式庫也已為你匯入:pandas 作為 pd、numpy 作為 np,以及 scipy.stats 作為 st。
本練習屬於課程
Python 的 Monte Carlo 模擬
練習說明
- 使用多變量常態分配,以及
dia的平均數與共變異數矩陣,執行 10,000 次模擬。 - 使用 pandas 的
.mean()函式,計算歷史資料集dia的bmi與tc欄位,以及模擬結果df_results中bmi與tc的平均數,評估它們是否相近。 - 同樣地,使用 pandas 的
.cov(),計算dia的bmi與tc欄位,以及模擬結果df_results中bmi與tc的共變異數矩陣,評估它們是否相近。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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()
# Complete the code to perform the simulation
simulation_results = st.multivariate_normal.rvs(____)
df_results = pd.DataFrame(simulation_results,columns=["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"])
# Calculate bmi and tc means for the historical and simulated results
print(dia[["bmi","tc"]].____)
print(____)
# Calculate bmi and tc covariances for the historical and simulated results
print(____)
print(____)