易三莉+楊靜+姚旭升+謝穎夫+賀建峰
摘 要:使用數據挖掘中的因果關系技術,分析某甲級醫(yī)院住院首案中記錄的高血壓及其它協(xié)同疾病之間是否存在因果性。PC-Simple算法作為一種國內較少使用的因果分析算法,將其應用在對醫(yī)學數據的因果關系挖掘中,能高效地得出變量之間的因果性。分析平臺采用IBM SPSS Statistics進行數據預處理,以及R Studio進行數據建模分析。實驗結果表明,高血壓與冠狀動脈粥樣硬化、腦梗死、頸動脈粥樣硬化、不穩(wěn)定型心絞痛和急性心肌梗死之間存在著因果關系。使用PC-Simple算法得到的結果與實際醫(yī)學理論相吻合,驗證了該算法的有效性。
關鍵詞:數據挖掘;PC-Simple;因果關系
DOIDOI:10.11907/rjdk.172291
中圖分類號:TP392
文獻標識碼:A 文章編號:1672-7800(2018)002-0175-04
0 引言
關聯(lián)規(guī)則挖掘作為數據挖掘的重要研究內容之一,主要研究事務數據庫、關系數據庫和其它信息存儲中大量數據項之間隱藏的有趣規(guī)律。1993年,美國著名學者R Agrawal等[1]首次提出了挖掘布爾關聯(lián)規(guī)則,之后提出了著名的基于頻繁項集的Apriori算法。關聯(lián)規(guī)則挖掘最初僅限于事務數據庫的布爾型關聯(lián)規(guī)則,近年來廣泛應用于關系數據庫。因此,積極開展關系數據庫中挖掘關聯(lián)規(guī)則的相關研究具有重要意義[2]。然而,產生的關聯(lián)規(guī)則有時也是不正確的,某些時候變量之間看似具有相關性,但它有可能是由某些共同原因導致的。所以為了避免這些不確定因素,在相關性分析基礎上進一步分析它們的因果關系,以確定變量之間的強關聯(lián)性。
PC算法是一個學習因果貝葉斯網絡結構的算法,它是以開發(fā)者Peter Spirts和Clark Glymour的姓命名的[3]。PC算法使用條件獨立性檢驗確認兩個變量之間的關聯(lián)性是否為因果性。給出一個目標變量和預測變量的集合,判斷預測變量集合中其中一個變量與目標變量是否有因果關系,都需要對預測變量集合的每個子集進行一次條件獨立性判斷。在一個最壞的情況下,比如有m個預測變量,則需要進行條件獨立性測試的次數為2m-1。因此,PC算法僅適用于預測變量個數較少的數據集。
為了解決PC算法這個缺點,M Kalisch和P Buehlmann等[4]提出了PC-Simple算法。PC-Simple最初是為了在高維線性回歸模型中進行有效的變量選擇而開發(fā)的。在國外,PC-Simple算法也被用來分析變量之間的因果關系[5]。但是在國內,將該方法應用于因果關系分析的研究還很少,人們分析因果關系通常采用貝葉斯網絡。本文將PC-Simple應用于分析疾病間的因果關系上,在真實數據中驗證了其實用性。
1 貝葉斯網絡
1.1 貝葉斯網絡概念
貝葉斯網絡應用于人工智能的幾大細分領域包括因果推理、不確定性知識表示、模式識別和分類等,它結合了人工智能、概率理論以及圖形理論,是一種將因果知識和概率知識相結合的信息表示框架[6]。它是基于概率推理的圖形化網絡,也是表現(xiàn)和推理因果關系的主要方式。給定一組表示域的變量,貝葉斯網絡給出一個有向無環(huán)圖(DAG)的完整聯(lián)合概率。該有向無環(huán)圖包含了代表節(jié)點和弧的變量,繪制出變量之間的依賴關系[7]。
1.2 貝葉斯網絡簡介
貝葉斯網絡包括一個有向無環(huán)圖(DAG)和一個條件概率表集合。DAG中每一個節(jié)點表示一個隨機變量,可直接觀測變量或隱藏變量,而有向邊表示隨機變量間的條件依賴;條件概率表中的每一個元素對應DAG中的唯一節(jié)點,存儲此節(jié)點對于其所有直接前驅節(jié)點的聯(lián)合條件概率。
如圖1所示為一個簡單的貝葉斯網絡模型,A獨立于它的非后代D、E和H;B、C變量相互獨立并且它們都獨立于D、E和H;D和E都沒有雙親,此外它們還相互獨立,并且都獨立于A、B、C、Z和H;G的有條件雙親為D、Z和E,獨立于A、B、C和H;F獨立于除了其父節(jié)點以外的變量;H是一個孤立節(jié)點,所以它獨立于所有節(jié)點;Z獨立于A、D、E和H,它的雙親為B和C。V為一個貝葉斯網絡的變量集合,聯(lián)合概率分布為:
在一個數據集中可以通過因果貝葉斯網絡結構發(fā)現(xiàn)變量之間的因果關系,但這不能說明因果關系的方向問題,誰是因誰是果不能僅從貝葉斯網絡的邊緣方向來判斷,因為依靠數據集不能完全確定邊緣方向。因此從數據集中學習貝葉斯網絡,只能得出兩個變量之間有因果關系,但是誰是原因、誰是結果還無法確定,此時則需要用到PC-Simple算法。
2 PC-Simple算法
2.1 PC-Simple算法定義
PC算法是一種學習因果貝葉斯網絡結構的常用方法[8]。在數據集中,對于一對變量或節(jié)點(X, Y),PC算法用于檢測目標變量是否條件獨立于給定的其它變量。如果沒有繪制X和Y的邊緣,則X和Y之間不存在因果關系,換言之,為了確定X和Y之間是否存在持久性關聯(lián),PC算法對除X和Y外的所有變量都要進行關聯(lián)條件測試。只有給定條件集存在關聯(lián)時,這種關聯(lián)才被認為是因果關系。
PC-Simple使用與PC算法相同的思想來檢測變量之間的持久性關聯(lián),此外它還對一對節(jié)點的條件集進行分級搜索。然而,與因果DAG不同的是,PC-Simple不僅能找出所有給定變量之間的因果關系,還能發(fā)現(xiàn)給定的響應或目標變量周圍的局部關系。比如,給定D為變量(X1,X2,…,Xm,Z)的集合,Z是目標變量,PC-Simple能識別出與Z相關的原因和結果。在DAG術語中,這些原因和結果表示為Z的雙親和孩子。
2.2 條件獨立性
定義1 2個隨機變量(事件)X和Y 相互獨立,即變量X不影響變量Y,變量Y也不影響變量X,則有式(1)成立:
可以理解為:對變量Y的了解不會影響變量X的信度;同樣,對變量X的了解也不會影響變量Y的信度。endprint
定義2 設有3個隨機變量X、Y、Z,其中P(Z = z)>0,則X、Y在給定Z的條件下相互獨立,有式(2)成立:
條件獨立性可以用貝葉斯網結構方便地表示出來。用貝葉斯網表示的條件獨立在知識表示、推理、學習方面起到了簡化作用,使貝葉斯網的計算復雜性得到降低,可用性和實用性大大增強。
在貝葉斯網中,2個變量X和Y如果直接相連,則表示它們之間有直接依賴關系,對X的了解會影響對Y的信度;如果2個變量X和Y不直接相連,信息則需要通過它們之間的其它變量才能在兩者間傳遞;如果X和Y之間的所有信息通路都被阻塞,信息則無法在他們之間傳遞。這時,對其中一個變量的了解不會影響對另一個變量的信度,因而X和Y相互條件獨立。
2.3 部分相關性
對于有限的數據集,需要找出目標變量與預測變量的部分相關性,定義如下:
2.4 PC-Simple算法實現(xiàn)步驟
PC-Simple算法步驟如下:
D為輸入數據集,預測變量X1,X2,…,Xm和目標變量Z通過PC-Simple算法,生成Z的雙親和孩子集合PC。α參數是用于條件獨立性測試的顯著性水平。
最初PC集合包括所有預測變量,然后通過條件獨立性測試,PC-Simple算法將不是Z的雙親和孩子集合的變量從PC中移除。從一個空的條件集合開始,根據條件集合設置的基數逐級測試。While循環(huán)的每次迭代都將PCk-1賦值給PCk,從PCk-1中移除與Z獨立的變量。
具體而言,在第一次循環(huán)迭代中,k=1,PC-Simple首先讓PC1=PC0(第5行),然后判斷PC0是否符合條件(第6~11行),如果在PC0中有一個獨立于Z的變量則給出一個空集(第7行,當k=1時,|S|=0),PC1通過獨立性測試移除與Z獨立的變量。在第一次迭代之后,PC1中則只包含與Z有關的變量。在第二次迭代中,PC-Simple首先讓PC2=PC1,在PC1中給出任意其它單變量,通過獨立性測試移除與Z獨立的變量來更新PC2。之后的迭代與之類似,直到PCk中的變量不超過k個則迭代結束,并且PCk作為最后的一個PC集合輸出。
3 PC-Simple算法在醫(yī)學數據挖掘中的應用
3.1 醫(yī)學數據挖掘
隨著電子病歷和病案的大量應用,以及醫(yī)療設備和儀器的數字化,使醫(yī)院數據庫的信息容量不斷膨脹。這些寶貴的醫(yī)學信息資源對于疾病的診斷、治療和醫(yī)學研究都非常有價值。如何利用這些海量的信息資源,為疾病的診斷和治療提供科學、準確的決策,以更好地促進遠程醫(yī)療和社區(qū)醫(yī)療發(fā)展[9],需要運用醫(yī)學數據挖掘技術。在數據挖掘之前,必須對這些信息進行清理和過濾,以確保數據的一致性和確定性,將其變成適合挖掘的形式。醫(yī)學數據挖掘的主要目的是為醫(yī)療活動和管理提供科學的決策,因此必須保證挖掘算法提供的知識具有較高的準確性和可靠性。
3.2 數據來源
數據源:2013~2015年某三甲醫(yī)院住院部的數據,提取出“主要診斷”中患有高血壓疾病類型的個案,總共有5 940例。疾病編碼是依據國際疾病分類編碼的,疾病名稱有很多,在本次分析中只選取了疾病數量大于400的疾病種類,高血壓協(xié)同病種的排名如表1所示。
3.3 分析結果
分析環(huán)境:本文數據首先在IBM SPSS Statistics中進行數據預處理,然后將清洗后的數據納入數據分析軟件R Studio建模實現(xiàn)。
分析目的:分析高血壓的協(xié)同疾病與高血壓是否有因果關系。
數據經過PC-Simple算法分析之后,實驗結果如表2所示,其中0表示預測變量與目標變量之間沒有因果關系,1表示預測變量和目標變量之間有因果關系。部分相關系數越大,代表兩個疾病之間的部分相關性越強。
如表2所示,疾病之間通過條件獨立性判斷是否獨立于高血壓,獨立于高血壓的疾病部分相關系數較弱。本文中相關系數大于6的疾病類型被判定為與高血壓有因果關系。例如表中第一行表示2型糖尿病與高血壓沒有因果關系,所以它們之間的部分相關性較弱,為3.508 379 57。
根據分析結果可知,高血壓與冠狀動脈粥樣硬化、腦梗死、頸動脈粥樣硬化、不穩(wěn)定型心絞痛和急性心肌梗死有因果關系。因果關系的相關系數分別為:9.874 980 64、8.080 510 41、6.572 002 53、19.323 492 70和13.176 818 72。
與高血壓有因果關系的疾病如圖1所示,其中高血壓會導致腦梗死、不穩(wěn)定型心絞痛和頸動脈粥樣硬化的發(fā)生,高血壓合并2型糖尿病會導致冠狀動脈粥樣硬化,冠狀動脈粥樣硬化會導致急性心肌梗死。這些與文獻[10]~[13]中介紹的一致,說明PC-Simple算法在數據挖掘的研究上與醫(yī)學實際相符合,驗證了該算法的有效性。
4 結語
本文對PC-Simple算法的背景知識、實現(xiàn)步驟和實際運用3方面進行了介紹。在實際運用中,通過PC-Simple算法得出的實驗結果表明,高血壓會導致多種疾病發(fā)生。該方法在數據挖掘的研究上與醫(yī)學實際相符合,驗證了PC-Simple算法的有效性。在之后的學習中,可以運用PC-Simple算法在醫(yī)院其它科室,比如一些臨床科室中,分析某類疾病的影響因素,為臨床醫(yī)生的輔助診斷提供參考。
參考文獻:
[1] AGRWAL R, SRIKAN R. Fast algorithms for mining association rules in large databases[C]. Proceedings of the 20th International Conference on Very Large Data Bases. San Francisco: Morgan Kaufmann Publishers,1994: 487-499.endprint
[2] 何軍,劉紅巖,杜小勇.挖掘多關系關聯(lián)規(guī)則[J]. 軟件學報, 2007,18(11):2752-2765.
[3] P SPIRTES, C GLYMOUR,R SCHEINES. Causation, predication, and search[M]. The MIT Press, 2000.
[4] M KALISCH,P BUEHLMANN,M H MAATHUIS. Variable selection for high-dimensional linear models: partially faithful distributions and the PC-simple algorithm[J]. Biometrika, 2010,97:261-278.
[5] CF ALIFERIS, A STATNIKOV, I TSAMARDINOS, et al. Local causal and Markov blanket induction for causal discovery and feature selection for classification part I: algorithms and empirical evaluation[J]. Journal of Machine Learning Research, 2010,11:171-234.
[6] 李軍,熊飛,鈕焱.基于貝葉斯網絡的網絡風險評估研究[J].軟件導刊,2017,16(4):197-200.
[7] D KOLLER, N FRIEDMAN. Probabilistic graphical models: principles and techniques[M]. The MIT Press, 2009.
[8] J PEARL. Causality: models, reasoning, and inference[M]. Cambridge University Press, 2000.
[9] 朱凌云,吳寶明,曹長修.醫(yī)學數據挖掘的技術、方法及應用[J].生物醫(yī)學工程學雜志,2003,20(3):559-562.
[10] 劉坤申.高血壓與腦卒中[J].中國實用內科雜志,2002,22(4):201-202.
[11] 伍衛(wèi).高血壓與冠狀動脈粥樣硬化性心臟病[J].新醫(yī)學,2003,34(3):139-139.
[12] 安全宇.老年患者高同型半胱氨酸高血壓與不穩(wěn)定型心絞痛的關系研究[J].首都醫(yī)藥,2014(10):32-34.
[13] 馬爾娃,庫拉西汗.冠心病與心肌梗塞的麻醉[J].世界最新醫(yī)學信息文摘:電子版,2013(7):93-94.endprint