统计学 订阅
统计学是通过搜索、整理、分析、描述数据等手段,以达到推断所测对象的本质,甚至预测对象未来的一门综合性科学。统计学用到了大量的数学及其它学科的专业知识,其应用范围几乎覆盖了社会科学和自然科学的各个领域。 [1] 展开全文
统计学是通过搜索、整理、分析、描述数据等手段,以达到推断所测对象的本质,甚至预测对象未来的一门综合性科学。统计学用到了大量的数学及其它学科的专业知识,其应用范围几乎覆盖了社会科学和自然科学的各个领域。 [1]
信息
学科门类
一级学科
外文名
Statistics
学科特点
应用广泛
中文名
统计学
主要分支
社会统计学、数理统计学 [2]
统计学发展过程
统计学的英文statistics最早源于现代拉丁文Statisticum Collegium(国会)、意大利文Statista(国民或政治家)以及德文Statistik,最早是由Gottfried Achenwall于1749年使用,代表对国家的资料进行分析的学问,也就是“研究国家的科学”。十九世纪,统计学在广泛的数据以及资料中探究其意义,并且由John Sinclair引进到英语世界。统计学是一门很古老的科学,一般认为其学理研究始于古希腊的亚里士多德时代,迄今已有两千三百多年的历史。它起源于研究社会经济问题,在两千多年的发展过程中,统计学至少经历了“城邦政情”、“政治算数”和“统计分析科学”三个发展阶段。所谓“数理统计”并非独立于统计学的新学科,确切地说,它是统计学在第三个发展阶段所形成的所有收集和分析数据的新方法的一个综合性名词。概率论是数理统计方法的理论基础,但是它不属于统计学的范畴,而是属于数学的范畴。“城邦政情”(Matters of state)阶段始于古希腊的亚里斯多德撰写“城邦政情”或“城邦纪要”。他一共撰写了一百五十余种纪要,其内容包括各城邦的历史、行政、科学、艺术、人口、资源和财富等社会和经济情况的比较、分析,具有社会科学特点。“城邦政情”式的统计研究延续了一两千年,直至十七世纪中叶才逐渐被“政治算术”这个名词所替代,并且很快被演化为“统计学”(Statistics)。但统计学依然保留了城邦(state)这个词根。 与“城邦政情”阶段没有很明显的分界点,本质的差别也不大。“政治算术”的特点是统计方法与数学计算和推理方法开始结合。分析社会经济问题的方式更加注重运用定量分析方法。1690年英国威廉·配弟出版《政治算数》一书作为这个阶段的起始标志。威廉·配第用数字、重量和尺度将社会经济现象数量化的方法是近代统计学的重要特征。因此,威廉·配第的《政治算术》被后来的学者评价为近代统计学的来源,威廉·配第本人也被评价为近代统计学之父。配第在书中使用的数字有三类:第一类是对社会经济现象进行统计调查和经验观察得到的数字。因为受历史条件的限制,书中通过严格的统计调查得到的数据少,根据经验得出的数字多;第二类是运用某种数学方法推算出来的数字。其推算方法可分为三种:(1)以已知数或已知量为基础,循著某种具体关系进行推算的方法;(2)通过运用数字的理论性推理来进行推算的方法;(3)以平均数为基础进行推算的方法”;第三类是为了进行理论性推理而采用的例示性的数字。配第把这种运用数字和符号进行的推理称之为“代数的算法”。从配第使用数据的方法看,“政治算数”阶段的统计学已经比较明显地体现了“收集和分析数据的科学和艺术”特点,统计实证方法和理论分析方法浑然一体,这种方法即使是现代统计学也依然继承。 [3]  在“政治算术”阶段出现的统计与数学的结合趋势逐渐发展形成了“统计分析科学”。十九世纪末,欧洲大学开设的“国情纪要”或“政治算数”等课程名称逐渐消失,代之而起的是“统计分析科学”课程。当时的“统计分析科学”(Science of statistical analysis)课程的内容仍然是分析研究社会经济问题。“统计分析科学”课程的出现是现代统计发展阶段的开端。1908年,“学生”氏(William Sleey Gosset的笔名Student)发表了关于t分布的论文。这是一篇在统计学发展史上划时代的文章,它创立了小样本代替大样本的方法,开创了统计学的新纪元。 现代统计学的代表人物首推比利时统计学家奎特莱(Adolphe Quelet),他将统计分析科学广泛应用于社会科学,自然科学和工程技术科学领域,因为他深信统计学是可以用于研究任何科学的一般研究方法.现代统计学的理论基础概率论始于研究赌博的机遇问题,大约开始于1477年。数学家为了解释支配机遇的一般法则进行了长期的研究,逐渐形成了概率论理论框架。在概率论进一步发展的基础上,到十九世纪初,数学家们逐渐建立了观察误差理论,正态分布理论和最小平方法则。于是,现代统计方法便有了比较坚实的理论基础。统计学(statistics):收集、处理、分析、解释数据并从数据中得出结论的科学。描述统计(descriptive statistics):研究数据收集、处理和描述的统计学方法。推断统计(inferential statistics):研究如何利用样本数据来推断总体特征的统计学方法。变量(variable):每次观察会得到不同结果的某种特征。分类变量(categorical variable):观测结果表现为某种类别的变量。顺序变量(rank variable):又称有序分类变量,观测结果表现为某种有序类别的变量。数值型变量(metric variable):又称定量变量,观测结果表现为数字的变量。均值(mean):均值也就是平均数,有时特指算术平均数,这是相对其他方式计算的均值,求法是先将所有数字加起来,然后除以数字的个数,这是测量集中趋势,或者说平均数的一种方法。中位数(median):也就是选取中间的数,要找中位数,首先需要从小到大排序,排序后,再看中间的数字是什么。众数(mode):众数也就是数据集中出现频率最多的数字。 [4]     为了将统计学应用到科学,工业以及社会问题上,我们由研究母体开始。这可能是一个国家的人民,石头中的水晶,或者是某家特定工厂所生产的商品。一个母体甚至可能由许多次同样的观察程序所组成;由这种资料收集所组成的母体我们称它叫时间序列。为了实际的理由,我们选择研究母体的子集代替研究母体的每一笔资料,这个子集称做样本。以某种经验设计实验所搜集的样本叫做资料。资料是统计分析的对象,并且被用做两种相关的用途:描述和推论。描述统计学处理有关叙述的问题:资料是否可以被有效的摘要,不论是以数学或是图片表现,以用来代表母体的性质?基础的数学描述包括了平均数和标准差。图像的摘要则包含了许多种的表和图。推论统计学被用来将资料中的数据模型化,计算它的机率并且做出对于母体的推论。这个推论可能以对/错问题的答案所呈现(假设检定),对于数字特征量的估计(估计),对于未来观察的预测,关联性的预测(相关性),或是将关系模型化(回归)。其他的模型化技术包括变异数分析(ANOVA),时间序列,以及数据挖掘。相关的观念特别值得被拿出来讨论。对于资料集合的统计分析可能显示两个变量(母体中的两种性质)倾向于一起变动,好像它们是相连的一样。举例来说,对于人收入和死亡年龄的研究期刊可能会发现穷人比起富人平均来说倾向拥有较短的生命。这两个变量被称做相关的。但是实际上,我们不能直接推论这两个变量中有因果关系;参见相关性推论因果关系(逻辑谬误)。如果样本足以代表母体的,那么由样本所做的推论和结论可以被引申到整个母体之上。最大的问题在于决定样本是否足以代表 整个母体。统计学提供了许多方法来估计和修正样本和收集资料过程中的随机性(误差),如同上面所提到的透过经验所设计的实验。参见实验设计。要了解随机性或是机率必须具备基本的数学观念。数理统计(通常又叫做统计理论)是应用数学的分支,它使用机率论来分析并且验证统计的理论基础。任何统计方法是有效的只有当这个系统或是所讨论的母体满足方法论的基本假设。误用统计学可能会导致描述面或是推论面严重的错误,这个错误可能会影响社会政策,医疗实践以及桥梁或是核能发电计划结构的可靠性。即使统计学被正确的应用,结果对于不是专家的人来说可能会难以陈述。举例来说,统计资料中显著的改变可能是由样本的随机变量所导致,但是这个显著性可能与大众的直觉相悖。人们需要一些统计的技巧(或怀疑)以面对每天日常生活中透过引用统计数据所获得的资讯。测量的尺度统计学一共有四种测量的尺度或是四种测量的方式。这四种测量(名目、顺序、等距、等比)在统计过程中具有不等的实用性 。等比尺度(Ratio measurements)拥有零值及资料间的距离是相等被定义的;等距尺度(Interval measurements)资料间的距离是相等被定义的但是它的零值并非绝对的无而是自行定义的(如智力或温度的测量);顺序尺度( Ordinal measurements)的意义并非表现在其值而是在其顺序之上;名目尺度(Nominal measurements)的测量值则不具量的意义。 以下列出一些有名的统计检定方法以及可供验证实验数据的程序Fisher最小显著差异法(Fisher's Least Significant Difference test )学生t检验(Student's t-test)曼-惠特尼 U 检定(Mann-Whitney U)回归分析(regression analysis)相关性(correlation)皮尔森积矩相关系数(Pearson product-moment correlation coefficient)史匹曼等级相关系数(Spearman's rank correlation coefficient )卡方分布(chi-square )创立时期德国的斯勒兹曾说过:“统计是动态的历史,历史是静态的统计”。可见统计学的产生与发展是和生产的发展、社会的进步紧密相联的。统计学的萌芽产生在欧洲,17世纪中叶至18世纪中叶是统计学的创立时期。在这一时期,统计学理论初步形成了一定的学术派别,主要有国势学派和政治算术学派。
收起全文
精华内容
参与话题
问答
  • python数据分析

    万次阅读 多人点赞 2018-07-22 19:43:44
    python绘图、python数据分析、python库、股票分析

    所有资料汇总学习:点这里

    利用python进行数据分析

    数据在这里下载

    github连接

    记得点个star!!!

    里面还放着一些陈年老代码,都是机器学习和数据分析相关的。(没怎么整理,都在里面,看到隐私别慌~)

    Numpy

    Numpy简单使用(入门)

    Pandas入门

    Pandas入门系列(一)-- Series
    Pandas入门系列(二)-- DataFrame
    Pandas入门系列(三)-- 深入理解Series和DataFrame
    Pandas入门系列(四) – Pandas io操作
    Pandas入门系列(五) – Indexing和Selecting
    Pandas入门系列(六) – reindex
    Pandas入门系列(七) – NaN
    Pandas入门系列(八) – 多级index
    Pandas入门系列(九) – Map和replace

    pandas进阶

    Pandas玩转数据(一) – 简单计算
    Pandas玩转数据(二) – Series和DataFrame排序
    Pandas玩转数据(三) – DataFrame重命名
    Pandas玩转数据(四) – DataFrame的merge
    Pandas玩转数据(五) – Concatenate和Combine
    Pandas玩转数据(六) – 通过apply对数据进行处理
    Pandas玩转数据(七) – Series和DataFrame去重
    Pandas玩转数据(八) – 时间序列简单操作
    Pandas玩转数据(九) – 时间序列的采样和画图
    Pandas玩转数据(十) – 数据分箱技术Binning
    Pandas玩转数据(十一) – 数据分组技术Groupby
    Pandas玩转数据(十二) – 数据聚合技术Aggregation
    Pandas玩转数据(十三) – 透视表
    Pandas玩转数据(十四) – 分组和透视功能实战

    Matplotlib入门

    Matplotlib简单画图(一) – plot
    Matplotlib简单画图(二) – subplot
    Matplotlib简单画图(三) – pandas绘图之Series
    Matplotlib简单画图(四) – pandas绘图之DataFrame
    Matplotlib简单画图(五) – 直方图和密度图

    Matplotlib扩展之Seaborn

    Seaborn简单画图(一) – 散点图
    Seaborn简单画图(二) – 直方图和密度图
    Seaborn简单画图(三) – 柱状图和热力图
    Seaborn简单画图(四) – 设置图形显示效果
    Seaborn简单画图(五) – Seaborn调色功能

    获取数据的一个库Tushare

    Tushare获取数据

    简单实战

    股票市场分析实战

    展开全文
  • Python数据分析实战-Pandas

    千人学习 2019-12-02 10:54:20
    Pandas包是基于Python平台的数据管理利器,已经成为了Python进行数据分析和挖掘时的数据基础平台和...这门课程目标是,高效快速的让大家在最短的时间内掌握好pandas这个在python数据分析中不可缺少的数据分析框架。 
  • Python数据分析与挖掘

    万人学习 2018-01-08 11:17:45
    围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: ...
  • 本课程是《数据分析技术应用》系列进阶课程的初级入门课程,学员研修完毕后能够进行较为复杂的描述性统计分析、推断性统计分析、数据可视化分析、预测分析等常用数据分析处理,满足商务运营和科学研究所需的常规数据...
  • Python数据分析三剑客-主流数据分析库精讲
  • Python金融数据分析入门到实战

    千人学习 2019-09-26 17:08:33
    本课程的核心为Python金融数据的分析,首先课程提取了数据分析工具NumPy、Pandas及可视化工具Matplotlib的关键点进行详细讲解,帮助同学们掌握数据分析的关键技能。而后我们选取了股票量化交易作为应用场景,由股票...
  • python数据分析怎么学习?

    千次阅读 2018-08-03 14:37:57
    在越来越多的工作中都扮演着重要的角色,Python可以利用各种Python库,如NumPy、pandas、matplotlib以及IPython等,高效的解决各式各样的数据分析问题,那么该如何学习Python数据分析呢? 大数据作为一门新兴技术,...

    数据分析是大数据的重要组成部分,在越来越多的工作中都扮演着重要的角色,Python可以利用各种Python库,如NumPy、pandas、matplotlib以及IPython等,高效的解决各式各样的数据分析问题,那么该如何学习Python数据分析呢?

    大数据作为一门新兴技术,大数据系统还不完善,市场上存在的资料也很零散,只有少数大数据资深技术专家才掌握真正的大数据技术,老男孩教育徐培成老师拥有丰富的大数据实践经验,掌握大数据核心技术,大数据实战课程体系完善,能够让学员学到真本领!

    老男孩教育Python与数据分析内容:

    1. Python介绍、Python环境安装、Python体验

    2. Python基础、语法、数据类型、分支、循环、判断、函数

    3. Python oop、多线程、io、socket、模块、包、导入控制

    4. Python正则表达式、Python爬虫实现

    5. 行列式基础、转置、矩阵定义、矩阵运算、逆矩阵、矩阵分解、矩阵变换、矩阵的秩

    6. Python对常用矩阵算法实现

    7. Python常用算法库原理与使用、numpy、pandas、sklearn

    8. 数据加载、存储、格式处理

    9. 数据规整化、绘图与可视化

    Python与数据分析是老男孩教育大数据开发课程的一部分,除此之外,老男孩教育大数据开发课程还包括:Java、Linux、Hadoop、Hive、Avro与Protobuf、ZooKeeper、HBase、Phoenix、Flume、SSM、Kafka、Scala、Spark、azkaban等,如此全面的知识与技能,你还在等什么?赶紧报名学习吧!

    展开全文
  • Python数据清洗实战入门

    万人学习 2019-12-09 10:47:41
    本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。
  • Python进阶-Pandas数据分析

    千人学习 2018-12-18 13:40:12
    Pandas是python中非常常用的数据分析库,在数据分析,机器学习,深度学习等领域经常被使用。本课程会讲解到pandas中最核心的一些知识点,包括Series以及DataFrame的构建,赋值,操作,选择数据,合并等等,以及使用...
  • Python数据分析与机器学习实战教程,该课程精心挑选真实的数据集为案例,通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。课程以实战为基础,所有课时都结合代码演示...
  • 基于Python数据分析

    万次阅读 多人点赞 2019-02-25 15:50:02
    下面来介绍一下基于Python数据分析,主要介绍数据分析的概念、数据分析流程、Python优势、常用模块的用途以及使用 Python进行数据分析的学习方法及步骤; 随着大数据和人工智能时代的到来,网络和信息技术开始...

    下面来介绍一下基于Python的数据分析,主要介绍数据分析的概念、数据分析流程、Python优势、常用模块的用途以及使用
    Python进行数据分析的学习方法及步骤;

    随着大数据和人工智能时代的到来,网络和信息技术开始渗透到人类日常生活的方方面面,产生的数据量也呈现指数级增长的态势,同时现有数据的量级已经远远超过了目前人力所能处理的范畴。在此背景下,数据分析成为数据科学领域中一个全新的研究
    课题。在数据分析的程序语言选择上,由于Python语言在数据分析和处理方面的优势,大量的数据科学领域的从业者使用Python
    来进行数据科学相关的研究工作。

    1、数据分析的概念

    数据分析是指用适当的分析方法对收集来的大量数据进行分析,提取有用信息和形成结论,对数据加以详细研究和概括总结的过程。随着信息技术的高速发展,企业生产、收集、存储和处理数据的能力大大提高,同时数据量也与日俱增。把这些繁杂的数据通过数据分析方法进行提炼,以此研究出数据的发展规律和预测趋势走向,进而帮助企业管理层做出决策。

    2、数据分析的流程

    数据分析是一种解决问题的过程和方法,主要的步骤有需求分析、数据获取、数据预处理、分析建模、模型评价与优化、部署:

    1)需求分析

    数据分析中的需求分析是数据分析环节中的第一步,也是非常重要的一步,决定了后续的分析方法和方向。主要内容是根据业务、生产和财务等部门的需要,结合现有的数据情况,提出数据分析需求的整体分析方向、分析内容,最终和需求方达成一致。

    2)数据获取

    数据获取是数据分析工作的基础,是指根据需求分析的结果提取、收集数据。数据获取主要有两种方式:网络爬虫获取和本地获取。网络爬虫获取指的是通过Python编写爬虫程序合法获取互联网中的各种文字、语音、图片和视频等信息;本地获取指的是通过计算机工具获取存储在本地数据库中的生产、营销和财务等系统的历史数据和实时数据。

    3)数据预处理

    数据预处理是指对数据进行数据合并、数据清洗、数据标准化和数据变换,并直接用于分析建模的这一过程的总称。其中,数据合并可以将多张互相关联的表格合并为一张;数据清洗可以去掉重复、缺失、异常、不一致的数据;数据标准化可以去除特征间的量纲差异;数据交换则可以通过离散化、哑变量处理等技术满足后期分析与建模的数据要求。在数据分析过程中,数据预处理的各个过程互相交叉,并没有固定的先后顺序。

    4)分析建模

    分析建模是指通过对比分析、分组分析、交叉分析、回归分析等分析方法,以及聚类模型、分类模型、关联规则、智能推荐等模型和算法,发现数据中的有价值信息,并得出结论的过程。

    5)模型评价与优化

    模型评价是指对于已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。模型的优化则是指模型性能在经过模型评价后已经达到了要求,但在实际生产环境应用过程中,发现模型的性能并不理想,继而对模型进行重构与优化的过程。

    6)部署

    部署是指将数据分析结果与结论应用至实际生产系统的过程。根据需求的不同,部署阶段可以是一份包含了现状具体整改措施的数据分析报告,也可以是将模型部署在整个生产系统的解决方案。在多数项目中,数据分析员提供的是一份数据分析报告或者一套解决方案,实际执行与部署的是需求方。

    3、Python是功能强大的数据分析工具

    Python具有丰富和强大的库,它常被称为胶水语言,能够把用其他语言制作的各种模块很轻松地连接在一起,是一门更易学、更严谨的程序设计语言,常用于数据分析、机器学习、矩阵运算、科学数据可视化、数字图像处理、网络爬虫、Web应用等;R语言常用于统计分析、机器学习、科学数据可视化等;MATLAB则用于矩阵运算、数值分析、科学数据可视化、机器学习、符号运算、数字图像处理及信号处理等。可以看出,以上三种语言均可进行数据分析。

    4、Python进行数据分析的优势

    Python是一门应用非常广泛的计算机语言,在数据科学领域具有无可比拟的优势。Python正在逐渐成为数据科学领域的主流语言。Python数据分析具有以下几方面优势:

    1》语法简单精炼。对于初学者来说,比起其他编程语言,Python更容易上手;

    2》有许多功能强大的库。结合在编程方面的强大实力,可以只使用Python这一种语言就可以去构建以数据为中心的应用程序;

    3》不仅适用于研究和原型构建,同时也适用于构建生产系统。研究人员和工程技术人员使用同一种编程工具,能给企业带来显著的组织效益,并降低企业的运营成本;

    4》Python程序能够以多种方式轻易地与其他语言的组件“粘接”在一起。例如,Python的C语言API可以帮助Python程序灵活地调用C程序,这意味着用户可以根据需要给Python程序添加功能,或者在其他环境系统中使用Python;

    5》Python是一个混合体,丰富的工具集使它介于系统的脚本语言和系统语言之间。Python不仅具备所有脚本语言简单和易用的特点,还提供了编译语言所具有的高级软件工程工具。

    5、Python数据分析常用类库介绍

    Python拥有IPython、Num Py、Sci Py、pandas、Matplot⁃lib、scikit-learn和Spyder等功能齐全、接口统一的库,能为数据分析工作提供极大的便利。其中,Num Py主要有以下特点:

    1)具有快速高效的多维数组对象ndarray;
    2)具有对数组执行元素级计算及直接对数组执行数学运算的函数;
    3)具有线性代数运算、傅里叶变换及随机数生成的功能;
    4)能将C、C++、Fortran代码集成到Python;
    5)可作为算法之间传递数据的容器。

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • Python 数据相关性分析

    万次阅读 多人点赞 2018-04-25 15:09:49
    可能是此增彼涨,或者是负相关,也可能是没有关联,那么我们就需要一种能把这种关联性定量的工具来对数据进行分析,从而给我们的决策提供支持,本文即介绍如何使用 Python 进行数据相关性分析。 关键词 python 方差...

    本文有视频教程,感兴趣的朋友可以前往观看 Python入坑实战系列 Part-2 - 简单数据相关性分析

    概述

    在我们的工作中,会有一个这样的场景,有若干数据罗列在我们的面前,这组数据相互之间可能会存在一些联系,可能是此增彼涨,或者是负相关,也可能是没有关联,那么我们就需要一种能把这种关联性定量的工具来对数据进行分析,从而给我们的决策提供支持,本文即介绍如何使用 Python 进行数据相关性分析。
    关键词 python 方差 协方差 相关系数 离散度 pandas numpy

    实验数据准备

    接下来,我们将使用 Anaconda 的 ipython 来演示如何使用 Python 数据相关性分析,我所使用的 Python 版本为 3.6.2 。

    首先,我们将会创建两个数组,数组内含有 20 个数据,均为 [0, 100] 区间内随机生成。

    a = [random.randint(0, 100) for a in range(20)]
    b = [random.randint(0, 100) for a in range(20)]
    print(a)
    >> [35, 2, 75, 72, 55, 77, 69, 83, 3, 46, 31, 91, 72, 12, 15, 20, 39, 18, 57, 49]
    print(b)
    >> [25, 24, 72, 91, 27, 44, 85, 21, 0, 64, 44, 31, 6, 91, 1, 61, 5, 39, 24, 43]
    

    期望

    在进行相关性分析之前,我们需要先为最终的计算分析做好准备。我们在分析前,第一个准备的是计算数据的期望。对于期望的定义,离散变量和连续变量是不一样的,具体定义如下:

    • 对于连续随机变量

    • 在离散随机变量

    在一般情况下,我们通过实验或者调查统计获取的数据很大一部分都属于离散随机变量,那么这里的期望我们也可以简单的理解为平均数,那么既然是平均数,那么我们就可以非常简单编写一个计算离散变量的期望的函数了。

    def mean(x):
      return sum(x) / len(x)
    mean(a)
    >> 46.05
    mean(b)
    >> 39.9
    

    离散度 - 方差与标准差

    接下来,我们需要计算的是数据的离散程度,在统计上,我们通常会使用方差和标准差来描述。
    方差和期望一样,对于连续和离散的随机变量有着不同的定义,具体定义如下:

    • 对于连续随机变量

    • 对于离散随机变量

    与期望类似,这里我们一般只考虑离散变量的方差。还有一点值得注意,我们上面的离散变量方差公式,最后是除以 n ,但实际上,我们计算样本方差的时候一般会使用 n-1 ,具体原因可以参考知乎 《为什么样本方差(sample variance)的分母是 n-1?》

    而标准差,就是方差的平方根。那么,我们也可以像上面计算期望一样,给方差和标准差编写函数。

    # 计算每一项数据与均值的差
    def de_mean(x):
      x_bar = mean(x)
      return [x_i - x_bar for x_i in x]
    # 辅助计算函数 dot product 、sum_of_squares
    def dot(v, w):
      return sum(v_i * w_i for v_i, w_i in zip(v, w))
    def sum_of_squares(v):
      return dot(v, v)
    # 方差
    def variance(x):
      n = len(x)
      deviations = de_mean(x)
      return sum_of_squares(deviations) / (n - 1)
    # 标准差
    import math
    def standard_deviation(x):
      return math.sqrt(variance(x))
    
    variance(a)
    >> 791.8394736842105
    varance(b)
    >> 850.5157894736841
    

    协方差与相关系数

    接下来,我们进入正题,我们开始计算两组数据的相关性。我们一般采用相关系数来描述两组数据的相关性,而相关系数则是由协方差除以两个变量的标准差而得,相关系数的取值会在 [-1, 1] 之间,-1 表示完全负相关,1 表示完全相关。接下来,我们看一下协方差和相关系数的定义:

    • 协方差
    • 相关系数

    同样的,我们根据上述的公式编写函数。

    # 协方差
    def covariance(x, y):
      n = len(x)
      return dot(de_mean(x), de_mean(y)) / (n -1)
    # 相关系数
    def correlation(x, y):
      stdev_x = standard_deviation(x)
      stdev_y = standard_deviation(y)
      if stdev_x > 0 and stdev_y > 0:
        return covariance(x, y) / stdev_x / stdev_y
      else:
        return 0
    
    covariance(a, b)
    >> 150.95263157894735
    correlation(a, b)
    >> 0.18394200852440826
    

    根据上面的结果,相关系数为 0.18,可以推断这两组随机数有弱正相关。当然,我们知道,这两组数据都是使用 random 函数随机生成出来的,其实并没有什么相关性,这也是在数据处理中,需要特别留意的一个地方,统计的方法可以给我们一个定量的数值可供分析,但实际的分析也需要结合实际以及更多的情况综合考虑。

    使用 numpy 计算协方差矩阵 相关系数

    一般我们日常工作,都不会像上面一样把什么期望、方差、协方差一类的函数都重新写一遍,上面的代码只是让我们对这些计算更加熟悉。我们通常情况下会使用 numpy 一类封装好的函数,以下将演示一下如何使用 numpy 计算协方差。

    import numpy as np
    # 先构造一个矩阵
    ab = np.array([a, b])
    # 计算协方差矩阵
    np.cov(ab)
    >> array([[ 791.83947368,  150.95263158],
           [ 150.95263158,  850.51578947]])
    

    这里我们可以看到,这里使用 np.cov 函数,输出的结果是一个矩阵,这就是协方差矩阵。协方差矩阵数据的看法也不难,我们可以以上面的结果为例,矩阵1行1列,表示的是 a 数据的方差,这和我们上面的计算结果一致,然后1行2列和2行1列分别是 a b 以及 b a 的协方差,所以他们的值是一样的,然后最后2行2列就是 b 数据的方差。

    接下来,我们继续使用 numpy 计算相关系数

    np.corrcoef(ab)
    >> array([[ 1.        ,  0.18394201],
           [ 0.18394201,  1.        ]])
    

    计算相关系数,我们使用 numpy 的 corrcoef 函数,这里的输出也是一个矩阵,这个矩阵数据的含义同上面的协方差类似,我们可以看到,这里我们的相关系数是 0.18 ,和我们上面自己编写的函数计算的结果一致。

    使用 pandas 计算协方差、相关系数

    除了使用 numpy,我们比较常用的 python 数据处理库还有 pandas,很多金融数据分析的框架都会使用 pandas 库,以下将演示如何使用 pandas 库计算协方差和相关系数。

    import pandas as pd
    # 使用 DataFrame 作为数据结构,为方便计算,我们会将 ab 矩阵转置
    dfab = pd.DataFrame(ab.T, columns=['A', 'B'])
    # A B 协方差
    dfab.A.cov(dfab.B)
    >> 150.95263157894738
    # A B 相关系数
    dfab.A.corr(dfab.B)
    >>  0.18394200852440828
    dfab
    >>    A   B
    0   35  25
    1    2  24
    2   75  72
    3   72  91
    4   55  27
    5   77  44
    6   69  85
    7   83  21
    8    3   0
    9   46  64
    10  31  44
    11  91  31
    12  72   6
    13  12  91
    14  15   1
    15  20  61
    16  39   5
    17  18  39
    18  57  24
    19  49  43
    

    可以看到,和 numpy 相比,pandas 对于有多组数据的协方差、相关系数的计算比 numpy 更为简便、清晰,我们可以指定计算具体的两组数据的协方差、相关系数,这样就不需要再分析结果的协方差矩阵了。

    小结

    本文通过创建两组随机的数组,然后通过参考定义公式编写函数,再到使用 numpy 以及 pandas 进行协方差、相关系数的计算。到这里我们应该已经了解了数据相关性分析的原理,以及简单的具体实践使用方法,日后在工作中遇到需要做数据相关性分析的时候,就可以派上用场了。

    参考资料

    《数据科学入门.格鲁斯 (Joel Grus).人民邮电出版社》

    展开全文
  • 书籍目录:利用Python进行数据分析,统计学(第6版)贾俊平,统计学(第6版)学习指导书 PDF版,统计学(第六版)贾俊平-公式整理
  • Python 数据分析学习路线

    万次阅读 2020-03-01 23:27:12
    数据分析有多火就不多说了,数据和数据分析在生活中的实用性和重要性都是不言而喻。 刚开始的时候,面对多如牛毛一样信息,感觉像是狗咬刺猬,无处下口。经过大约几个月的摸索,大概有了一定的了解。想着记录自己的...
  • 利用python进行数据分析 pdf

    千次阅读 多人点赞 2019-09-13 12:36:58
    利用python进行数据分析 链接:https://pan.baidu.com/s/1mFg7kB0WG6edKnhumMbbJg 提取码:6kos
  • 量化分析师的Python日记

    万人学习 2016-07-25 13:53:20
    您观看课程学习后 免费入群领取【超全... 量化分析师的Python学习教程,课程先从介绍Python本身一些基本语法,再介绍 python 相关应用及在数据分析及处理领域几大利器:pandas、scipy、numpy、sklearn、matplotlb。
  • 译者:SeanCheney 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 机器学习交流群 629470233 ApacheCN 学习资源 Sklearn 与 TensorFlow 机器学习实用指南 ...
  • 系列一:《python数据分析基础与实践》 章节1Python概况 课时2Python简介 章节2Python安装 课时3安装Anaconda 课时4使用Anaconda 章节3数据准备 课时5数据类型 – 布尔型 课时6数据类型 – 数值型 课时7数据类型 – ...
  • 21天通关Python(仅视频课)

    万人学习 2019-05-21 13:58:33
    本页面购买不发书!!!仅为视频课购买!...析和网络爬虫等内容,本课程会从小案例起,至爬虫、数据分析案例终、以Python知识体系作为内在逻辑,以Python案例作为学习方式,最终达到“知行合一”。
  • 利用Python进行数据分析·第2版

    千次阅读 多人点赞 2018-10-18 10:31:29
    【翻译】《利用Python进行数据分析·第2版》第1章 准备工作 【翻译】《利用Python进行数据分析·第2版》第2章(上)Python语法基础,IPython和Jupyter 【翻译】《利用Python进行数据分析·第2版》第2章(中)...
  • 本课程为Python数据分析方向的入门课程,课程讲解了Python数据分析避不开的Numpy、Pandas及两种常见可视化工具Matplotlib、Seaborn模块进行详细解读,帮助学生掌握数据分析的关键知识,再基础技能学习后辅以四大经典...
  • 首先会简单回顾 Python 和 Pandas 的基本用法,然后介绍数据分析的基本流程和电商数据分析的常见框架,并从订单、商品、用户等多个维度对电商数据进行分析,最后再结合 RFM 模型和 K 均值聚类算法,对用户进行聚累...
  • 课程内容包括数据科学必备的几种分布、统计描述、假设检验、方差分析、相关分析、因子分析、回归分析、聚类分析、逻辑回归、贝叶斯分析等Python数据分析内容,系统全面。从统计分析基础开始讲起,一步步完成整个统计...
  • Python数据分析实例

    万次阅读 多人点赞 2019-06-14 22:13:37
    Python数据分析 Python爬取网页数据 // An highlighted block import requests if __name__=="__main__": response = requests.get("https://book.douban.com/subject/26986954/") content = response.content....
  • Python数据分析课程

    千人学习 2019-08-22 16:30:09
    通过学习此课程,可以掌握Python的大数据分析。语法规则、常见通用库的使用,并在老师的带领下做出自己的智能语音机器人。在积累了一定的语言基础上具备成为专业Python工程师的能力。并可以深入全面学习Python爬虫及...
  • Python数据分析案例实战 视频课程

    千人学习 2019-08-24 09:58:24
    Python数据分析课程以Python为核心工具,结合其工具包pyecharts+开发IDEA pycharm + web 框架Flask。课程以案例为中心,结合案例讲解让同学们更清晰的掌握每一个知识点的应用与工作流程。 2大项目案例: 重点...
  • Python网络爬虫基础篇

    万人学习 2018-06-28 18:18:12
    本课程主要给大家分享基于Python语言的网络爬虫基础篇体验,其中讲解爬虫原理介绍,urllib和requests爬虫库的使用,以及网络爬虫中的数据分析与信息提取。通过模拟Web的GET和POST请求来爬取数据,介绍如何应对各种...
  • 利用Python进行数据分析:电子书

    千次阅读 2019-01-27 18:48:48
    人群 :适合刚学Python数据分析师或刚学数据科学以及科学计算的Python编程者。 阅读本书可以获得一份关于在Python下操作、处理、清洗、规整数据集的完整说明。本书第二版针对Python 3.6进行了更新,并增加实际...
  • 第四章 Python数据分析实战 习题(数据见附件sizhang.xlsx) 班主任现有一班级的两张表,如下。 表一:成绩表 学 号 C# 线 代 Python 16010203 78 88 96 表二:信息表 姓 名 学 号 手机号码 张三 16010203 ...

空空如也

1 2 3 4 5 ... 20
收藏数 91,606
精华内容 36,642
关键字:

统计学