張 毅 朱凌海
南京郵電大學物聯網學院 江蘇省南京市 210023
離群點檢測算法在藥品不良反應異常信號挖掘中的應用
張 毅 朱凌海
南京郵電大學物聯網學院 江蘇省南京市 210023
將藥品分類的前提下,以藥品為對象,不良反應為屬性,PRR值為參數,利用局部離群因子檢測算法得到藥品和其對應的離群因子。利用我國藥品不良反應監測數據進行仿真實驗,結果表明該離群點檢測算法可以較好地用于藥品不良反應異常信號的挖掘。
藥品不良反應;離群點;信號檢測
在藥品不良反應(adverse drug reaction,ADR)信號挖掘中,信號被WHO定義為:未知的或是尚未完全證明的藥物與不良反應事件可能有因果關系的信息,而藥品不良反應指的是合格的藥品在正常使用下出現的無關的或者意外的有害反應[1]。目前比較普遍的ADR信號檢測方法有報告比值比法(POR)、比例報告法(PRR)、相對比值比法(RR)、MHRA法、BCPNN法等[2]。不同的挖掘方法原理不盡相同,比例報告法(PRR)的原理:PRR=數據庫中目標藥物引起目標事件的實際報告比/數據庫中目標事件的背景報告比,當PRR顯著大于2時,則認為該目標藥物-目標事件為一信號[3]。
在樣本空間中,與其他樣本點的一般行為或特征不一致的點,我們稱為離群點,也稱為孤立點。離群點有可能是錯誤的數據,也可能是非常有價值的信息。在藥品不良反應信號檢測中,我們往往注重了大量普遍存在的信號,而忽略了異常信號的存在。目前,國內對藥品不良反應的相關研究大多是藥品不良反應信號檢測,缺乏藥品不良反應信號中異常信號的挖掘研究。從統計學意義看,這些異常信號即為離群點,具有與眾不同的特征,對藥品的危害研究有極其重要的參考價值。因此,對藥品不良反應信號的進行離群點檢測具有很大的研究價值。
離群點的檢測方法有基于統計的離群點檢測方法、基于深度的離群點檢測方法、基于偏移的離群點檢測方法、基于聚類的離群點檢測算法和基于密度的離群點檢測算法等[4]。基于密度的離群點檢測算法對密度的計算是通過點的第k領域來計算的,而不是全局計算,這樣就不會因為數據密度過于分散或者過于密集而將正常點判定為離群點了,不會受到數據的波動影響[5]。本文將利用基于密度的離群點檢測算法來研究藥品不良反應數據中的離群點。
本次研究的數據來自我國近兩年的藥品不良反應監測數據,研究對象為藥品不良反應信號。為挖掘藥品不良反應信號的異常點,在基于PRR法檢測的基礎上將數據轉換成藥品為對象,不良反應為屬性,PRR值為參數的行列組合。表1為數據示例。

表1:診斷類的藥品-不良反應數據示例

表2:免疫系統類藥物計算結果

表3:每類藥及異常點個數
本次研究采用局部離群因子檢測算法(Local Outlier Factor,LOF),該算法是一種具有代表性的基于密度的離群點檢測算法,主要是通過比較每個點p與其領域點的密度來判斷,如果點p的密度越低,表明它的離群性越大,就可能被判斷為異常點,反之。至于每個點的密度,是通過點與點之間的距離來計算的,距離越遠,密度就越低,離群性就越大,反之。通過引入LOFk(p)局部離群點因子來表示點p是否為離群點,即:

表4:部分異常點及其對應的不良反應

圖1:算法計算的整體流程圖

圖2:免疫系統類藥物散點圖

其中:在樣本空間中,存在對象o,它與對象p之間的距離基座d(p,o),也是歐幾里得距離;對于正整數k,對象p的第k距離:k-distance(p)=max|||p-o|||;與對象p之間的歐幾里得距離小于等于對象的第k距離的集合稱為對象p的第k距離領域,記作:Nk(p);對象p與對象o之間的可達距離:reachdist(p,o)=max{kdistance(o),||p-o||};局部可達密度即對象p的k最近鄰點的平均可達密度的倒數記作:

算法的主要流程如圖1所示。
將樣本集合和正整數k帶入算法中計算,以結果中的離群點因子lof為判斷離群點的標準,若lof接近于1,則表示點p的密度較高,不是離群點;若lof遠大于1,則表示p的密度較低,認為其是離群點。
算法的實現采用計算機編程的方式,編程語言為Java。將藥品名稱作為樣本點,不良反應名稱為樣本點的維度,PRR值為樣本變量值,依次計算對象的第k距離、歐幾里得距離、可達距離以及可達密度,得出的結果為每類藥品的各個藥品名稱,以及它們離群因子lof。對于正整數k是本算法中唯一一個可變參數,需要通過多次回歸來達到期望的結果。
3.1 相關變量的取值
結果的判斷很簡單,判斷離群因子lof即可,如果離群因子lof遠離1,說明這種藥品就可能是異常點。而將數據帶入程序得出實驗結果的可變因素有算法中的正整數k,用以計算第k距離,所以k的取值,也決定著實驗的結果;例如將抗變態反應這一類藥物帶入程序中,k取10時,實驗結果中有茶苯海明和氯苯那敏兩種藥品的離群因子lof相對其他藥品遠遠大于1,本文判斷它們為離群點;而當k取5時,有5種藥品被判定為異常點,而此類藥品才14種藥物,所以k取5不合理。所以k的取值需要根據此類藥品的數量和被判定為異常點的數量,通過多次回歸的方式,來取得最優解,以此達到離群點檢測算法的最優解。
3.2 結果的驗證
將每個類別的藥品及其不良反應信號數據作為樣本作為LOF算法的數據,并對k值進行多次回歸,得到的結果為藥品名稱以及離群點因子。例如免疫系統類藥物帶入算法中,當k取5時得出的結果如表2所示。
由表2能夠看出環孢素的離群因子為20.3817,相對其他幾個藥品的離群因子而言,其遠遠高于了1,在此類藥品中環孢素可以看作是一個異常點。在已經整理好的免疫系統類藥物的交叉表的散點圖(見圖2,方形代表環孢素)中,可以看出圖中最明顯的異常點確實為環孢素。查詢國家食品藥品監督管理局的信息通報和藥品說明書,可以知道環孢素會引起牙齦增生、血尿素氮升高等異常反應,異于同類藥品的不良反應。由此得知,在免疫系統類藥物中,環孢素確實是一個異常點。
同理,將其他類藥品的數據代入算法中,判斷其離群因子,得出每類藥品的異常點數,如表3所示。
尋找每類藥品的異常點,查詢相關資料找出其對應的不良反應進行驗證,得到藥品和其不良反應組合的離群點數據,如表4所示。
本文利用基于密度的離群點檢測算法對我國藥品不良反應數據的信號進行了離群點檢測,并對檢測結果進行了驗證和分析。研究表明,利用離群點檢測算法對藥品不良反應信號進行異常點挖掘是可行的。
[1]國家食品藥品監督管理局.WHO藥品不良反應術語集,2002,6,8.
[2]李嬋娟.藥品不良反應信號檢測方法理論及應用研究[D],2008.
[3]劉媛,程能能,杜文民,等.上海市藥品不良反應自發呈報數據庫中神經系統藥物不良反應的信號檢測[J].中國臨床藥學雜志,2010(02):85-88.
[4]胡婷婷.數據挖掘中的離群點檢測算法研究[D],.2014.
[5]楊茂林.離群點檢測算法研究[D].華中科技大學,2012.
南京郵電大學大學生創新訓練計劃項目(SYB2015009)。