哲学告诉我们:世界是一个普遍联系的有机整体,现象之间客观上存在着某种有机联系,一种现象的发展变化,必然受与之关联的其他现象发展变化的制约与影响,在统计学中,这种依存关系可以分为相关关系和回归函数关系两大类,本次分享,jacky将跟您分享如何用python做相关关系,并以真实金融案例为依托,深入浅出,探讨相关分析在实际工作中应用。

基础铺垫

  • 相关系数(correlation coefficient)

    • 相关系数是变量间关联程度的最基本测度之一,如果我们想知道两个变量之间的相关性,那么我们就可以计算相关系数,进行判定。
  • 相关系数基本特征

    • 方向

      • 正相关:两个变量变化方向相同

      • 负相关:两个变量变化方向相反

    • 量级(magnitude)

      • 低度相关:0 ≤ |r|< 0.3

      • 中度相关:0.3 ≤ |r|< 0.8

      • 高度相关:0.8 ≤ |r|< 1

  • 散点图

    • 在进行相关分析之前,通常会绘制散点图来观察变量之间的相关性,如果这些数据在二维坐标轴中构成的数据点分布在一条直线上的周围,那么就说明变量间存在线性相关关系,如下图所示:

如何用Python计算相关系数

计算公式

r=∑(ZXZY)N
  • r:相关系数
  • ZX:变量X的z分数
  • ZY:变量Y的z分数
  • N:X和Y取值的配对个数

金融场景案例实操

我们知道影响金融产品销量的因素很多,作为用户来讲,最直接的参考指标一定是产品的利率,金融机构为了吸引更多的用户能够持有或购买某项金融产品时,往往会推出加息活动,那么加息活动这个变量与实际销量之间是否存在相关关系?——下面jacky与您一同探讨与解决这个问题:

1.手工写代码计算相关系数

  • 根据相关系数的计算公式,我们首先要计算出每个向量的z分数

    • z分数的计算公式:每个值减去向量的均值再除以标准差 ZX=(X-XMean)/XSD
#---author:朱元禄---
import numpy
X = [52,19,7,33,2]
Y = [162,61,22,100,6] #均值
XMean = numpy.mean(X)
YMean = numpy.mean(Y) #标准差
XSD = numpy.std(X)
YSD = numpy.std(Y) #z分数
ZX = (X-XMean)/XSD
ZY = (Y-YMean)/YSD

  • 根据上面相关系数的计算公司,我们套公式,手工计算一下
r=2.64+0.03+0.73+0.3+1.295=0.9997
  • 也可以在python内直接计算:
#相关系数
r = numpy.sum(ZX*ZY)/(len(X))

2.使用numpy的corrcoef方法计算

numpy.corrcoef(X,Y)

  • 我们可以看到用corrcoef计算的值和我们手工计算的值是一样的,这里计算得到的是一个对称矩阵,对角线的位置都是1,代表向量和本身完全自相关,1行2列和2行1列的值一样,因为第一个向量和第二个向量的相关系数等于第二个向量和第一个向量的相关系数,所以为对称矩阵

3.使用pandas.DataFrame的corr方法计算

import pandas
data = pandas.DataFrame({
'X':X,
'Y':Y
})
data.corr()

更深入的探讨:数据分析的陷阱-安斯库姆四重奏

相关系数是理解两个向量是否相关的非常好用的指标,但是在实际工作中,我们不能过分依赖相关系数,为什么这么说呢?因为统计指标是有局限性的。

1.Anscombe’s quartet

  • 统计学里大名鼎鼎的Anscombe’s quartet是什么?(jacky有时真搞不懂统计学一些术语的翻译,quartet怎就翻译成了“四重奏”,既然得到了统计大佬们的公认,我也不好多说了)
  • 先看下下面四个散点图,这四幅图表述的数据特征差异有对大,在散点图赏是不是一目了然?

  • 下面我们来计算下它们的统计特性,竟然惊人的一样
性质 数值
X的平均数 9 (数据分析部落)
X的方差 11 (公众号:shujudata)
Y的平均数 7.5
Y的方差 4.12
X与Y之间的相关系数 0.816
线性回归线 y=3.00+0.500x

2.jacky解读

首先作为晚辈,要对统计学大师的学术成果表示尊敬与尊重。

但是,在时间工作中,Anscombe’s quartet的数据分析陷阱,作为一个合格的数据科学从业者,都是会规避的,首先我们做数据清理的时候,就规避了离群值对统计的影响,并且,随着机器学习,深入学习的发展,用方差,平均数来描述数据是最基本的,这些数据描述的维度是远远不够的。

数据科学的探索,永不止境,任何科学理论都可能被推翻。作为体制外的研究者,服务好我们的公司和客户,让数据真正的发挥商业价值,才是最重要的。在巨人的肩膀上,是你我的机会,更是这个时代留给我们最好的礼物!

Python相关分析—一个金融场景的案例实操的更多相关文章

  1. 决策树算法的Python实现—基于金融场景实操

    决策树是最经常使用的数据挖掘算法,本次分享jacky带你深入浅出,走进决策树的世界 基本概念 决策树(Decision Tree) 它通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数 ...

  2. 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了

    引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中?         本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中 ...

  3. 新硬盘挂载-fdisk+mount案例实操

    新硬盘挂载-fdisk+mount案例实操 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 现在很多服务器都支持热插拔了,当有新的硬盘插入到服务器上我们需要将其分区,格式化,然后挂载 ...

  4. Hive中的数据类型以及案例实操

    @ 目录 基本数据类型 集合数据类型 案例实操 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它 ...

  5. Kafka集群优化篇-调整broker的堆内存(heap)案例实操

    Kafka集群优化篇-调整broker的堆内存(heap)案例实操 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看kafka集群的broker的堆内存使用情况 1>. ...

  6. 如何练习python?有这五个游戏,实操经验就已经够了

    现在学习python的人越来越多了,但仅仅只是学习理论怎么够呢,如何练习python?已经是python初学者比较要学会的技巧了! 其实,最好的实操练习,就是玩游戏. 也许你不会信,但这五个小游戏足够 ...

  7. 在CentOS7.6上安装自动化运维工具Ansible以及playbook案例实操

    前言 Ansible是一款优秀的自动化IT运维工具,具有远程安装.远程部署应用.远程管理能力,支持Windows.Linux.Unix.macOS和大型机等多种操作系统. 下面就以CentOS 7.6 ...

  8. Azkaban(二)【WorkFlow案例实操】

    目录 1.使用步骤 2.案例: 1.hello word 2.作业依赖[dependsOn配置作业的依赖关系] 3.内嵌工作流 4.全局配置 [在开头通过config进行配置,后续可以通过${属性名} ...

  9. C#多线程同步案例实操

    好久没有写博客了,为了养成学习的习惯,培养积极年轻的心态,又回到了博客园这个平台继续撸起时隔多年未光顾的空间. 项目需求: 实现一个简单的获取始发目的耗时.距离,将结果输出表格. 方案思路: 通过多线 ...

随机推荐

  1. 审计一套CMS中的SQL注入

    漏洞分为系统漏洞和应用漏洞,系统漏洞以二进制漏洞为代表,其挖掘难度较高需要对反汇编和操作系统原理深入理解,而除了系统漏洞以外还有一些应用漏洞,包括不限MySQL,Apache,为代表的Web漏洞,这里 ...

  2. WPf ObservableCollection异步调用问题

    当ObservableCollection列表被UI线程占用时,如果在异步线程中调用ObservableCollection,会弹出以下异常: private void Button1_OnClick ...

  3. Docker 启动 Mongo

    参考:https://hub.docker.com/_/mongo 1,运行这个 docker run --name some-mongo -d mongo 2.进入控制台 docker exec - ...

  4. 设计模式风格<一>;回调风格

    主程序,是一个人,有一个类是同事: static void Main(string[] args) { Console.WriteLine("Hello Go to Lunch?" ...

  5. [转载]Linux缓存机制

    [转载]Linux缓存机制 来源:https://blog.csdn.net/weixin_38278334/article/details/96478405 linux下的缓存机制及清理buffer ...

  6. oracle wm_concat函数用法

    在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔.

  7. Linux下mysql不区分大小写设置

    Linux环境下的MySQL数据库的表名默认是区分大小写的 Windows环境下的MySQL数据库的表名默认是不区分大小写的 所以Linux下想mysql不区分下大写可以查看/etc/my.cnf文件 ...

  8. DX使用随记--ImageComboBoxEdit

    1. 增加按钮: Combo_订单类型.Properties.Items.Clear()Select Case Combo_客户名称.EditValue Case "ABC" Co ...

  9. Ajax返回数据却一直进入error(已经解决)

    做asp.net项目  使用ajax $.ajax({ url: '../Music/Default2.aspx?Types=' + type + '&texts=' + text + '', ...

  10. 一 :了解MVC

    介绍 1. ASP.NET WebForm和ASP.NET MVC是并行的关系.都是属于.NET框架下的子框架. 2. MVC项目常用模板 空模板 :   不包含MVC目录结构,需要自己添加. 基本模 ...