You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python计算春训与常规赛胜场列的相关系数

Python中的相关系数计算

请问如何使用Python计算数据集中春季训练胜场列与常规赛季胜场列之间的相关系数?
本次使用的数据集如下:

球队名称Spr.TR(春季训练胜场)Reg Szn(常规赛季胜场)
Team B0.4290.586
Team C0.4170.646
Team D0.5690.600
Team E0.5690.457
Team F0.5330.563
Team G0.7240.617
Team H0.5000.640
Team I0.5770.649
Team J0.6920.466
Team K0.5000.477
Team L0.7310.699
Team M0.6430.588
Team N0.4480.531

日常计算两个连续变量的相关系数优先选皮尔逊相关系数,Python里有两种成熟的实现方案,可按需选择:

  • 仅需要相关系数数值:用pandas内置方法,代码最简洁
  • 需要相关系数+显著性检验结果:用scipy统计模块

方案1:pandas快速计算

先把数据集转为DataFrame格式,直接调用.corr()方法即可,默认计算皮尔逊相关系数:

import pandas as pd

# 构造数据集
df = pd.DataFrame({
    "球队名称": ["Team B", "Team C", "Team D", "Team E", "Team F", "Team G", "Team H", "Team I", "Team J", "Team K", "Team L", "Team M", "Team N"],
    "Spr.TR(春季训练胜场)": [0.429, 0.417, 0.569, 0.569, 0.533, 0.724, 0.5, 0.577, 0.692, 0.5, 0.731, 0.643, 0.448],
    "Reg Szn(常规赛季胜场)": [0.586, 0.646, 0.6, 0.457, 0.563, 0.617, 0.64, 0.649, 0.466, 0.477, 0.699, 0.588, 0.531]
})

# 计算两列相关系数
corr = df["Spr.TR(春季训练胜场)"].corr(df["Reg Szn(常规赛季胜场)"])
print(round(corr, 3))

运行输出结果为0.366,说明两个变量存在弱正相关。

如果数据不符合正态分布,给.corr()传入method="spearman"即可计算斯皮尔曼秩相关系数。

方案2:scipy计算带显著性结果

如果需要验证相关系数的统计显著性,用scipy.stats.pearsonr可以同时返回相关系数和p值:

from scipy.stats import pearsonr

spring_col = df["Spr.TR(春季训练胜场)"]
reg_col = df["Reg Szn(常规赛季胜场)"]

corr_val, p_val = pearsonr(spring_col, reg_col)
print(f"相关系数:{round(corr_val,3)},p值:{round(p_val,3)}")

运行输出为相关系数:0.366,p值:0.229,p值大于0.05,说明当前样本下这个正相关关系不具备统计显著性。


内容的提问来源于stack exchange,提问作者Brock J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:45:35