当前位置:   article > 正文

Person相关分析原理以及python实现

person相关分析


总体——所要考察对象的全部个体叫做望得到总体数据的一些特征(例如均值方差等)
样本——从总体中所抽取的一部分个体叫做总体的一个样本

1.总体Person相关系数

如果两组数据 X : { X 1 , X 2 , ⋯   , X n } X:\left\{X_{1}, X_{2}, \cdots, X_{n}\right\} X:{X1,X2,,Xn} Y : { Y 1 , Y 2 , ⋯   , Y n } Y:\left\{Y_{1}, Y_{2}, \cdots, Y_{n}\right\} Y:{Y1,Y2,,Yn} 是总体数据
那么总体均值: E ( X ) = ∑ i = 1 n X i n , E ( Y ) = ∑ i = 1 n Y i n E(X)=\frac{\sum_{i=1}^{n} X_{i}}{n}, E(Y)=\frac{\sum_{i=1}^{n} Y_{i}}{n} E(X)=ni=1nXi,E(Y)=ni=1nYi
总协方差: Cov ⁡ ( X , Y ) = ∑ i = 1 n ( X i − E ( X ) ) ( Y i − E ( Y ) ) n \operatorname{Cov}(X, Y)=\frac{\sum_{i=1}^{n}\left(X_{i}-E(X)\right)\left(Y_{i}-E(Y)\right)}{n} Cov(X,Y)=ni=1n(XiE(X))(YiE(Y))
直观理解协方差:如果X、Y变化方向相同,即当X大于(小于)其均值时,Y也大于(小于)其均值,在这两种情况下,乘积为正。如果X、Y的变化方向一直保持相同,则协方差为正;同理,如果X、Y变化方向一直相反,则协方差为负;如果X、Y变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么累加后正负抵消。

注意:协方差的大小和两个变量的量纲有关,因此不适合做比较。
总体 Pearson 相关系数: ρ X Y = Cov ⁡ ( X , Y ) σ X σ Y = ∑ i = 1 n ( X i − E ( X ) ) σ X ( Y i − E ( Y ) ) σ Y n \rho_{X Y}=\frac{\operatorname{Cov}(X, Y)}{\sigma_{X} \sigma_{Y}}=\frac{\sum_{i=1}^{n} \frac{\left(X_{i}-E(X)\right)}{\sigma_{X}} \frac{\left(Y_{i}-E(Y)\right)}{\sigma_{Y}}}{n} ρXY=σXσYCov(X,Y)=ni=1nσX(XiE(X))σY(YiE(Y))
其中 σ X , σ Y {{\sigma }_{X}},{{\sigma }_{Y}} σX,σY X , Y X,Y X,Y 的标准差
σ X = ∑ i = 1 n ( X i − E ( X ) ) 2 n , σ Y = ∑ i = 1 n ( Y i − E ( Y ) ) 2 n \sigma_{X}=\sqrt{\frac{\sum_{i=1}^{n}\left(X_{i}-E(X)\right)^{2}}{n}}, \sigma_{Y}=\sqrt{\frac{\sum_{i=1}^{n}\left(Y_{i}-E(Y)\right)^{2}}{n}} σX=ni=1n(XiE(X))2 ,σY=ni=1n(YiE(Y))2

可以证明, ∣ ρ X Y ∣ ≤ 1 \left|\rho_{X Y}\right| \leq 1 ρXY1, 且当 Y = a X + b Y=a X+b Y=aX+b 时, ρ X Y = { 1 , a > 0 − 1 , a < 0 \rho_{X Y}=\left\{

1,a>01,a<0
\right. ρXY={1,1,a>0a<0

2. 样本Person相关系数

假设有两组数据 X : { X 1 , X 2 , ⋯   , X n } X:\left\{X_{1}, X_{2}, \cdots, X_{n}\right\} X:{X1,X2,,Xn} Y : { Y 1 , Y 2 , ⋯   , Y n } Y:\left\{Y_{1}, Y_{2}, \cdots, Y_{n}\right\} Y:{Y1,Y2,,Yn} (一般调查得到的数据均为样本数据)
样本均值: X ˉ = ∑ i = 1 n X i n , Y ˉ = ∑ i = 1 n Y i n \bar{X}=\frac{\sum_{i=1}^{n} X_{i}}{n}, \bar{Y}=\frac{\sum_{i=1}^{n} Y_{i}}{n} Xˉ=ni=1nXi,Yˉ=ni=1nYi
样本协方差: Cov ⁡ ( X , Y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) n − 1 \operatorname{Cov}(X, Y)=\frac{\sum_{i=1}^{n}\left(X_{i}-\bar{X}\right)\left(Y_{i}-\bar{Y}\right)}{n-1} Cov(X,Y)=n1i=1n(XiXˉ)(YiYˉ)
样本Pearson 相关系数: r X Y = Cov ⁡ ( X , Y ) S X S Y r_{X Y}=\frac{\operatorname{Cov}(X, Y)}{S_{X} S_{Y}} rXY=SXSYCov(X,Y)
其中: S X , S Y {{S}_{X}},{{S}_{Y}} SX,SY 是的样本标准差
S X = ∑ i = 1 n ( X i − X ˉ ) 2 n − 1 , S Y = ∑ i = 1 n ( Y i − Y ˉ ) 2 n − 1 S_{X}=\sqrt{\frac{\sum_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}}{n-1}},S_{Y}=\sqrt{\frac{\sum_{i=1}^{n}\left(Y_{i}-\bar{Y}\right)^{2}}{n-1}} SX=n1i=1n(XiXˉ)2 ,SY=n1i=1n(YiYˉ)2
注:为什么除以n-1? 如果除以n,对样本方差的估计不是无偏估计,比总体方 差要小,要想是无偏估计就要调小分母,所以除以n-1

3. 相关系数误区

  1. 四个散点图对应的数据的皮尔逊相关系数均为0.816(图1-4)
    在这里插入图片描述

  2. 冰激凌的销量和温度之间的关系,相关系数计算结果为0(图5)blog.csdn
    在这里插入图片描述

这里的相关系数只是用来衡量两个变量线性相关程度的指标;也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能告诉你他俩相关程度如何。
(1)非线性相关也会导致线性相关系数很大,例如图2。
(2)离群点对相关系数的影响很大,例如图3,去掉离群点后,相关系数为0.98。
(3)如果两个变量的相关系数很大也不能说明两者相关,例如图4,可能是受到了异常值的影响。
(4)相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关关系(非线性相关),例如图5。

4. Person总结

(1)如果两个变量本身就是线性的关系,那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱;
(2)在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说他们相关,我们一定要画出散点图来看才行。

5. 相关系数的假设检验

在判断样本的 r \mathrm{r} r 是否有意义,需与总体相关系数 ρ = 0 \rho=0 ρ=0 进行比较,看两者的差别有无统计学意义。这就要对进行假设检验,判断不等于 0 是 由于抽样误差所致,还是两个变量之间确实存在相关关系。 步骤:

  1. 提出假设
    H 0 : P = 0 H_0:P=0 H0P=0 无关
    H 1 : P ≠ 0 H_1:P \neq 0 H1P=0 相关
  2. 确定显著水平 a = 0.05 \mathrm{a}=0.05 a=0.05
    如果从相关系数 ρ = 0 \rho=0 ρ=0 的总体中取得 r r r 值的概率 P > 0.05 P>0.05 P>0.05 ,我们就接受假设,认为此 r r r 值很可能是从此总体中取得的。因此判断两变量间无 显著关系;
    如果取得 r r r 值的概率 P < = 0.05 P<=0.05 P<=0.05 P < = 0.01 P<=0.01 P<=0.01 ,我们就在 α = 0.05 \alpha=0.05 α=0.05 α = 0.01 \alpha=0.01 α=0.01 水准上拒绝检验假设,认为该 r r r 值不是来自 ρ = 0 \rho=0 ρ=0 的总体,而是来自 ρ ≠ 0 \rho \neq 0 ρ=0 的另一个总体,因此就判断两变量间有显著关系。
  3. 计算检验统计量,查表得到 P P P 值。拒绝 H 0 H_0 H0,则两变量相关。否则,两变量无关。

t检验法
计算检验统计量 t r t_r tr,查界值表,得到 P P P
t r = ∣ r − 0 ∣ 1 − r 2 n − 2 t_r=\frac{|r-0|}{\sqrt{\frac{1-r^2}{n-2}}} tr=n21r2 r0∣

5. Python实现

5.1 程序

# %%
import numpy as np
import pandas as pd
from scipy.stats import pearsonr
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats

# 2.0.1无法读取xlsx文件,降低版本到1.2.0 pip install xlrd==1.2.0
test_data = pd.read_excel(r"八年级女生体测数据.xlsx")
# 数据统计
Desc = test_data.describe()
"""
方式一:
Dataframe.corr()   计算两两之间的相似度,返回Dataframe类型
Series.corr(other)  计算该序列与传入序列相关度,返回一个数值
例如:data['身高'].corr(data['体重'])

DataFrame.corr(method='pearson', min_periods=1)
参数说明:
method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}
Pearson相关系数样本必须是正态分布,衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。
kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据
spearman:非线性的,非正太分布的数据的相关系数
min_periods:样本最少的数据量,最少为1
"""
result_1 = test_data.corr(method='pearson')



"""
方式二:
将Dataframe转换为array,array.corrcoef(data),返回相关度二维数组
"""
data = np.array(test_data)
# numpy自带函数,rowvar=False代表以列为变量
result_2 = np.corrcoef(data, rowvar=False)




"""
方式三:
scipy.stats中的pearsonr(X,Y)分析两个变量,无法计算相关矩阵
返回值:
r : float,皮尔逊相关系数,[-1,1]之间。
p-value : float,Two-tailed p-value(双尾P值)。
注:p值越小,表示相关系数越显著,一般p值在500个样本以上时有较高的可靠性。可以理解为显著性水平。
"""
result_3 = pearsonr(test_data['身高'], test_data['体重'])

"""
数据可视化
"""
# 相关性热力图可视化
ax = sns.heatmap(result_1, vmax=1, cmap='RdYlGn', annot=True)
ax.set_xticklabels(list(test_data))
ax.set_yticklabels(list(test_data))
# 设置中文标签显示
plt.rcParams['font.sans-serif'] = ['Kaitt', 'SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()
# 生成散点图,可以初步判断正态分布
ax_1 = sns.pairplot(test_data)
plt.show()

for i in list(test_data):
    index_i = list(test_data).index(i)
    plt.subplot(3,2,index_i+1)
    sns.histplot(test_data[i], kde=True)
plt.show()

"""
正态分布KS检验
满足p > 0.05的情况,服从正态分布。
"""
print(Desc)
All_mean = Desc.loc['mean']
All_std = Desc.loc['std']
for i in list(test_data):
    statistic, pvalue = stats.kstest(test_data[i], 'norm', (All_mean.loc[i], All_std.loc[i]))
    print(pvalue)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83

5.2 数据

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/675273
推荐阅读
相关标签
  

闽ICP备14008679号