變量類型與推薦的假設檢驗方法
可以看到,當我們探索兩個連續變量之間的關系時,相關分析是一個很好的選擇。那麼,相關分析的原理是什麼?如何在Python中實現相關分析呢?
一、Pearson相關系數
針對兩個獨立的服從正态分布的連續變量,我們常用Pearson相關系數來衡量它們之間的相關性。Pearson相關系數的值域為[-1, 1],當相關系數小于0時,表明兩變量之間存在線性負相關關系;當相關系數大于0時,表明兩變量之間存在線性正相關關系;當相關系數等于0時,表明兩變量之間無明顯的相關關系。
當變量不符合正态分布或者是順序型變量時,我們常用Spearman相關系數來衡量變量間的關系;當我們需要探索變量間的非線性關系時,可以使用Kendall相關系數。不過這些不在本篇的讨論範圍内,如果感興趣的人多,可以在下方留言。
一般情況下,我們用r來表示相關系數,r的取值與相關程度之間的關系如下:
皮爾遜相關系數的計算很簡單。假設我們有兩組數據,一組為x,一組為y。那麼x與y之間的協方差作為分子,x的标準差與y的标準差之間的乘積作為分母,得到的就是x與y之間的相關系數r,我們用公式表示如下:
計算出相關系數r之後,我們還要檢驗它是否具有統計學意義,即我們常說的是否顯著。這裡我們檢驗的計算公式為:
然後我們從t分布中找到對應的P值,與我們設定的顯著性水平做一下對比,比如說我們設定了顯著性水平為0.05,當P值小于0.05時,我們就拒絕零假設,認定x與y之間存在顯著的線性相關。需要注意的是,P值大小不代表兩個變量間相關性的強弱,r的大小才是衡量相關性的統計量。
當然,現在這些繁瑣的過程我們可以統統交給計算機來處理。
二、Python相關分析
在pandas中,計算相關系數非常簡單:
我們還可以用熱力圖來更直觀地感受一下:
sns.heatmap(iris.corr(), cmap='bwr', center=0)
除了sepal_width變量與其他變量負相關以外,其他三個變量間都高度正相關。
但是我們注意到,這裡并沒有顯著性檢驗的信息,那麼我們如何得到這些信息呢?答案就是使用Scipy,Scipy是Python中一個非常強大的科學計算庫,提供了很多關于統計、科學計算的方法。
scipy.stats.pearsonr方法會根據輸入的兩組數據,計算Pearson相關性,返回相關系數r以及顯著性檢驗的P值,當P值低于我們設定的顯著性水平時,即可認為變量間顯著相關。
from scipy.stats import pearsonr pearsonr(iris.sepal_length, iris.petal_length)
輸出為:
(0.8717537758865832, 1.0386674194497583e-47)
好了,關于Pearson相關的分享就到這裡,有任何問題可以在下方留言,我會及時回答。另外,除了計算相關系數,散點圖、回歸圖等都很适合用來探索變量間的關系,感興趣的可以去看我的曆史文章中關于數據可視化的幾個系列。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!