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