相关性分析p值_一行代码掌握皮尔逊相关分析,洞察变量关系

变量类型与推荐的假设检验方法
可以看到,当我们探索两个连续变量之间的关系时,相关分析是一个很好的选择。那么,相关分析的原理是什么?如何在Python中实现相关分析呢?
一、Pearson相关系数
针对两个独立的服从正态分布的连续变量,我们常用Pearson相关系数来衡量它们之间的相关性。Pearson相关系数的值域为[-1, 1],当相关系数小于0时,表明两变量之间存在线性负相关关系;当相关系数大于0时,表明两变量之间存在线性正相关关系;当相关系数等于0时,表明两变量之间无明显的相关关系。
当变量不符合正态分布或者是顺序型变量时,我们常用Spearman相关系数来衡量变量间的关系;当我们需要探索变量间的非线性关系时,可以使用Kendall相关系数。不过这些不在本篇的讨论范围内,如果感兴趣的人多,可以在下方留言。
一般情况下,我们用r来表示相关系数,r的取值与相关程度之间的关系如下:

皮尔逊相关系数的计算很简单。假设我们有两组数据,一组为x,一组为y。那么x与y之间的协方差作为分子,x的标准差与y的标准差之间的乘积作为分母,得到的就是x与y之间的相关系数r,我们用公式表示如下:

计算出相关系数r之后,我们还要检验它是否具有统计学意义,即我们常说的是否显著。这里我们检验的计算公式为:

然后我们从t分布中找到对应的P值,与我们设定的显著性水平做一下对比,比如说我们设定了显著性水平为0.05,当P值小于0.05时,我们就拒绝零假设,认定x与y之间存在显著的线性相关。需要注意的是,P值大小不代表两个变量间相关性的强弱,r的大小才是衡量相关性的统计量。
当然,现在这些繁琐的过程我们可以统统交给计算机来处理。
二、Python相关分析
在pandas中,计算相关系数非常简单:

我们还可以用热力图来更直观地感受一下:
sns.heatmap(iris.corr(), cmap='bwr', center=0)

除了sepal_width变量与其他变量负相关以外,其他三个变量间都高度正相关。
但是我们注意到,这里并没有显著性检验的信息,那么我们如何得到这些信息呢?答案就是使用Scipy,Scipy是Python中一个非常强大的科学计算库,提供了很多关于统计、科学计算的方法。
scipy.stats.pearsonr方法会根据输入的两组数据,计算Pearson相关性,返回相关系数r以及显著性检验的P值,当P值低于我们设定的显著性水平时,即可认为变量间显著相关。
from scipy.stats import pearsonrpearsonr(iris.sepal_length, iris.petal_length)
输出为:
(0.8717537758865832, 1.0386674194497583e-47)

好了,关于Pearson相关的分享就到这里,有任何问题可以在下方留言,我会及时回答。另外,除了计算相关系数,散点图、回归图等都很适合用来探索变量间的关系,感兴趣的可以去看我的历史文章中关于数据可视化的几个系列。
相关文章:

润前报表简单问题
Q:设计器如何打开A:如果是安装的,那么直接到菜单下,打开润乾报表设计器就行了,如果是压缩包或者从别人那儿拷过来的,就运行\reportHome\bin下面的startup.bat就可以打开了。 Q:做一个报表最基本…

一个简单的slider滑块组件
2019独角兽企业重金招聘Python工程师标准>>> 我们先来看一张图片: 要实现这样的效果我们有很多种方法,比如直接使用<input type"range" />修改样式即可,也可用下面的这种方式修改 样式 HTML代码: <…

压测接口线程数设置_ZAT掌门性能压测巡检系统实战和落地
项目背景随着业务拓展,对于接口性能的要求也在上升,各部门也开始针对部分慢接口进行优化,从测试角度针对这些优化需求进行测试时不仅要保证对应接口的功能正常使用同时也要验证接口优化成果。在日常的开发工作中一些后台服务配置的改动也会对…

01python语言程序设计基础——初识python
1.python的字符串中format函数用法 format 函数可以接受不限个参数,位置可以不按顺序。In [2]:"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序Out[2]:hello world In [3]:"{0} {1}".format(&q…

没有什么不可能(1)
近在读一本书《没有什么不可能》,书中宗旨就是:这个世界没有什么不可能,每个人的脚下都有一条通往成功的道路,信念是一切力量的源泉。这本书看了三分之一,跟大家分享一下前三个观点。 1、只有想不到,没有做…

浅浅认识之VBS脚本访问接口与COMODO拦截COM接口
这2天测试了一个使用了WMI提供ASEC后门,里面使用了JS脚本往外请求http获取执行命令。但我的分析系统却没抓到这个行为,可在真机中确实抓到有HTTP请求。相当奇怪。 最后无奈windbg出手,内核断点afd 发送函数。最后发现是scrcons.exe进程&#…

redis最大储存512m_redis系列篇01
今天写的这篇是redis系列的文章,我的安排是由浅入深写redis系列。本篇是简单的介绍入门,后续的文章会详细讲解redis深层次的知识。欢迎大家关注我的微信公众号:码农Bug首先说几个简单的命令:keys *:查询所有的键值del key…

批处理命令——goto 和 :
谈起goto,相信大家应该想到的是面向过程编程。其实,这就相当于当有人向你谈起class,意味着你就懂得面向对象编程。如果你不懂,那么你们的沟通将会很困难。不懂我说的啥意思吗?请参见曾经分享王路的一篇文章《永远不要对…

浮动布局会受父框滚动条影响
此时的效果是:如果此时把父框的滚动条去掉或隐藏掉:而此时的效果是:总结:1 有时我们的布局发生了改变可能就是受到出现滚动条的影响了 而我们很容易忽略掉这一点转载于:https://blog.51cto.com/11871779/2387118

Delphi7的主窗口
Delphi7的主窗口转载于:https://www.cnblogs.com/LoveFishC/archive/2012/08/10/3845692.html

线程组多次调用_详细分析 Java 中启动线程的正确和错误方式
start 方法和 run 方法的比较代码演示:/** * * start() 和 run() 的比较 * * * author 踏雪彡寻梅 * version 1.0 * date 2020/9/20 - 16:15 * since JDK1.8 */public class StartAndRunMethod {public static void main(String[] args) {// run 方法演示// 输出: name: main//…

Concurrency Runtime in Visual C++ 2010
PDC 2010 Hejlsberg的演讲中我们看到了VB.NET、C#新的简化异步编程的方式(可以下载新的Async CTP体验)。之前的TPL(Task Parallel Library)简化了并行编程。工业语言的飞速发展大大改进、简化了开发人员的编程方式。不仅是微软平台…

关于安卓你不知道的6件事
安卓第一次亮相是出如今2008年公布的HTC Dream手机上,到如今为止它已经6岁了。或许没有人想过在2010年底它就成为了智能手机平台率先的操作系统。这当然要感谢谷歌的努力和强大的財力支持。尽管眼下安卓系统是世界上最流行的移动操作系统,可是关于它的非…

vmware的三种网络模式讲解
vmware有三种网络设置模式,分别是Bridged(桥接),NAT(网络地址转换),Host-only(私有网络共享主机) 1.Bridged(桥接) 桥接模式默认使用的是:VMnet0 什么是桥接模式?桥接模式就是把主机网卡和虚拟机虚拟的网卡利用虚拟网桥进行通信。…

当前路径_[JSP] 07 JSP 路径问题
首先先明确一下下列URL的假设一个URL是这样的losthost:8080/myservlet/path服务器根路径:losthost:8080/项目根路径:losthost:8080/myservlet/明确了服务器根路径和项目根路径之后,我们就可以开始学习后面的知识了servlet路径问题请求转发和重定向的相对路径写法总结:Servlet重…

CPU时间戳获取
inline long long timt(){long long p; int&a*(((int*)&p)1);__asm__ __volatile__("rdtsc":"a"(p),"d"(a));return p; } 因为在64位CPU上rdtsc出来的结果仍然是在%eax和%edx,而%rax却不是由%eax和%edx拼起来的(反正我试了它没用...也许…

NYOJ 366 D的小L
地址:http://acm.nyist.net/JudgeOnline/problem.php?pid366 方法;用next_permutation(pɝmjʊteʃə)来求解,递归调用代码 1 #include<stdio.h>2 #include<algorithm>3 using namespace std;4 int main(…

MySQL 语句整理 2019-5-3
MySQL 语句整理 在整理完Oracle的一些常见用语句后,由于MySQL的语法跟Oracle略有不同,随跟PN的MySQL视频进行了间接整理. 查询薪水大于1800, 并且部门编号为20或30的员工sql select deptno,ename,sal from emp where sal > 1800 and (deptno 20 or deptno 30); and 优先级…

联想e580没有声音_现在你可以购买通过 Linux 认证的联想 ThinkPad 和 ThinkStation
曾经有一段时间,ThinkPad 是 Linux 用户的首选系统。但那是在 ThinkPad 还是 IBM 的产品的时候。来源:https://linux.cn/article-12283-1.html作者:Abhishek Prakash译者:Xingyu.Wang曾经有一段时间, ThinkPad 是 Linu…

linux平台下防火墙iptables原理(转)
原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的&a…

SQL语法大全
SQL语句大全 --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表…

Node.js的url模块简介
什么是URL URL是Uniform Location Resource的缩写,翻译为“统一资源定位符”,也就是描述资源位置的固定表示方法。被URL描述的资源可以位于互联网上,也可以位于本地。 URL的组成结构 基本URL包含模式(或者成为协议)&am…

python游戏结束显示分数代码_当游戏循环在Python中运行时,多线程来显示游戏分数?...
我想根据比赛时间的推移得分。为此,我想让两个循环同时运行。游戏循环和得分循环,每1.5秒加1。当我运行程序时,分数不会出现。我是否正确使用多线程?这是最好的办法吗?为了简单起见,我只发布了相关代码。谢…

NOIP2015解题报告 By ljt12138
Day1t1 幻方 练过的一道题,简单模拟,用二维数组存储,ij两个游标记录横纵坐标,利用题目条件改变坐标直到填入n个数即可。复杂度O(n^2) AC Day2t2 图的最小环 首先抽象出图论模型。每个人对应点,传输对应边。因为自己…

设计模式笔记——Adapter
适配器模式Adapter 将一个类的接口转换成用户希望的另外一个接口。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用的环境要求不一样的情况。 package adapter.pattern; /*** * author Real H LI**/ public class Existed {public void OldRequest(){Sy…

iOS12-crash错误-reason: 'UITableView failed to obtain a cell from its dataSource'
错误原因: cellForRowAtIndexPath函数返回了nil override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {let cell tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: in…

with as python_python - with as的用法
摘自:http://www.cnblogs.com/DswCnblog/p/6126588.htmlWith 是什么?有一些任务可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取…

wcf系列学习5天速成——第四天 wcf之分布式架构(转载)
今天是wcf系列的第四天,也该出手压轴戏了。嗯,现在的大型架构,都是神马的, nginx鸡群,iis鸡群,wcf鸡群,DB鸡群,由一个人作战变成了群殴....... 今天我就分享下wcf鸡群,高…

检测jQuery.js是否已加载的判断代码
转载自http://www.jb51.net/article/27185.htm 测类、方法、变量或属性是否已存在,这是Javascript编程基础知识。在这里我们就是要检测jQuery()或$()函数是否存在 当然,该方法不局限于jQuery的检测,对与任何Javascript变量或函数都是通用的。…

Java中常见的锁简述
在Java的应用中,或多或少的都会接触到一些锁,那么问题就来了,在Java中,常见的锁有哪些,都有什么样的作用?? 这里给大家简单的简述一下这些学常见的锁。 本文件所涉及到的锁: 1.公平锁…