比较模拟数据与历史数据
一项好的模拟应当与历史数据的结果相近。视频中的模拟是否符合这一点?在本练习中,您将探索一种检查模拟结果的方法并找出答案!
首先,您将使用多元正态分布以及 dia 的均值和协方差矩阵来执行一次模拟。然后,您将检查历史数据和模拟数据的均值。它们是否相近?
糖尿病数据集已作为 DataFrame dia 加载,且以下库已为您导入:将 pandas 导入为 pd,将 numpy 导入为 np,以及将 scipy.stats 导入为 st。
本练习是课程的一部分
Python 中的蒙特卡洛模拟
练习说明
- 使用多元正态分布以及
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(____)