爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16310|回复: 7

[求助] 【已解决】python中计算偏相关的函数是哪个呀,找了好久没找到,求分享?

[复制链接]
发表于 2019-8-17 15:34:00 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 LemonTree007 于 2019-8-23 16:20 编辑

python数据处理计算偏相关应该有函数吧,但一直没找到,求分享,谢谢!
密码修改失败请联系微信:mofangbao
发表于 2019-8-17 21:53:59 | 显示全部楼层
pip install pingouin

>>> import pingouin as pg
>>> pg.partial_corr(data=df, x='x', y='y', covar='cv1')
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-18 09:15:43 | 显示全部楼层
Masterpiece 发表于 2019-8-17 21:53
pip install pingouin

>>> import pingouin as pg

十分感谢,找了好久的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-18 13:09:56 | 显示全部楼层
Masterpiece 发表于 2019-8-17 21:53
pip install pingouin

>>> import pingouin as pg

你好,编程出了问题。
data = pd.DataFrame(data =list(zip(cv1,cv2,cv3,cv4)),columns=['cv1', 'cv2', 'cv3','cv4'])
x = ('cv2', 'cv3', 'cv4')
pcorr=pg.partial_corr(data=data, x=x,y='cv1', covar=['cv1','cv2', 'cv3','cv4'],method='pearson')
为什么显示错误:AssertionError: columns are not in dataframe.
print(data)
         cv1       cv2       cv3       cv4
0  -0.025668  0.001574  0.021586 -0.015914
1   1.228257  0.598232 -2.584251  1.102304
2  -0.852543 -0.331330  2.496003  0.468036
3  -0.087505 -0.333991  0.237582 -1.966000
4  -0.101460  0.335442 -1.933435  0.850419
5   0.375789  0.093174  0.847911  0.117157
6  -0.097160  0.240290  0.634746  0.382058
7  -0.046964 -1.062965 -0.294779 -0.029220
8  -0.519576  0.909121 -0.049224 -1.512428
9   0.542839  0.122176 -0.308656  1.346514
10 -0.192872 -0.510817  0.226921  0.149605
11  0.483541  0.008430  0.312598 -0.498299
12 -1.439207  0.375831 -0.108031 -0.541642
13  1.166190 -0.319927  0.182614  1.031384
14  0.313265  0.443001 -0.854973 -0.279159
15 -1.166811 -1.122828  1.043560 -1.070450
16 -0.052892  1.456895 -0.170738  0.845948
17  1.626591  0.107111 -0.876110  1.367537
18 -1.779180 -2.746874  2.029487 -2.822018
19  0.673239  3.309435 -2.385439  1.595160
20 -0.242370 -1.509213  1.433127 -0.395344
21  0.580667  0.607312 -0.257615  0.655454
22 -0.660286 -1.269090  0.164454 -0.348356
23 -0.309988  1.159640  0.048629 -1.071516
24  1.085856 -0.343046 -0.620587  1.070137
25 -0.857442  0.264235  0.793612 -0.074199
26  0.242741  0.081759 -0.713822  0.288550
27 -0.742172 -1.230219  1.138264 -1.141537
28  1.045990  1.213835 -0.707350  0.381964
29  0.525518  0.188446 -0.617463  1.101619
30 -2.601503 -0.673843  1.057912 -1.723179
31  1.813958  0.028713 -0.021815  1.371681
32  0.797980 -0.179019 -0.424447 -0.530811
33 -2.099692  1.139445  0.071904 -0.655454
34  1.332329 -1.140540 -0.141569  0.803388
35 -0.132528 -0.057142  0.809616  0.179298
36 -1.094892  1.010431 -0.704054 -0.793689
37  1.296500 -0.865128  0.205200  0.384932
38 -0.028538  0.001444  0.018630 -0.023931
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-18 13:18:01 | 显示全部楼层
LemonTree007 发表于 2019-8-18 13:09
你好,编程出了问题。
data = pd.DataFrame(data =list(zip(cv1,cv2,cv3,cv4)),columns=['cv1', 'cv2',  ...

这里cv1相当于因变量,cv2,cv3,cv4都是影响因子
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-23 16:18:29 | 显示全部楼层
其实理解了就很简单,不知道之前怎么想的,没看懂这个函数
pg.partial_corr(data=df, x='x', y='y', covar='cv1')
意思就是剔除cv1后x与y的相关;若想剔除更多影响因子,covar=['cv1','cv2','cv3']
其中data=df的获取可以我前面的回复。
data = pd.DataFrame(data =list(zip(cv1,cv2,cv3,cv4)),columns=['cv1', 'cv2', 'cv3','cv4']),把四个因子合并成一个数组矩阵
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-4-24 17:48:43 | 显示全部楼层
感谢!!!!!帮我解决了大问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-7-20 17:37:48 | 显示全部楼层
可以问下有人知道怎么得到x去除掉covar中的信息之后的数列吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表