参考资料:python统计分析【托马斯】

        对于两个相关的变量,相关性度量的是两个变量之间的关联程度。相反,线性回归是用一个变量的值来预测另一个变量的值。

1、相关系数

        两个变量之间的相关系数回答了这个问题:“这两个变量有关系吗?”也就是说,如果一个变量的变化,那另一个也改变了吗?如果这两个变量是正态分布的,确定相关系数的标准方法通常是pearson,它是:

r=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{\sqrt{\sum_{i=1}^n(X_i-\bar{X})^2}\times \sqrt{\sum_{i=1}^n(Y_i-\bar{Y})^2}}

        其中,样本协方差被定义为:

s_{xy}=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{n-1}

        并且s_x和s_y分别是x和y的值的样本标准差,因此相关系数也可以写为:

r=\frac{s_{xy}}{s_x\cdot s_y}

        pearson相关系数,有时也称为总体相关系数或样本相关性,它的取值范围是[-1,1]。注意相关系数的公式在x和y之间是对称的,但线性回归中不是这样的。

# 导入库
import numpy as np

x=np.array([18.5,18.7,19.1,19.7,21.5,21.7,21.8,22,23.4,23.8])
y=np.array([34,39,41,38,45,41,52,44,44,49])
np.corrcoef(x,y)

         当然要知道相关系数的显著性情况,可以使用stats.pearsonr()函数,如下:

from scipy import stats
r,p=stats.pearsonr(x,y)
print("相关系数:",r)
print("p值:",p)

        结论:x和y之间存在显著的相关性。

2、秩相关

        如果数据不是正态分布的,那么需要采用不同的方法。在这种情况下,我们可以对数据集的每个变量进行排序,比较这个顺序。计算秩相关的常用方法有两种。

        spearman's \rho和pearson相关系数r完全一样,但计算的不是原始的数字,二是观测值的秩。

        kendall's \tau也是一个秩相关系数,测量两个观测量之间的而相关。它比spearman's \rho更难计算,但是有争论认为spearman's \rho的置信区间比kendall's \tau参数的置信区间更不可靠和难以理解。

        spearman相关系数python计算如下:

import numpy as np
from scipy import stats
# 录入数据
x=np.array([12,7,4,9,7,2,9,5,8,4])
y=np.array([19,13,8,8,13,14,12,10,12,11])

rho,p=stats.spearmanr(x,y)
print("相关系数",rho)
print("p值",p)

        结论:x与y之相关性不显著。

        kendall相关系数python计算如下:

tau,p=stats.kendalltau(x,y)
print("相关系数:",tau)
print("p值:",p)

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐