尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

`pandas.DataFrame.corr()` 相关系数

`pandas.DataFrame.corr()` 相关系数 pandas.DataFrame的corr方法默认使用**皮尔逊相关系数Pearson Correlation Coefficient来计算列与列之间的线性相关性。此外它也支持斯皮尔曼Spearman和肯德尔Kendall**秩相关系数。以下是这三种方法的数学计算公式及其在 Pandas 中的实现原理1. 皮尔逊相关系数Pearson默认方法这是最常用的相关系数用于衡量两个连续变量之间的线性相关程度。它的本质是标准化后的协方差取值范围在 [-1, 1] 之间。数学计算公式对于两个变量XXX和YYY例如 DataFrame 中的两列其皮尔逊相关系数rrr的计算公式为r∑i1n(Xi−Xˉ)(Yi−Yˉ)∑i1n(Xi−Xˉ)2∑i1n(Yi−Yˉ)2 r \cfrac{\sum_{i1}^n(X_i − \bar{X}) (Y_i − \bar{Y})}{\sqrt{\sum_{i1}^n (X_i − \bar{X})^2} \sqrt{\sum_{i1}^n (Y_i − \bar{Y})^2}}r∑i1n​(Xi​−Xˉ)2​∑i1n​(Yi​−Yˉ)2​∑i1n​(Xi​−Xˉ)(Yi​−Yˉ)​或者用协方差和标准差表示为rcov(X,Y)σXσY r \cfrac{\text{cov}(X,Y)}{\sigma_X \sigma_Y}rσX​σY​cov(X,Y)​Xi,YiX_i, Y_iXi​,Yi​变量的单个观测值。Xˉ,Yˉ\bar{X}, \bar{Y}Xˉ,Yˉ变量的均值。σX,σY\sigma_X, \sigma_YσX​,σY​变量的标准差。Pandas 计算逻辑当你调用df.corr()或df.corr(methodpearson)时Pandas 会计算 DataFrame 中每两列之间的皮尔逊rrr值最终返回一个对称的相关系数矩阵对角线上的值恒为 1即变量与自身的相关性。2. 斯皮尔曼秩相关系数Spearman斯皮尔曼相关系数不直接使用原始数值而是基于变量的秩Rank即排序后的位置来计算。它衡量的是两个变量之间的单调关系即一个变量增大另一个变量也随之增大或减小的趋势对异常值不敏感。数学计算公式斯皮尔曼相关系数其实就是两个变量秩次之间的皮尔逊相关系数。在没有相同秩次即没有并列排名的情况下公式可以简化为ρ1−6∑di2n(n2−1) \rho 1 - \cfrac{6\sum d_i^2}{n(n^2-1)}ρ1−n(n2−1)6∑di2​​did_idi​两个变量XXX和YYY对应观测值的秩次之差Rank(Xi)−Rank(Yi)\text{Rank}(X_i) − \text{Rank}(Y_i)Rank(Xi​)−Rank(Yi​)。nnn观测值的总数量。Pandas 计算逻辑调用df.corr(methodspearman)时Pandas 会先将每一列的数据转换为它们的秩使用 Pandas 内部的rank()方法然后再对转换后的秩次数据计算皮尔逊相关系数。3. 肯德尔秩相关系数Kendall肯德尔相关系数也是一种非参数的等级相关系数它通过衡量一致对与不一致对的数量差异来评估相关性非常适合小样本数据或存在较多并列排名的数据。数学计算公式Kendall’s Tau-bτnc−nd(ncndn1)(ncndn2) \tau \frac{n_c - n_d}{\sqrt{(n_c n_d n_1)(n_c n_d n_2)}}τ(nc​nd​n1​)(nc​nd​n2​)​nc​−nd​​ncn_cnc​一致对的数量即XiXjX_i X_jXi​Xj​且YiYjY_iY_jYi​Yj​或XiXjX_i X_jXi​Xj​且YiYjY_i Y_jYi​Yj​的配对数。ndn_dnd​不一致对的数量即XiXjX_i X_jXi​Xj​但YiYjY_i Y_jYi​Yj​或反之的配对数。n1,n2n_1, n_2n1​,n2​用于修正XXX或YYY中存在相同数值平局/并列的项。Pandas 计算逻辑调用df.corr(methodkendall)时Pandas 会遍历每一对列统计它们之间的一致对和不一致对数量并代入上述公式计算最终的 ττ值。4. 总结与注意事项默认行为df.corr()默认只计算数值型列int, float会自动忽略非数值列如字符串和缺失值NaN。如何选择数据呈线性关系且符合正态分布 →→Pearson数据呈单调非线性关系、非正态分布或存在异常值 →→Spearman样本量较小、关注数据相对顺序或存在大量并列排名 →→Kendall
返回列表