本文為大家梳理了相關分析的生活實例、原理、方法、誤區,歡迎留言一起探討。
「萬物皆有聯」,是大數據一個最重要的核心思維。
所謂聯,這裡指的就是事物之間的相互影響、相互制約、相互印證的關係。而事物這種相互影響、相互關聯的關係,在統計學上就叫做相關關係,簡稱相關性。
世界上的所有事物,都會受到其它事物的影響:
HR經常會問:影響員工離職的關鍵原因是什麼?是工資還是發展空間?
銷售人員會問:哪些要素會促使客戶購買某產品?是價格還是質量?
營銷人員會問:影響客戶流失的關鍵因素有哪些?是競爭還是服務等?
產品設計人員:影響汽車產品受歡迎的關鍵功能有哪些?價格、還是動力等?
所有的這些商業問題,轉化為數據問題,不外乎就是評估一個因素與另一個因素之間的相互影響或相互關聯的關係。而分析這種事物之間關聯性的方法,就是相關性分析方法。
當然,有相關關係,並不一定意味著是因果關係。但因果關係,則一定是相關關係。
在過去,傳統的統計模型主要是用來尋找影響事物的因果關係,所以過去也叫影響因素分析。但是,從統計學方法來說,因果關係一定會有統計顯著,但統計顯著並不一定就是因果關係,所以準確地說,影響因素分析應該改為相關性分析。
所以,在不引起混淆的情況下,我們也會用影響因素分析。
▷ 相關性種類
客觀事物之間的相關性,大致可歸納為兩大類:一類是函數關係,一類是統計關係。
函數關係,就是兩個變量的取值存在一個函數關係來唯一描述。比如,銷售額與銷售量之間的關係,可用函數y=px(y表示銷售額,p表示單價,x表示銷售量)來表示。所以,銷售量和銷售額存在函數關係。這一類確定性的關係,不是我們關注的重點。
統計關係,指的是兩事物之間的非一一對應關係,即當變量x取一定值時,另一個變量y雖然不唯一確定,但按某種規律在一定的可預測範圍內發生變化。比如,子女身高與父母身高、廣告費用與銷售額的關係,是無法用一個函數關係唯一確定其取值的,但這些變量之間確實存在一定的關係。大多數情況下,父母身高越高,子女的身高也就越高;廣告費用花得越多,其銷售額也相對越多。這種關係,就叫做統計關係。
進一步,統計分析如果按照相關的形態來說,可分為線性相關和非線性相關(曲線相關);如果按照相關的方向來分,可分為正相關和負相關,等等。詳細見下面的圖形。
▷ 相關性描述方式
描述兩個變量是否有相關性,常見的方式有:可視化相關圖(典型的如散點圖和列聯表等等)、相關係數、統計顯著性。
如果用可視化的方式來呈現各種相關性,常見有如下散點圖。
▷ 相關性方法種類
對於不同的因素類型,採用的相關性分析方法也不相同。
下面簡單總結一下所選用的相關性分析方法。
簡單地說,相關分析,就是衡量兩個數值型變量的相關性,以及計算相關程度的大小。
▷ 相關分析種類
相關分析,常用的方法類別有:簡單相關分析、偏相關分析、距離相關分析等。其中前兩種方法比較常見。
註:在沒有特別說明的情況下,下文所說的相關分析,指的是簡單相關分析。
▷ 散點圖
判斷兩個變量是否存在線性相關關係,一種最簡單的方法就是可視化。
相關分析中最合適的圖形就是散點圖。在下表中,將腰圍、脂肪比重和體重用散點圖的方式畫出來,則如下圖所示。
顯然,隨著腰圍的增加,體重也在增加。說明,腰圍和體重是存在相關關係的,而且應該是正相關。同樣,脂肪比重與體重也是正相關的。
可視化的優點是:直觀,但其缺點是:無法準確度量。比如腰圍和脂肪比重,對體重的影響程度到底有多大?或者說,這兩個因素中哪個因素對體重的影響會更大?散點圖是無法給出答案的(所以,我們接下來要引入更強大的方法)。
所以,在相關分析時,我們將引入一個新的數據指標(即相關係數),專門用于衡量兩個變量的線性相關程度。
▷ 相關係數
相關係數(CorrelationCoefficient),是專門用來衡量兩個變量之間的線性相關程度的指標,經常用字母r來表示相關係數。
相關係數,是以數值的方式來精確地反映兩個變量之間線性相關的強弱程度的。最常用的相關係數,是皮爾遜(Pearson)相關係數,又稱積差相關係數,公式如下。
相關係數的特徵如下:
其實,並不是說一定要r=0時才表示兩變量不存在線性相關。在實際的應用中,因為r表示的是相關程度,所以我們往往會將r的取值分成幾個區間,來表示不同的相關程度(如下圖所示)。
▷ 顯著性檢驗
由於上述相關係數是根據樣本數據計算出來的,所以上述相關係數又稱為樣本相關係數(用r來表示)。若相關係數是根據總體全部數據計算的,稱為總體相關係數,記為ρ。
但由於存在抽樣的隨機性和樣本較少等原因,通常樣本相關係數不能直接用來說明兩總體(即兩變量)是否具有顯著的線性相關關係,因此還必須進行顯著性檢驗。相關分析的顯著性檢驗,經常使用假設檢驗的方式對總體的顯著性進行推斷。
顯著性檢驗的步驟如下:
假設:兩個變量無顯著性線性關係,即兩個變量存在零相關。
構建新的統計量t,如下所示
1)如果P<α,表示兩變量存在顯著的線性相關關係;
2)否則,不存在顯著的線性相關關係。
下面以腰圍、體重、脂肪比重為例,來說明應該怎樣進行相關分析。
第1步:繪製散點圖
在SPSS中,繪製散點圖非常簡單。操作步驟如下:
1) 點擊【圖形- 圖表】構建程序。
2) 在庫中選擇散點圖,雙擊簡單散點圖。
3) 分別將腰圍和體重,拖入X軸和Y軸,確定即可。
觀察散點圖,可知:腰圍與體重應該是存在線性相關性的,或者說,腰圍對體重是有影響的。不過,這相關程度(或影響程度)有多大,則需要進一步計算相關係數來度量。
第2步:選擇係數公式
因為,Pearson相關係數要求變量服從正態分布,所以在計算相關係數之前,需要先確定兩變量是否都服從正態分布,或者近似正態分布。如果採用其它相關係數(參考「相關係數種類」小節),則可以省略正態性檢驗。
在SPSS中,判斷兩變量是否服從正態分布操作步驟如下:
1) 點擊【分析 - 描述統計 - 探索】,進入探索界面。
2) 將待判斷的變量選入因變量列表。
3) 打開繪製界面,選中帶檢驗的正態圖,確定。
在SPSS中,採用的是K-S檢驗以及Shapiro-Wilk檢驗的結果。當Sig>0.05時,表明該變量服從正態分布,否則為非正態分布。
註:當樣本量大於50時用K-S檢驗結果,樣本量小於50時用Shapiro-Wilk檢驗結果。
如表所示,顯然腰圍和體重兩個變量都是服從正態分布的,所以可以採用Pearson相關係數。下面在計算相關係數時,將採用Pearson相關係數。
第3步:計算相關係數
在SPSS中,計算相關係數的操作步驟如下:
1) 打開數據文檔,點擊【分析 - 相關 - 雙變量】,進入相關分析界面。
2) 將要判斷的幾個變量全部選入變量列表,確定,即可得到相關係數矩陣。
顯然,相關係數矩陣是對稱矩陣,而且對角線上的相關係數全為1(即變量自身的相關係數為1)。從上表中可知,腰圍和體重的相關係數r=0.853,存在強相關;脂肪比重和體重的相關係數r=0.697,存在中度相關。
第4步:顯著性檢驗
在SPSS中,不但計算出變量間的相關係數,同時還進行了顯著性檢驗(即計算了統計量t,且查詢出對應的概率P值,見顯著性一行)。
在相關係數矩陣中,查看顯著性一行,腰圍和體重對應的概率P=0.000(因精度的原因,看起來概率為0),顯然P<0.05,即根據顯著性檢驗,也可知腰圍和體重、脂肪比重和體重,都存在顯著的線性相關關係。
第5步:進行業務判斷
根據前面的相關分析,可得到數據分析結論:
1、根據顯著性判斷,可知腰圍與體重、脂肪比重與體重,都存在顯著線性相關性。
2、根據相關係數,可知腰圍與體重存在強相關,脂肪比重與體重存在中度相關。
然後,再從業務上對分析結果進行解讀,並給出相應的業務策略或建議:
1、 業務解讀:腰圍對體重的影響很大,脂肪比重對體重的影響較大。
2、 業務建議:要減輕體重,最好先減小腰圍,少吃脂肪類食物。
這樣,就實現了從數據到業務的完整的相關分析過程。
常用的三種相關性檢驗技術,Pearson相關性的精確度最高,但對原始數據的要求最高。Spearman等級相關和Kendall一致性相關的使用範圍更廣,但精確度較差。
下面介紹Spearman等級相關和Kendall一致性相關方法,並用實際案例說明如何用SPSS使用這三種相關性分析技術。
Spearman相關
當定距數據不滿足正態分布,不能使用皮爾遜相關分析,這時,可以在相關分析中引入秩分,藉助秩分實現相關性檢驗,即先分別計算兩個序列的秩分,然後以秩分值代替原始數據,代入到皮爾遜相關係數公式中,得到斯皮爾曼相關係數公式:
數據要求:
結論分析:
在斯皮爾曼相關性分析中,也能夠得到相關係數(r)和檢驗概率(Sig.),當檢驗概率小於0.05時,表示兩列數據之間存在相關性。
Kendall相關
當既不滿足正態分布,也不是等間距的定距數據,而是不明分布的定序數據時,不能使用Pearson相關和Spearman相關。此時,在相關分析中引入「一致對」的概念,藉助「一致對」在「總對數」中的比例分析其相關性水平。Kendall相關係數計算公式如下:
Kendall相關實質上是基於查看序列中有多少個順序一致的對子的這個思路來判斷數據的相關性水平。在Kendall相關性檢驗中,其核心思想是檢驗兩個序列的秩分是否一致增減。因此,統計兩序列中的「一致對」和「非一致對」的數量就非常重要。下面舉例說明Kendall相關係數的計算過程:
假設有兩個數據序列A和B的秩分序列分別是{2,4,3,5,1},{3,4,1,5,2},即相對應的秩對為(2,3)(4,4)(3,1)(5,5)(1,2)。在按照A的秩分排序後,得到新的秩對(1,2)(2,3)(3,1)(4,4)(5,5),此時B的秩分序列變成了{2,3,1,4,5}。在這種情況下,針對第一個B值2,後面有3,4,5比它大,有1比它小,所以一致對為3,非一致對為1;第二個數字3,有4,5比它大,有1比它小,所以一致對為2,非一致對為1;依次類推,總共有8個一致對,2個非一致對。即Nc=8,Nd=2。
數據要求:
結論分析:
在肯德爾相關性分析中,能夠得到兩個數值:相關係數(r)和檢驗概率(Sig.),當檢驗概率小於0.05時,表示兩列數據之間存在相關性。
案例分析
現在有一份《學生成績數據》,如下圖所示。請分析其中的語文、數學、英語、歷史、地理成績之間的相關性。
解題思路:
觀察圖中數據可知,需要分析的數據都是定距數據,而且它們來自同一組樣本(同一批學生)的多次多視角測試(不同學科考試),可以使用Pearson相關分析和Spearman相關分析。先對原始數據進行正態分布檢驗,對於滿足正態分布檢驗的變量使用Pearson相關性分析,不滿足正態分布檢驗的變量則使用Spearman等級相關檢驗。
解題步驟:
1、利用【分析】-【非參數檢驗】-【舊對話框】-【1樣本K-S】命令對語文、數學、英語、歷史和地理成績進行正態分布檢驗。
2、利用【分析】-【相關】-【雙變量】命令,在相關係數中選擇【Pearson】,對語文、數學、英語和地理成績進行Pearson相關性檢驗。
3、利用【分析】-【相關】-【雙變量】命令,在相關係數中選擇【Spearman】,對歷史、語文、數學、英語和地理成績進行Spearman相關性檢驗。
結果解讀:
1、正態性檢驗結果;
發現除歷史以外,其它數據變量的檢驗概率都大於0.05,都符合正態分布。
2、在皮爾遜相關分析中,語文、數學、英語和地理成績之間的所有檢驗概率都大於0.05,說明它們之間都不存在相關性;同時,皮爾遜相關係數都小於0.4,也證明了它們之間沒有相關性。
3、在斯皮爾曼相關分析中,歷史、語文、數學、英語和地理之間的檢驗概率除了地理和語文之間小於0.05以外,其它都大於0.05。但這不能說明地理與語文成績之間存在相關性。觀察它們的相關係數為0.263,這說明它們之間也不存在相關性。在確定變量之間相關性時,應該結合檢驗概率與相關係數進行分析。不能只看其中一個數值就確定變量之間的相關性。
大家在電視上隨處可見的廣告或者新聞標題的句式:「想要A嗎?那就來用B吧!」或者「研究表明,C物質會降低得D疾病的風險」, 又或者「E為你擺脫F的煩惱!」特別熟悉吧,是不是直接就被洗腦了?
如果沒有做過謹慎全面的實驗設計和統計分析,就草率地下這種因果關係的結論啊,很可能造成坑爹坑媽坑群眾的後果。市面上關於因果關係的論斷,很多時候是表象上的相關分析而已。
例一:想長壽嗎?來吸菸吧!(……)
這個例子是一個基於合理數據的嚴肅研究。英國某健康研究機構隨機抽取出了1314名志願者,其中582名吸菸者,732名不吸菸者。20年後,跟蹤調查顯示,吸菸者的死亡率24%,而不吸菸者死亡率為31%,並給出了這樣一份統計報告(部分):
有表有真相,吸菸者的死亡率比不吸菸者還要低。這1314名是隨機抽取出來的,能夠代表全民。問題不在數據,那就是分析的問題了,一定是我們漏掉了什麼重要的東西。
那我們再來回頭看看還能從數據中找出來點兒什麼。可能有朋友已經想到了,數據有缺失信息(比缺失值更甚),沒錯,年齡。在這隨機抽取的1314個人裡面,我們統計了一下,吸菸者中65歲以上的老年人只佔8.4%,而不吸菸者中的老年人卻佔到了26.4%。這種年齡不均衡性就可以解釋上述的現象了:不吸菸組他們的死亡率高是沒錯,但可不是因為人家不吸菸啊,而是因為本來這組老年人的比例就高,那20年以後自然死亡或者是患某種致命的疾病的機率本來就大啊!
那麼發現了這個現象之後我們應該怎麼辦呢?有統計經驗的朋友可能已經知道了,分組。那我們就再按年齡分組來做一次列聯表,看看每一個年齡組的死亡率在吸菸者和不吸菸者中有什麼差別。
可以看到,在34歲以下的青年人中,吸不吸菸影響不大,因為20年後的死亡率都很低,而在65歲以上的老年人中,其實吸不吸菸影響也不大,因為過了20年之後,他們都85歲以上了,死亡率本來就很高。但對於35歲到64歲之間的人群,不吸菸組比吸菸組的死亡率低了那可不是一點兩點。如果看表格會把你搞暈的話,來看一下下面一目了然的分組柱狀圖。
看到這兒呢,你可以長籲一口氣了,如果只是看否吸菸和死亡率,它們真的會出現這種「越吸菸越長壽」的奇怪的現象。但這只是表象上的關聯性,或者說相關性,我們不能盲目地把它描述為因果關係。「吸菸組的死亡率比較低」這種說法指的是相關性,只是我們觀察到的一種表象,它並不等價於「因為吸菸,所以死亡率低」或者「吸菸會導致死亡率降低」這種帶有邏輯性推理的因果關係。
這個例子是因為我們之前忽略了一個可能很重要的變量「年齡」,這種會對結果產生重大影響但是卻沒有被考慮在列的變量,我們把它叫做「潛在變量」(lurking variable)。它有時候真可謂是「殺人於無形之中」,稍不注意就可能會要了整個統計分析報告的命。這種結果直接被潛在變量給反轉的現象,我們在統計學裡面稱之為辛普森悖論(Simpson’s Paradox)。
例2:犯罪率和教育
如果說今天報紙的頭條是這樣寫的:「美國高等教育現狀令人堪憂:高學歷更易引發犯罪」,你會有什麼反應?是不是迫切地想知道為什麼會造成這樣的社會現象:是讀書讀多了壓力過大容易變態嗎?還是高學歷社會認同感不夠導致了容易仇視社會?還是美國高等教育真的有問題?然後又聯想到幾例最近聽到的美國高校槍殺案呢,還有各種高科技犯罪的新聞,馬上把這篇報導轉到票圈,呼籲親朋好友不要再到美國去留學了。
看完此篇文章以後,下次在思考這些問題之前,可以先對這種言論本身持一種懷疑態度,關心一下這個研究究竟是怎麼做的?數據是哪兒來的?而分析又是怎麼進行的?
這份數據是從美國各地區人群普查得到的,包含當地犯罪率以及用來代表教育水平的高中以上學歷的居民比例。由於這兩個變量都是連續變化的,之前那種針對分類數據的列聯表就不能用了,我們需要在統計分析中每天都要用的散點圖(scatter plot)來找一下靈感。
從這個散點圖中阿,我們確實能看到,隨著教育水平的增高,犯罪率真的有些許上升的趨勢。而且二者之間的皮爾森相關係數(Pearson correlation)是0.47,正相關關係。到這兒我們是不是可以把這個結果交由心理學家或者社會學家或者教育家去研究,統計分析是不是就結束了呢?其實,我們能做的遠不止這點。根據上一個吸菸使人長壽的例子,思考一下,這種表象上的相關性會不會跟某個潛在變量有關呢?
人口普查其實還會得到很多有用的數據,根據常識,我們可以初步確定幾個候選的潛在變量。在這裡我們就來討論一個最有可能的潛在變量:城市化程度。也就是說,每個地區在大城市生活的居民比例。如果我們把所有數據根據城市化程度劃分成三組,我們就會得到如下的分組散點圖。
在類似的城市化程度上,教育水平是跟犯罪率是負相關的!而隨著城市化程度越來越高,其實犯罪率和教育水平都會升高,這一點是跟我們的常識相符的。美國的大城市犯罪率就是要高一些,而大城市的居民通常更有可能接受到高中以上的教育。所以之前我們看到的教育水平和犯罪率的正相關性其實並沒有太大的參考價值。標題黨的說法也就不攻自破了。
以上兩個例子都屬於辛普森悖論的範疇。有些看似的新發現啊、新言論啊,其實只是因為少考慮了一些潛在變量。
這類問題的常見種類總結如下:
1、第一種,本來是負相關的,因為被潛在變量影響而變成了正相關。這就是上述所說的辛普森悖論。
2、第二種,本來不相關的,是完全由於潛在變量導致的相關性。
舉個例子,澳大利亞黃金海岸因為有很多美麗的沙灘而世界聞名。但不幸的是,每年都會有人在那裡溺水身亡。現在如果你做一下黃金海岸溺水身亡的人數和當地冰激凌銷售業績的分析,它們會有很強的正相關性。
因為冰激凌的銷售量變大導致溺水人數變多嗎?或者說如果想讓溺水的人少一些,是不是號召大家少買點冰激凌就好了呢?
正常人都知道這種正相關性是因為炎熱天氣下冰激凌更受歡迎,同時更多人會去遊泳而導致溺水的人可能變多。這本身是一個非常明顯的例子,所以大家不覺得自己會拎不清,但如果一個健康廣告說「最新研究結果顯示,優質膽固醇會降低心血管疾病的發病風險」,然後順帶推銷幾種優質膽固醇的保養品,你會不會頭腦一熱就去給你的長輩買了?
3、第三種,表象上的相關性有的時候呢,是由於時間趨勢和先後造成的。
本科畢業答辯的時候可以見到太多的例子,就是這種原因造成的盲目的因果關係的推斷。比如說我們收集了近20年來中國的離婚率和犯罪率的數據,發現離婚率越高犯罪率越高。那麼可以直接推出離婚的人更容易有犯罪傾向嗎?當然不。因為這種現象,主要是由於二者都是時間序列(time series)這種數據,那離婚率和犯罪率都會隨著時間推移而逐漸上升,也就是說離婚率越高,說明數據的時間節點越晚,而對應的犯罪率就會越高。還有個經典的例子就是,公雞打鳴後,太陽從地平線升起,這兩者之間有關係,但一定不會是因果關係。
又比如啊,如果你做一下房價和手機使用率的相關關係,那在過去的這二十幾年裡面,它們肯定也是正相關。那大家為了能買得起房子是不是少用點兒手機就可以了呢?這都是顯而易見的對吧?
4、第四種,即使普遍認為是有相關關係,但是沒法證明內在機制,或者不確定誰是因誰是果。
上面的吸菸使人長壽的例子大家都知道是在忽悠,那麼「吸菸可能導致肺癌」卻是一個被普遍認可的觀點。但是其實呢,從20世紀初直到現在,這種因果關係都受到科學界的各種質疑或者說懷疑。比如說也許肺癌與吸菸習慣的背後有一種共同的遺傳因素只是人們還沒有找到?現代統計學之父R.A. Fisher大家都認識吧?至少可能學統計的同學會認識他。他當時甚至認為,不排除「由肺癌導致吸菸」的這樣一種可能性——也許在即將患上肺癌時,人們開始感覺不舒服或者感到煩躁,這時候比平常更容易吸上一支香菸來應對。這種論調呢,現在看來可能有點荒唐,但是的確給我們打開了一扇不走尋常路的這種邏輯門,避免我們落入定式思維的圈套。
論證因果關係是件挺難的事,單純從表面的相關關係是不能直接推出因果關係的,而我們日常生活或者科學研究領域經常會犯這種錯誤。有很多方法可以去驗證因果關係的存在,比如說我們可以進行實驗性研究(experimental study),或者針對觀察性研究(observational study)採用傾向得分匹配(propensity score matching)之類的統計技巧。
還有的朋友說,大數據時代,我們最在乎預測未來,比如說預測股票走勢、預測地震颱風、預測城市發展前景等等等等。其實可以不去理會那麼複雜的因果關係,只要知道相關關係就足夠了。沒錯,「預測」(prediction)是數據分析的主要目的之一。你如果知道下一個月的冰淇淋銷售量,確實可以差不多預測出溺水死亡的人數。或者反過來,你知道某個時期溺水死亡的人比較多,也可以估計出這個時期應該冰淇淋銷售業績也不會太差。在預測的層面上,你並不用管是不是冰激凌的銷售情況直接導致溺水死亡人數的變化。
但更多的時候呢,我們是需要知道事物之間的內在機制的,特別是在科學研究領域。比如在提出類似「優質膽固醇會降低心血管疾病的發病風險」這種言論的時候啊,只研究優質膽固醇和心血管疾病的相關關係顯然是不夠的。你必須保證增加此膽固醇的攝入真的會直接導致心血管疾病發病風險降低,而不是其他的什麼假象。
數據分析和最終面向大眾的言論中間有一道被忽略了的鴻溝,這道鴻溝的一邊是「表面上的相關關係」,另一邊是「機理上的因果關係」,而我們經常把這道鴻溝不自覺地就模糊掉了。有的時候這種因果關係並不重要,比如你只關心預測,那你就把言結論止於相關關係就萬事大吉了,千萬別多說多錯。還有的時候,因果關係它本身是重要的,那就需要我們用更加仔細更加嚴謹的統計思維和方法去進一步探討因果關係的存在性。如果從相關關係這個時候你直接一個大跨步,即使你有兩米的大長腿,也逃不了掉到溝裡的命運。
本文內容參考了以下文章:
1. 相關分析:從概念到步驟. 微信公眾號:量化研究方法. 20190224
2. 相關分析表明:相關分析不靠譜!.媛子老師. 微信公眾號:狗熊會. 20160725
3. SPSS分析技術:Pearson相關、Spearman相關及Kendall相關. 東山草堂. 微信公眾號:生活統計學. 20161010