相關(guān)性分析
1椅邓、相關(guān)性分析是指對(duì)多個(gè)具備相關(guān)關(guān)系的變量進(jìn)行分析痘儡,從而衡量變量間的相關(guān)程度或密切程度
2驱敲、相關(guān)性可以應(yīng)用到所有數(shù)據(jù)的分析過程中撰豺,任何事物之間都是存在一定的聯(lián)系
3相味、為了更準(zhǔn)確描述變量之間的相關(guān)程度涂邀,通過計(jì)數(shù)相關(guān)系數(shù)來表示卿樱,在二元變量的相關(guān)分析中用相關(guān)系數(shù)(R)表示销部,而常用的有Pearson相關(guān)系數(shù)(皮爾遜相關(guān)系數(shù)) 和Spearman秩相關(guān)系數(shù)(斯皮爾曼相關(guān)系數(shù))
- 相關(guān)系數(shù)取值范圍:-1≤R≤1眠饮,R>0為正相關(guān)表示兩個(gè)變量的增長趨勢(shì)相同奥帘,R<0為負(fù)相關(guān)表示兩個(gè)變量的增長趨勢(shì)相反
- 相關(guān)性的強(qiáng)弱看相關(guān)系數(shù)R的絕對(duì)值。
- |R|=0仪召,不存在線性關(guān)系寨蹋,|R|=-1,完全線性相關(guān)
- |R|≤0.3扔茅,極弱線性相關(guān)或不存在線性相關(guān)
- 0.3<|R|≤0.5已旧,低度線性相關(guān)
- 0.5≤|R|≤0.8,顯著線性相關(guān)
- |R|>0.8,高度線性相關(guān)
# 設(shè)置cell多行輸出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all' #默認(rèn)為'last'
# 導(dǎo)入相關(guān)庫
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import os
import warnings
warnings.filterwarnings('ignore')
os.chdir(r'E:\python_learn\data\python_book_v2\chapter3')
file_name='data5.txt'
data = pd.read_table(file_name,names=list('ABCDEFGHIJ'))
data.head()
Pearson相關(guān)系數(shù) → data.corr(method='pearson')
- pearson相關(guān)系數(shù)一般用于分析兩個(gè)連續(xù)性變量之間的關(guān)系召娜,且要求連續(xù)變量的取值服從正態(tài)分布运褪。
→pandas的corr()函數(shù)可以直接給出數(shù)據(jù)字段的相關(guān)系數(shù)矩陣,返各類型之間的相關(guān)系數(shù)DataFrame表格。
- 參數(shù)說明:
- method:可選值為{‘pearson’, ‘kendall’, ‘spearman’}
- pearson:Pearson相關(guān)系數(shù)來衡量?jī)蓚€(gè)數(shù)據(jù)集合是否在一條線上面玖瘸,即針對(duì)線性數(shù)據(jù)的相關(guān)系數(shù)計(jì)算秸讹,針對(duì)非線性數(shù)據(jù)便會(huì)有誤差。
- kendall:用于反映分類變量相關(guān)性的指標(biāo)雅倒,即針對(duì)無序序列的相關(guān)系數(shù)璃诀,非正太分布的數(shù)據(jù)
- spearman:非線性的,非正太分析的數(shù)據(jù)的相關(guān)系數(shù)
- min_periods:樣本最少的數(shù)據(jù)量
- method:可選值為{‘pearson’, ‘kendall’, ‘spearman’}
# 此處假設(shè)數(shù)據(jù)服從正態(tài)分布
# pearson相關(guān)系數(shù)矩陣
pearson = round(data.corr(method='pearson',min_periods=1),2) # method默認(rèn)pearson
pearson
# 用色彩映射表現(xiàn)返回的相關(guān)性矩陣的相關(guān)性強(qiáng)弱
pearson_abs = np.abs(pearson)
pearson_abs.style.background_gradient(cmap='Blues',axis =1,low=0,high=1)
# cmap:顏色
# axis:映射參考蔑匣,0為行劣欢,1以列
# 用熱力圖可視化
fig,ax = plt.subplots(1,1,figsize=(8,6))
hot_img = ax.matshow(np.abs(pearson),vmin=0,vmax=1,cmap='Greens')
# vmin=0,vmax=1 設(shè)置值域從0-1
fig.colorbar(hot_img) # 生成顏色漸變條(右側(cè))
ax.set_title('熱力圖-Pearson相關(guān)性矩陣',fontsize=14,pad=12)
ax.set_xticks(range(0,10,1))
ax.set_yticks(range(0,10,1))
ax.set_xticklabels(['x'+str(i) for i in range(len(pearson))],fontsize=12)
ax.set_yticklabels(['x'+str(i) for i in range(len(pearson))],fontsize=12)
Spearman秩相關(guān)系數(shù) → data.corr(method='spearman')
- 不服從正態(tài)分布的變量棕诵、分類或等級(jí)變量之間的關(guān)聯(lián)性可采用Spearman秩相關(guān)系數(shù)來描述,因此Spearman秩相關(guān)系數(shù)又稱為等級(jí)相關(guān)系數(shù)
# Sperman秩相關(guān)系數(shù)矩陣
spearman = round(data.corr(method='spearman'),2)
spearman
- 當(dāng)數(shù)據(jù)變量之間的相關(guān)性較強(qiáng)的時(shí)凿将,說明變量間可能存在共線性相關(guān)性校套,可以采取降維的處理方法,從原有的變量中提取部分特征代替原數(shù)據(jù)的所有特征牧抵。