相关系数矩阵与协方差矩阵之间的关系
在本课程前面,您使用过 .cov() 来获取协方差矩阵,用 .corr() 来获取相关系数矩阵。二者很容易混淆,从而在模拟中用错。下面来澄清一下!
相关系数矩阵是标准化后的协方差矩阵,其中的相关系数取值范围为 0 到 1。
\(cov(x,y) = corr(x,y) \times std(x) \times std(y)\)
上式表明,协方差 \(cov(x,y)\) 可以通过将相关系数 \(corr(x,y)\) 与 \(x\) 的标准差 \(std(x)\) 以及 \(y\) 的标准差 \(std(y)\) 相乘来计算。您将在本练习中检验这一关系!
糖尿病数据集已作为 DataFrame dia 载入,pandas 已以 pd 导入,numpy 已以 np 导入。
本练习是课程的一部分
Python 中的蒙特卡洛模拟
练习说明
- 计算
dia[["bmi", "tc"]]的协方差矩阵,并保存为cov_dia2。 - 计算
dia[["bmi", "tc"]]的相关系数矩阵,并保存为corr_dia2。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Calculate the covariance matrix of bmi and tc
cov_dia2 = ____
# Calculate the correlation matrix of bmi and tc
corr_dia2 = ____
std_dia2 = dia[["bmi","tc"]].std()
print(f'Covariance of bmi and tc from covariance matrix :{cov_dia2.iloc[0,1]}')
print(f'Covariance of bmi and tc from correlation matrix :{corr_dia2.iloc[0,1] * std_dia2[0] * std_dia2[1]}')