几组数据的相关性python_数据分析---用Python进行相关性分析(兼谈假设检验)
一、相關關系和相關系數
世上除了因果關系,還有相關關系。
有一個叫“相關系數”的指標來量化兩個事物之間的相關程度。
其中相關系數用“r”表示,取值范圍介于-1和1之間。
當(X,Y)正相關的時候,r=1;當(X,Y)負相關的時候,r=-1;當(X,Y)不相關的時候,r=0。
當然一般的線性相關有更嚴格的劃分:r|<0.3 不存在線性關系
0.3<|r|<0.5 低度線性關系
0.5<|r|<0.8 顯著線性關系
|r|>0.8 高度線性關系
二、相關性和假設檢驗
有指標來衡量兩者之間的相關程度,不代表能夠去衡量相關程度。
因引入兩個概念:
現在,針對我們分析的兩組數據(X,Y)(兩組數據被稱為抽樣),我們的疑問來了:
抽樣的(X,Y)是否可以正確反應總體的情況呢?
這里涉及:假設檢驗。
具體操作如下:
零假設H0:總體的數據不呈相關性(相關系數為0),并先認為H0正確
備選假設H1:總體的數據呈現相關性(相關系數不為0)
引入一個指標:顯著性水平p,一般將其設定為0.05或者0.01
當p<0.05,拒絕原假設,備選假設正確;
當p>0.05,原假設正確。
所以,在進行相關性分析實驗的之前,我們需要分兩步走:
1.進行假設檢驗,獲得p值<0.05,得到結論:總體的數據呈現相關性
2.進行相關性分析,得到r值
如果p值>0.05(或者0.01),則實驗失敗,抽樣數據無法反應整體情況。不管r值表現如何都是偶然事件。
只有在p值<0.05(或者0.01)的前提下,才可以參考r值,進而判斷相關程度。
三、兼談假設檢
假設檢驗的3種類型
假設檢驗的套路:
四、利用Python進行相關性分析
判定兩者相關的方式有兩種:圖形觀測法:通過繪制散點圖判斷兩者是否存在一定相關關系
科學計算法:通過計算相關性系數r
我們用第二種
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import kstest
from scipy import stats
#讀入數據
data=pd.read_csv('http://jse.amstat.org/datasets/normtemp.dat.txt',header=None,sep='\s+',names=['Temperature','sex','heart'])
print(data.describe())
Temperature_data = data['Temperature']
u = data['Temperature'].mean()
std = data['Temperature'].std()
r,p = stats.pearsonr(data.Temperature, data.heart)
print('相關系數r為 = %6.3f,p值為 = %6.3f'%(r,p))
相關系數r為 = 0.254,p值為 = 0.004
得到:相關系數r=0.021,p值為=0.004
結論:總體的數據呈相關性,且相關系數為:0.021,但不是線性相關。
五、拓展
對于多維數據,需要計算兩兩之間的相關性。
比如是思維數據,列名分別為:A、B、C、D
就需要計算:
A:B、C、D
B:A、C、D
C:A、B、D
D:A、B、C
代碼如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
# 導入數據
data = pd.DataFrame(數據地址)
#或者
data=pd.read_csv(數據地址)
# 相關性計算
print(data.corr())
# 繪圖
fig = pd.plotting.scatter_matrix(data,figsize=(6,6),c ='blue',marker = 'o',diagonal='',alpha = 0.8,range_padding=0.2) # diagonal只能為'hist'/'kde'
plt.show()
假設檢驗Python真香:用Python作假設檢驗?zhuanlan.zhihu.com
總結
以上是生活随笔為你收集整理的几组数据的相关性python_数据分析---用Python进行相关性分析(兼谈假设检验)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《SMT实用指南》读书笔记1
- 下一篇: 大连计算机学校放假了,大连高校寒假排行榜