相关系数和协方差:
一.协方差
只表示线性相关的方向,取值正无穷到负无穷。
也就是说,协方差为正值,说明一个变量变大另一个变量也随之变大(正相关);取负值说明一个变量变大另一个变量变小(负相关),取0说明两个变量没有相关关系。
注意:协方差的绝对值不反映线性相关的程度(其绝对值与变量的取值范围有关系)。
二.相关系数
不仅表示线性相关的方向,还表示线性相关的程度,取值[-1,1]。
也就是说,相关系数为正值,说明一个变量变大另一个变量也变大;取负值说明一个变量变大另一个变量变小,取0说明两个变量没有相关关系。
同时,相关系数的绝对值越接近1,线性关系越显著。
通常情况下,当相关系数的绝对值大于2/sqrt(N),N为样本点的数量时,我们认为线性关系是存在的。
#协方差确定两个变量的关系,即正相关,负相关/无关
#相关系数确定两个变量的关系&相关程度
协方差计算
dataframe.cov(): 计算所有变量之间的协方差
import pandas as pd
import numpy as np
from pandas import DataFrame
data = pd.DataFrame({
"年龄":[8,9,10,11,12],
"身高":[130,135,140,141,150],
'得分':[90,80,70,60,50]
})
print(data.cov())
#输出
年龄 身高 得分
年龄 2.5 11.5 -25.0
身高 11.5 55.7 -115.0
得分 -25.0 -115.0 250.0
#可以看出 身高和年龄呈正相关,得分和年龄呈负相关...
series.cov(series): 计算指定变量之间的协方差
print(data['年龄'].cov(data['得分']))
#输出
-25.0 #表明二者为负相关
相关系数计算
dataframe.corr():计算所有变量之间的相关系数
data = pd.DataFrame({
"年龄":[8,9,10,11,12],
"身高":[130,135,140,141,150],
'得分':[90,80,70,60,50]
})
print(data.corr())
#输出
年龄 身高 得分
年龄 1.000000 0.974541 -1.000000
身高 0.974541 1.000000 -0.974541
得分 -1.000000 -0.974541 1.000000
#得分和年龄几乎呈完全负相关,年龄和身高呈正相关,并且相关度很高
series.corr(series): 计算指定变量之间的协方差
print(data['年龄'].corr(data['得分']))
#输出
-1.0
#得分和年龄呈完全负相关