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ù)。各有各自的用法和使用場景。當(dāng)然關(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è)必須有充分的理由。同時,當(dāng)原假設(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)文章
Python機器學(xué)習(xí)iris數(shù)據(jù)集預(yù)處理和模型訓(xùn)練方式
iris數(shù)據(jù)集包含150個樣本,每個樣本有4個特征及其類別信息,本文介紹了iris數(shù)據(jù)集的基本操作和如何使用knn模型進行花卉種類預(yù)測,是機器學(xué)習(xí)中的經(jīng)典案例,適用于監(jiān)督式學(xué)習(xí)2024-10-10
python利用json和pyecharts畫折線圖實例代碼
這篇文章主要介紹了python利用json和pyecharts畫折線圖實例,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
解決tensorflow由于未初始化變量而導(dǎo)致的錯誤問題
今天小編就為大家分享一篇解決tensorflow由于未初始化變量而導(dǎo)致的錯誤問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01

