python皮爾遜相關(guān)性數(shù)據(jù)分析分析及實例代碼
前言
相關(guān)性分析算是很多算法以及建模的基礎(chǔ)知識之一了,十分經(jīng)典。關(guān)于許多特征關(guān)聯(lián)關(guān)系以及相關(guān)趨勢都可以利用相關(guān)性分析計算表達。其中常見的相關(guān)性系數(shù)就有三種:person相關(guān)系數(shù),spearman相關(guān)系數(shù),Kendall's tau-b等級相關(guān)系數(shù)。各有各自的用法和使用場景。當然關(guān)于這以上三種相關(guān)系數(shù)的計算算法和原理+代碼我都會在我專欄里面寫齊全。目前關(guān)于數(shù)學(xué)建模的專欄已經(jīng)將傳統(tǒng)的機器學(xué)習(xí)預(yù)測算法、維度算法、時序預(yù)測算法和權(quán)重算法寫的七七八八了,有這個需求興趣的同學(xué)可以去看看。
數(shù)值類型
之前在我上篇文章說過關(guān)于數(shù)據(jù)特征是一個很重要的例子,任何分析算法都需要建立在其符合使用場景之上,我們需要對癥下藥,從數(shù)據(jù)特征開始分析。
按照數(shù)據(jù)存儲的數(shù)據(jù)格式可以歸納為兩類:
按照特征數(shù)據(jù)含義又可分為:
- 離散型隨機變量:取值只能是可取范圍內(nèi)的指定數(shù)值類型的隨機變量,比如年齡、車流量此類數(shù)據(jù)。
- 連續(xù)隨機變量:按照測量或者計算方法得到,在某個范圍內(nèi)連取n個值,此類數(shù)據(jù)可化為定類數(shù)據(jù)。
- 二分類數(shù)據(jù):此類數(shù)據(jù)僅只有兩類:例如是與否、成功與失敗。
- 多分類數(shù)據(jù):此類數(shù)據(jù)有多類:例如天氣出太陽、下雨、陰天。
- 周期型數(shù)據(jù):此類數(shù)據(jù)存在一個周期循環(huán):例如周數(shù)月數(shù)。
那么問題來了,關(guān)于這三種系數(shù)到底適用于哪種數(shù)據(jù)場景呢?
皮爾遜系數(shù)使用場景
首先使用皮爾遜系數(shù)的情況包含以下三種特性,我們從scipy的函數(shù)pearsonr的相關(guān)說明就可以看出:
The Pearson correlation coefficient [1] measures the linear relationship between two datasets. Like other correlation coefficients, this one varies between -1 and +1 with 0 implying no correlation. Correlations of -1 or +1 imply an exact linear relationship. Positive correlations imply that as x increases, so does y. Negative correlations imply that as x increases, y decreases.
也就是說:皮爾遜相關(guān)系數(shù)測量兩個數(shù)據(jù)集之間的線性關(guān)系。與其他相關(guān)系數(shù)一樣,該系數(shù)在-1和+1之間變化,0表示不相關(guān)。-1或+1的相關(guān)性意味著精確的線性關(guān)系。正相關(guān)意味著x增加,y也增加。負相關(guān)意味著隨著x增加,y減少。 總結(jié)一下對于皮爾遜相關(guān)系數(shù)的使用場景,有三種必要的特性使用皮爾遜系數(shù)最佳:
- 連續(xù)數(shù)據(jù)
- 正態(tài)分布
- 線性關(guān)系
上述三個條件均滿足才能使用pearson相關(guān)系數(shù),否則就用spearman相關(guān)系數(shù)。定序數(shù)據(jù)之間也只用spearman相關(guān)系數(shù),不能用pearson相關(guān)系數(shù)。
皮爾遜相關(guān)系數(shù)(Pearson correlation)
1.定義
兩個變量之間的皮爾遜相關(guān)系數(shù)定義為兩個變量之間的協(xié)方差和標準差的商:
變量相關(guān)強度:
相關(guān)程度 | 極強相關(guān) | 強相關(guān) | 中等強度相關(guān) | 弱相關(guān) | 極弱相關(guān)或無相關(guān) |
---|---|---|---|---|---|
相關(guān)系數(shù)絕對值 | 1-0.8 | 0.8-0.6 | 0.6-0.4 | 0.4-0.2 | 0.2-0 |
2.線性關(guān)系判定
一般可以利用散點圖加上最小二乘法擬合大體看出線性關(guān)系:
3.正態(tài)檢驗
1.KS檢驗
假設(shè)檢驗的基本思想:
若對總體的某個假設(shè)是真實的,那么不利于或者不能支持這一假設(shè)的事件A在一次試驗中是幾乎不可能發(fā)生的。如果事件A真的發(fā)生了,則有理由懷疑這一假設(shè)的真實性,從而拒絕該假設(shè)。
實質(zhì)分析: 假設(shè)檢驗實質(zhì)上是對原假設(shè)是否正確進行檢驗,因此檢驗過程中要使原假設(shè)得到維護,使之不輕易被拒絕;否定原假設(shè)必須有充分的理由。同時,當原假設(shè)被接受時,也只能認為否定該假設(shè)的根據(jù)不充分,而不是認為它絕對正確。
借助假設(shè)檢驗的思想,利用K-S檢驗可以對數(shù)列的性質(zhì)進行檢驗:
def normal_test(data): u = data.mean() std = data.std() result = stats.kstest(data, 'norm', (u, std)) print(result) normal_test()
此時,pvalue > 0.05,不拒絕原假設(shè)。因此數(shù)據(jù)服從正態(tài)分布。
4.計算代碼
若以上驗證均成功則采取皮爾遜相關(guān)系數(shù)進行相關(guān)性分析,可以使用pandas的函數(shù)corr:
DataFrame.corr(method='pearson', min_periods=1, numeric_only=_NoDefault.no_default)
參數(shù)說明:
method: {‘pearson’, ‘kendall’, ‘spearman’} or callable。Method of correlation。
- pearson : standard correlation coefficient,皮爾遜系數(shù)
- kendall : Kendall Tau correlation coefficient,肯德爾系數(shù)
- spearman :Spearman rank correlation,斯皮爾曼系數(shù)
min_periods:int, optional。每對列所需的最小樣本數(shù)。目前僅適用于Pearson和Spearman相關(guān)性。 numeric_only:bool, default True。僅包含浮點、整型或布爾型數(shù)據(jù)。
rho =df_test.corr(method='pearson') rho
plt.rcParams['font.family'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False sns.heatmap(rho, annot=True) plt.title('Heat Map', fontsize=18)
以上就是python皮爾遜相關(guān)性分析及實例代碼的詳細內(nèi)容,更多關(guān)于python皮爾遜相關(guān)性的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pytorch 網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解
這篇文章主要介紹了pytorch 網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python實現(xiàn)根據(jù)Excel生成Model和數(shù)據(jù)導(dǎo)入腳本
最近遇到一個需求,有幾十個Excel,每個的字段都不一樣,然后都差不多是第一行是表頭,后面幾千上萬的數(shù)據(jù),需要把這些Excel中的數(shù)據(jù)全都加入某個已經(jīng)上線的Django項目。所以我造了個自動生成?Model和導(dǎo)入腳本的輪子,希望對大家有所幫助2022-11-11Python處理文件的方法(mimetypes和chardet)
這篇文章主要介紹了Python處理文件的方法(mimetypes和chardet),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09pygame實現(xiàn)俄羅斯方塊游戲(基礎(chǔ)篇1)
這篇文章主要為大家介紹了pygame實現(xiàn)俄羅斯方塊游戲基礎(chǔ)的第1篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10BeautifulSoup獲取指定class樣式的div的實現(xiàn)
這篇文章主要介紹了BeautifulSoup獲取指定class樣式的div的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12pycharm2020上部署配置AutoGPT4.0(保姆級教程)
本文主要介紹了pycharm2020上部署配置AutoGPT4.0,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06