本文用到的表格内容如下:
1.相关性指标
从前面的第二十一篇到第二十六篇是对数据整体的情况进行描述,但是我们有时候需要了解数据整体内的变量之间存在什么关系,我们把用来反映这种数据内部变量之间关系的指标叫相关系数,通常用r进行表示
其中,Cov(X,Y)为X与Y的协方差,Var[X]为X的方差,Var[Y]为Y的方差
关于相关系数需要注意以下几点:
相关系数r的范围为[-1, 1]
r的绝对值越大,表示相关性越强
r的正负代表相关性的方向,正代表正相关,负代表负相关
注:
要指出的是,相关系数有一个明显的缺点,即它接近于1的程度与数据组数n相关,这容易给人一种假象。因为,当n较小时,相关系数的波动较大,对有些样本相关系数的绝对值易接近于1;当n较大时,相关系数的绝对值容易偏小。特别是当n=2时,相关系数的绝对值总为1。因此在样本容量n较小时,我们仅凭相关系数较大就判定变量x与y之间有密切的线性关系是不妥当的。
2.相关关系与因果关系
相关关系不等于因果关系,相关关系只能说明两件事有关联,因果关系是说一件事导致了另一件事的发生。
3.相关性运算
相关性运算主要使用到的是corr函数
先来看一下原始情形:
import pandas as pd
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df)
result:
数学成绩 语文成绩 英语成绩
0 89 78 98
1 35 34 34
2 43 56 25
3 35 78 83
4 67 46 65
5 89 89 83
6 96 45 83
7 35 67 45
8 35 78 83
3.1求取两列之间的相关系数
import pandas as pd
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df['语文成绩'].corr(df['数学成绩']))
result:
0.10384855207267871
3.2 求取整个DataFrame表中各个字段两两之间的相关性
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df.corr())
result:
数学成绩 语文成绩 英语成绩
数学成绩 1.000000 0.103849 0.577708
语文成绩 0.103849 1.000000 0.581342
英语成绩 0.577708 0.581342 1.000000