python 自相关系数,python求相关性系数
Qarcher:python怎么计算相关系数、偏相关系数?zhuanlan.zhihu.com
进口熊猫作为螺纹中径
将数组作为铭牌导入
从科学计算导入统计
进口统计
导入数学
将matplotlib.pyplot作为血小板计数导入
将海生的作为社交网站(Social Network Site的缩写)导入
x1=np.random.rand(10)
x2=np.random.rand(10)
x3=np.random.rand(10)
打印(x1)
打印(x2)
打印(x3)
# 方法1:通过熊猫计算
df=pd .DataFrame([x1,x2,x3],index=[a , b , c]).T
# 计算相关系数矩阵
corr=df.corr()
# 计算两列之间的相关系数
r_ab=df.a.corr(df.b)
r_ac=df.a.corr(df.c)
r_bc=df.b.corr(df.c)
# 计算偏方差
r _ ab _ c=(r _ ab-r _ AC * r _ BC)/(((1-r _ AC * * 2)* * 1/2)*((1-r _ BC * * 2)* * 1/2))
# 方法2:通过数组计算
lst=[x1,x2,x3]
# 生成相关系数矩阵
res=np.corrcoef(lst)
# 提取相关系数方式2
label=[a , b , c]
corr=dict()
对于范围内的行(res.shape[0]):
对于范围内的列(分辨率形状[1]):
corr[r_{}{} .格式(标签[行],标签[列])]=RES[行][列]
r_ab=corr[r_ab]
r_ac=corr[r_ac]
r_bc=corr[r_bc]
r _ ab _ c=(r _ ab-r _ AC * r _ BC)/(((1-r _ AC * * 2)* * 1/2)*((1-r _ BC * * 2)* * 1/2))
打印(r_ab_c)
# 方法3:通过科学计算计算
从科学计算导入统计
r_ab=stats.pearsonr(x1,x2)[0]
r_ac=stats.pearsonr(x1,x3)[0]
r_bc=stats.pearsonr(x2,x3)[0]
r _ ab _ c=(r _ a b-r _ AC * r _ BC)/(((1-r _ AC * * 2)* * 0.5)*((1-r _ BC * * 2)* * 0.5))
打印( ab_c的一阶偏相关系数为:,r_ab_c)
# 方法4:自己写公式
def calc_corr(a,b):
a_avg=sum(a)/len(a)
b_avg=sum(b)/len(b)
# 计算分子,协方差————按照协方差公式,本来要除以n的,由于在相关系数中上下同时约去了n,于是可以不除以n
cov _ ab=sum([(x-a _ avg)*(y-b _ avg)for x,y in zip(a,b)])
# 计算分母,方差乘积————方差本来也要除以n,在相关系数中上下同时约去了n,于是可以不除以n
sq=数学。sqrt(sum([(x-a _ avg)* * 2 for x in a])* sum([(x-b _ avg)* * 2 for x in b]))
校正系数=cov_ab /平方
返回修正因子
r_ab=calc_corr(x1,x2)
r_ac=calc_corr(x1,x3)
r_bc=calc_corr(x2,x3)
r _ ab _ c=(r _ ab-r _ AC * r _ BC)/(((1-r _ AC * * 2)* * 1/2)*((1-r _ BC * * 2)* * 1/2))
打印( ab_c的一阶偏相关系数为:,r_ab_c)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。