1. 程式人生 > 實用技巧 >第十四天學習進度--相關係數和顯著水平

第十四天學習進度--相關係數和顯著水平

昨天學習到曲線擬合的python實現方式,今天,就是根據提供的資料,然後獲得對應資料線性相關程度的表示量,以此來獲得兩組資料間的關聯程度

相關係數R是研究資料之間線性相關程度的量,就是說一組資料的改變會不會有某種原因導致另外一組資料的改變之間的相關程度。當相關係數在0.7以上就說明兩組資料之間的關係非常緊密,0.4-0.7則是說明關係緊密,0.2-0.4說明的是關係一般,以下的話說明兩組資料之間的基本不相關。

而相關係數並不是決定兩組關係之間唯一的量,因為即使是兩組資料之間的資料的關係緊密,也有可能是由於偶然而引起的關係緊密。這個時候就要用到另外一個量,顯著水平(P值),來說明兩組資料之間的關係之間的偶然關係程度的強弱。

顯著係數的值是說明兩組資料之間的關係之間的偶然關係程度的強弱,也就表示的兩組資料之間的相關是不是因為偶然因素引起的。當P<0.05時表示這兩組資料之間顯著相關,而當P<0.01時,則表示非常顯著相關。當P>0.05時,則表示兩組資料間的關係很有可能是因為偶然關係導致的相關性。

用具體的例子來說明 當P=0.03,相關係數R=0.364的時候,表示的是兩組資料之間顯著相關(有相關關係),相關係數為0.364(簡單來說相當於線性相關的程度)。

而當P=0.07時,相關係數為R=0.9時,表示的是兩組資料之間的相關程度很有可能是因為偶然而導致的相關關係(無相關關係),雖然兩組資料相關係數很大為0.9。

而在Python中,已經為我們提供了一個很方便的函式用來計算兩組資料之間的相關程度spicy中的stats中就有方法

stats.pearsonr(a,b)

返回的是一個(相關係數,顯著水平)的元組

有了上述的方法之後,讓我們來實驗一番

利用昨天我們自己想的資料作為參考,代入

函式 y=2x^3+x^2+1

分別取x=[1,2,3,4,5]

對應的y就為y=[4,21,64,145,276]

#相關係數分析
x=[1,2,3,4,5]
y=[4,21,64,145,276]
import scipy.stats as stats
print(stats.pearsonr(x,y))

結果如下

可以看到兩組關係之間的相關係數是0.947左右,也就是說相關程度非常非常大

而顯著水平接近0.01左右,也就是說基本上可以看成是非常顯著了,也就是說兩組資料之間的關係的相關程度很大程度上不是因為偶然的因素引起的。

所以兩個係數得到了之後,就基本上可以說,列表x和列表y之間基本非常顯著有很大的相關程度

而如果修改其中的一個數值,來破壞其中的相關程度呢?我們來看看效果

將y值對應的5的值修改為0,此時y=[4,21,64,145,0]

此時資料如下

#相關係數分析
x=[1,2,3,4,5]
y=[4,21,64,145,0]
import scipy.stats as stats
print(stats.pearsonr(x,y))

實驗結果

可以看到顯著水平值很大,也就是說兩者間的0.3的關係基本上可以斷定是因為偶然因素引起的。