python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现

原标题:协方差矩阵、相关系数矩阵的EXCEL和python实现

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第1张图片

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第2张图片

CPDA广州19期学员

现任职务:数据分析师

史金乐

优秀学员原创文章

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第3张图片

要计算相关系数矩阵,那就不得不提协方差矩阵。在《概率论与数据统计》中协方差矩阵的定义具体如下:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第4张图片

按照协方差矩阵中各元素cij的计算过程,我们可以得知要依次计算E(Xi),X - E(Xi),cij。

在得到协方差矩阵之后,可以根据相关系数公式:(其中D(X)为矩阵X的方差)

9b479da4ef0e45d38965b475bc35b050.png

可以得出相关系数矩阵,具体如下:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第5张图片

所以综上所述,要求相关系数矩阵,那么首先要求得协方差矩阵。接下来,就用Excel和python来分别求得协方差矩阵和相关系数矩阵。

Excel

原始数据如下:(取10组数据,X1、X2、X3为数据的特征)

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第6张图片

接下来,打开Excel中的“数据”-“数据分析”(“数据分析”是Excel的加载项,添加方式是“文件”-“选项”-“加载项”-“Excel加载项”-转到-“分析工具库”-确定),然后选择协方差。

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第7张图片

输入区域选择X1-X3的区域,分组方式选择“逐列”,将“标志位于第一行”前面的钩子点上,输入区域选择本工作表的G1单元格,然后点击确定。

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第8张图片

然后即可得出协方差矩阵。具体如下:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第9张图片

在选择数据分析时,选择“相关系数”,然后同样的操作流程,即可得到相关系数矩阵。具体如下:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第10张图片

Excel中的实现比较简单,接下来就用python来计算相关系数矩阵和协方差矩阵。

python

首先整理下思路:

1、加载数据;

2、读取数据到Dataframe中;

3、整理需要计算的数据到新的Dataframe中,准备应用于下一步计算;

4、用Dataframe的cov方法来求协方差矩阵,用corr方法来求相关系数矩阵。

编写代码,并运行后得到如下结果:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第11张图片

细心的同学可以发现,协方差矩阵(上面的矩阵)得出的结果是和Excel里面计算的结果有所不同。原因是因为Dataframe中求协方差矩阵时候是进行了标准化处理,具体可查阅方法的文档说明:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第12张图片

那如何可以得到和Excel里面计算的结果一样呢?

那就要把这10组数据当作是样本总体,使用numpy.cov(bias=True)方法来求即可。整体代码如下:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第13张图片

整体运行得到的结果如下:

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第14张图片

其实不管是Excel还是python,求协方差矩阵和相关系数矩阵都很简单,但是要理解二者的计算过程,自己手动计算一遍求解过程还是很有必要的,下面是我自己在Excel里面的计算过程,贴出来供给大家参考。

python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现_第15张图片

总体上来讲,协方差矩阵和相关系数矩阵是数据分析中的基础知识点,计算过程和实现方法都是比较简单的。打好基础才能更深入的学习后续知识~

福利到 CPDA全国线上沙龙活动

将于5月15日晚7点如期举办!

扫码进群即可免费参加

责任编辑:

你可能感兴趣的:(python计算协方差矩阵)