定义
说到相关系数需要了解的 3 个概念:相关分析、数据期望、协方差。先分别说明这些概念。相关分析
相关分析是用来说明两个变量之间的关系。这个关系包含:两个变量的方向和强度。
按变量的多少划分:单相关、复相关 ;
按表现形态划分::直线相关、曲线相关;
从变动的方向划分:正相关、负相关;
按相关的程度不同分:完全相关、统计相关、完全无关。
数学期望
例子:某城市有 10 万个家庭,没有孩子的家庭有 1000 个,有一个孩子的家庭有 9 万个,有两个孩子的家庭有 6000 个,有 3 个孩子的家庭有 3000 个。则此城市中任一个家庭中孩子的数目是一个随机变量,记为 X。它可取值 0,1,2,3。其中,X 取 0 的概率为 0.01,取 1 的概率为 0.9,取 2 的概率为 0.06,取 3 的概率为 0.03。则数学期望:即此城市一个家庭平均有小孩 1.11 个,当然人不可能用 1.11 个来算,约等于 2 个。协方差
协方差可以看这篇文章,已经说得比较清楚。《如何通俗地理解协方差与相关系数?》相关系数
Pearson 相关系数:一般用来计算两个连续型变量的相关系数。也是最常用的相关系数。公式这里就不写了,一些统计学的教程都有说明。当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
两个变量之间是线性关系,都是连续数据。
两个变量的总体是正态分布,或接近正态的单峰分布。
两个变量的观测值是成对的,每对观测值之间相互独立。
Spearman 相关系数:两个变量无论连续还是分类都可以使用。
kendall 相关系数:一个连续一个分类。最好是定序变量。
相关系数是公式的不同。主要的 Pearson 相关系数在上面那篇《如何通俗地理解协方差与相关系数?》也有说明,这里不细说。
−1 ≤ ????,? ≤ 1 代表的含义:
值:Y 和 X 之间线性关系的强度;
符号:Y 和 X 之间线性关系的方向。
关于相关系数 r 的取值说明:
r 的取值范围为 -1 ≤ r ≤ + 1;
|r| 越接近 1,表明相关关系越密切;越接近于0,相关关系就越不密切。r = 0,两变量无直线关系;
r = +1 或 r = -1,表明两变量完全相关;
r > 0 现象呈正直线关系;r < 0 现象呈负相关;
在说明两个变量之间线性关系的密切程度时,根据经验可将相关程度分为以下几种情况:当 |r| ≥ 0.8 时,视为高度相关;0.5 ≤ |r| < 0.8 时, 视为中度相关;0.3 ≤ |r| < 5时,视为低度相关;|r| < 0.3 时,说明两个变量之间的相关程度极弱,可视为不相关。但这种说明必须建立在相关系数通过显著性检验的基础之上。
Python 实现
# 导入包
import seaborn as sns
from pandas import Series,DataFrame
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 拿到titanic数据集
titanic = sns.load_dataset('titanic')
# 查看前5行数据
titanic.head()
参数说明:
method{‘pearson’, ‘kendall’, ‘spearman’} ,默认 Pearson 相关系数;
min_periods:int类型可选值。观察每对列所需的最小数,样本最少的数据量。仅适用于 Pearson 和Spearman。
corr = titanic.corr()
corr
相关系数可视化
plt.figure(figsize=(14,10))
sns.heatmap(corr,linewidths=0.2, cmap="YlGnBu",annot=True)