Python dataframe 相关系数和协方差

本文介绍了Python DataFrame中如何计算相关系数和协方差。协方差仅指示变量间的线性相关方向,而相关系数则同时表示方向和相关程度,取值范围在[-1, 1]。当相关系数的绝对值大于2/sqrt(N)时,我们认为存在线性关系。使用`dataframe.cov()`和`dataframe.corr()`可以分别计算协方差和相关系数。" 78734447,6993991,蓝桥杯2016C语言算法解析,"['蓝桥杯', 'C语言', '算法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关系数和协方差:

一.协方差
只表示线性相关的方向,取值正无穷到负无穷。
也就是说,协方差为正值,说明一个变量变大另一个变量也随之变大(正相关);取负值说明一个变量变大另一个变量变小(负相关),取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

#得分和年龄呈完全负相关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值