日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Pandas?計算相關性系數corr()方式_python

作者:胡桃の壺 ? 更新時間: 2022-09-08 編程語言

Pandas 計算相關性系數corr()

相關:數據之間有關聯,相互有影響

如:A和B 存在一定的相關性,A對B存在一定程度的影響,A變化,B也會有一定的變化

  • 如果A和B相等 或者 B可以由A經過計算得到---->完全相關
  • 如果B是由 A和C計算得到 ---->并且 A可以計算出B的大部分 -----> A和B 強度相關
  • 如果B是由 A和C計算得到 ---->并且 A可以計算出B的小部分 -----> A和B 弱度相關
  • 如果 A和B 毫無關系 ----> 不相關

如果B和 A相關:

  • A的增大導致B的減小 —> 負相關
  • A的增大導致B的增大 —> 正相關

相關性系數:衡量相關性強弱的

其范圍是[-1,1],絕對值越靠近0,表示不相關,絕對值越靠近1,表示相關性越強

小于 0 表示負相關;大于 0 表示正相關。

構造如下數據

import pandas as pd

data = pd.DataFrame(
    data={
        'age': [2,7,10,16,20],
        'height': [70,90,143,166,178],
        'score': [98,37,103,76,53]
    }
)

使用corr()方法計算相關性系數:

# 計算相關性系數的列 必須都是數值型的數據!
corr = data.loc[:, ["age","height"]].corr()?? ??? ?# 會計算兩兩列之間的相關性系數
print("corr\n", corr)
"""
corr
? ? ? ? ? ? age ? height
age ? ? 1.00000 ?0.96043
height ?0.96043 ?1.00000
"""

自身與自身的相關性系數為 1

計算多列相關性系數:

corr = data.loc[:, ["age","height","score"]].corr()
print("corr\n", corr)
"""
corr
? ? ? ? ? ? ?age ? ?height ? ? score
age ? ? 1.000000 ?0.960430 -0.340053
height ?0.960430 ?1.000000 -0.096782
score ?-0.340053 -0.096782 ?1.000000
"""

pandas相關系數-DataFrame.corr()參數

DataFrame.corr(method='pearson', min_periods=1)

參數說明

  • method:可選值為{‘pearson’, ‘kendall’, ‘spearman’}
  • pearson:Pearson相關系數來衡量兩個數據集合是否在一條線上面,即針對線性數據的相關系數計算,針對非線性數據便會有誤差。
  • kendall:用于反映分類變量相關性的指標,即針對無序序列的相關系數,非正太分布的數據
  • spearman:非線性的,非正太分布的數據的相關系數
  • min_periods:樣本最少的數據量
  • 返回值:各類型之間的相關系數DataFrame表格。

為區分不同參數之間的區別,我們實驗如下:

from pandas import DataFrame
import pandas as pd
x=[a for a in range(100)]
#構造一元二次方程,非線性關系
def y_x(x):
    return 2*x**2+4
y=[y_x(i) for i in x]
 
data=DataFrame({'x':x,'y':y})
 
#查看下data的數據結構
data.head()
Out[34]: 
   x   y
0  0   4
1  1   6
2  2  12
3  3  22
4  4  36
 
data.corr()
Out[35]: 
          x         y
x  1.000000  0.967736
y  0.967736  1.000000
 
data.corr(method='spearman')
Out[36]: 
     x    y
x  1.0  1.0
y  1.0  1.0
 
data.corr(method='kendall')
Out[37]: 
     x    y
x  1.0  1.0
y  1.0  1.0

因為y經由函數構造出來,x和y的相關系數為1,但從實驗結構可知pearson系數,針對非線性數據有一定的誤差。

需要說明,數據之間的相關關系,并不代表其之間的因果關系,相關系數為1,只能說明二者之間具備完全相關性,但不能說y是x的果。

原文鏈接:https://blog.csdn.net/weixin_45760274/article/details/123655196

欄目分類
最近更新