热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

原标题:协方差矩阵、相关系数矩阵的EXCEL和python实现CPDA广州19期学员现任职务:数据分析师史金乐优秀学员原创文章要计算相关系数矩阵&

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

04fe8c3cc46a489aabc87e370a840770.jpeg

17ab4e4ec63d4c848d13918e9a010c0f.jpeg

CPDA广州19期学员

现任职务:数据分析师

史金乐

优秀学员原创文章

4b3ebe71689442179e2cf62e44f503d1.gif

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

11e37fe46fe04f7299844f58dd006ac1.png

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

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

9b479da4ef0e45d38965b475bc35b050.png

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

198f482cfcb1460a8f00d5961807a351.jpeg

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

Excel

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

57ffdf575ee347bbb0c730c6ecaa0898.png

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

433bd63d97ac4961a3e79d0873ece03d.jpeg

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

a09af7a972ab4a0887f066da0cf51304.jpeg

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

3625676a216347399749356b681997f5.png

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

bf5e8dfe924642ea99bfd0e993186bfc.png

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

python

首先整理下思路:

1、加载数据;

2、读取数据到Dataframe中;

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

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

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

bed4d072a4684fc0ac554317158bee9f.png

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

ad8613e9321043038acd5895a243ffbb.png

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

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

ab5c8c42c9964af2b2bb0a6e043e536c.jpeg

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

6e809f727dc8449dbd3f9f36bb2ff783.png

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

fe3e6af7a23e446e9e3cd132f362098b.jpeg

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

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

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

扫码进群即可免费参加

责任编辑:



推荐阅读
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
author-avatar
王永星2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有