亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算 Pandas 中列的成對相關的 p 值?

如何計算 Pandas 中列的成對相關的 p 值?

慕婉清6462132 2021-07-02 14:11:02
Pandas 具有非常方便的功能,可以使用pd.corr()對列進行成對關聯。這意味著可以比較任意長度的列之間的相關性。例如:df = pd.DataFrame(np.random.randint(0,100,size=(100, 10)))     0   1   2   3   4   5   6   7   8   90    9  17  55  32   7  97  61  47  48  461    8  83  87  56  17  96  81   8  87   02   60  29   8  68  56  63  81   5  24  523   42  76   6  75   7  59  19  17   3  63...現在可以使用以下命令測試所有 10 列之間的相關性df.corr(method='pearson'):      0         1         2         3         4         5         6         7         8         90  1.000000  0.082789 -0.094096 -0.086091  0.163091  0.013210  0.167204 -0.002514  0.097481  0.0910201  0.082789  1.000000  0.027158 -0.080073  0.056364 -0.050978 -0.018428 -0.014099 -0.135125 -0.0437972 -0.094096  0.027158  1.000000 -0.102975  0.101597 -0.036270  0.202929  0.085181  0.093723 -0.0558243 -0.086091 -0.080073 -0.102975  1.000000 -0.149465  0.033130 -0.020929  0.183301 -0.003853 -0.0628894  0.163091  0.056364  0.101597 -0.149465  1.000000 -0.007567 -0.017212 -0.086300  0.177247 -0.0086125  0.013210 -0.050978 -0.036270  0.033130 -0.007567  1.000000 -0.080148 -0.080915 -0.004612  0.2437136  0.167204 -0.018428  0.202929 -0.020929 -0.017212 -0.080148  1.000000  0.135348  0.070330  0.0081707 -0.002514 -0.014099  0.085181  0.183301 -0.086300 -0.080915  0.135348  1.000000 -0.114413 -0.1116428  0.097481 -0.135125  0.093723 -0.003853  0.177247 -0.004612  0.070330 -0.114413  1.000000 -0.1535649  0.091020 -0.043797 -0.055824 -0.062889 -0.008612  0.243713  0.008170 -0.111642 -0.153564  1.000000是否有一種簡單的方法也可以獲得相應的 p 值(理想情況下在熊貓中),因為它是由 scipy 的kendalltau()返回的?
查看完整描述

3 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

為什么不使用“方法”參數pandas.DataFrame.corr():


pearson :標準相關系數。

kendall :Kendall Tau 相關系數。

spearman :斯皮爾曼等級相關。

callable: 可調用輸入兩個 1d ndarrays 并返回一個浮點數。

from scipy.stats import kendalltau, pearsonr, spearmanr


    def kendall_pval(x,y):

        return kendalltau(x,y)[1]

    

    def pearsonr_pval(x,y):

        return pearsonr(x,y)[1]

    

    def spearmanr_pval(x,y):

        return spearmanr(x,y)[1]

然后


corr = df.corr(method=pearsonr_pval)


查看完整回答
反對 回復 2021-07-13
  • 3 回答
  • 0 關注
  • 794 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號