余駿雯 胡天天 楊中方 何加敏 金依霖 朱政,2,3
(1.復旦大學護理學院,上海 200032;2.上海市循證護理中心,上海 200032;3.紐約大學護理學院, 紐約 10010)
根據癥狀的數據類型,癥狀網絡可以分為3種類型:基于橫斷面癥狀數據的同期網絡、基于單個個體癥狀數據的時態(tài)/個體化網絡和基于重復測量的群體面板癥狀數據的動態(tài)網絡。其中,同期網絡主要關注在同一時間點上不同癥狀之間的關聯性。這種網絡類型有助于幫助我們理解癥狀之間的共現模式,例如,抑郁癥和焦慮癥常常在同一患者中同時存在[1-2]。然而,同期網絡無法捕捉癥狀之間的時間序列關系,即它無法顯示一個癥狀是如何隨著時間的推移影響另一個癥狀的[3]。相比之下,動態(tài)網絡結合了同期網絡和時態(tài)/個體化網絡的優(yōu)點,它基于重復測量的群體面板癥狀數據,可以捕捉到癥狀之間的時間序列關系,同時也可以反映出癥狀在群體中的共現模式。動態(tài)網絡的主要優(yōu)勢在于它可以更全面地理解癥狀的動態(tài)演變過程和癥狀之間的復雜交互關系。然而,動態(tài)網絡的建立和分析需要復雜的統(tǒng)計方法,這可能是其在實際應用中的一個主要挑戰(zhàn)。本文將從癥狀動態(tài)網絡的定義、常用網絡特異性指標以及R軟件的實現等方面進行介紹,旨在為推廣和規(guī)范癥狀動態(tài)網絡的相關研究提供借鑒和指導。
1.1動態(tài)網絡的定義 動態(tài)網絡是一種基于重復測量的群體面板癥狀數據構建的網絡,這種網絡可以在多個時間點對同一群體的癥狀進行測量[4]。動態(tài)網絡不僅反映了群體癥狀各類指標隨時間變化的情況,還能揭示癥狀之間的時間序列關系,以及癥狀在群體中的共現模式。動態(tài)網絡的主要目標是理解各種癥狀隨時間變化如何相互影響,以及這些癥狀如何共同影響其他癥狀的發(fā)展和演變。因此動態(tài)網絡是基于面板數據所形成的是有向網絡,見圖1。
圖1 癥狀動態(tài)網絡的示意圖
既往研究基于癥狀動態(tài)網絡來剖析癥狀的發(fā)生機制。例如Van等[5]在比較處于精神病早期不同臨床階段的個體之間的跨診斷癥狀網絡研究中,構建了基于10個關于抑郁、焦慮、精神病、非特異性和脆弱性領域的癥狀的時變向量自回歸的癥狀動態(tài)狀網絡。結果發(fā)現隨著臨床階段的增加,癥狀網絡的密度會增加,且精神病相關癥狀會在網絡中占據更核心的位置。研究結果強調了評估癥狀網絡的重要性。再如Zhu等[6]探索中國中老年人群中抑郁癥狀的縱向關系的研究使用了來自中國健康和退休縱向研究的3波數據(2013年、2015年和2018年),構建了基于時變向量自回歸模型的動態(tài)網絡來識別十種抑郁癥狀之間隨時間動態(tài)變化的相互關聯。研究結果發(fā)現“感到恐懼”是具有最強預測性的因子。
1.2動態(tài)網絡的分析方法 分析動態(tài)網絡的方法主要包括網絡結果分析法、交叉滯后網絡分析法和時變向量自回歸分析法,這3種方法的應用場景各異。見表1。
表1 常用癥狀網絡分析方法
這些方法的選擇應根據研究的目標和可用的數據來決定。總的來說,無論是那種方法,動態(tài)網絡模型都需要大量的數據,并且對數據的質量和完整性有較高的要求。
1.3動態(tài)網絡中常用的網絡特異性指標 動態(tài)網絡的特異性指標與其他癥狀網絡類似,也可以分為節(jié)點指標、網絡指標、網絡擬合指標和差異性檢驗指標4類。但由于動態(tài)網絡生成的是有向網絡,存在自變量與因變量的方向性,因此,在部分指標存在“出”和“入”的區(qū)分。動態(tài)網絡中常用的特異性指標的類型,見表2。
表2 動態(tài)網絡中常用的網絡特異性指標類型
動態(tài)網絡根據研究目的和數據結構可以采用不同的分析方法。例如,動態(tài)網絡可以采用交叉滯后網絡模型或時變向量自回歸模型進行分析[7]。本文將重點介紹動態(tài)網絡中的交叉滯后網絡分析,并介紹如何使用R軟件進行實現。
2.1數據準備和清理 癥狀網絡分析的數據準備和清理需要注意以下幾點。(1)數據收集: 首先,需要收集關于癥狀的數據。這可能包括從患者那里獲取的自我報告數據,或者從醫(yī)療記錄中提取的數據。數據應該包括癥狀的類型、嚴重程度,以及癥狀在不同時間點的變化。(2)數據清理:刪除或修正錯誤的數據,處理缺失值,以及檢查數據的一致性。例如,如果一個患者在某一時間點報告了一個癥狀,但在下一個時間點沒有報告這個癥狀,那么需要增補數據或刪除數據。網絡分析不允許缺失值存在。(3)數據轉化和標準化:由于不同的癥狀可能有不同的度量標準,在進行網絡分析之前,可能需要對數據進行標準化。(4)數據保存:將癥狀數據轉化為構建癥狀網絡所需的形式,可以提取需要的變量并保存為CSV格式。(5)設置癥狀發(fā)生率閾值:有些癥狀的發(fā)生率較低,導致網絡分析時出現錯誤,建議剔除此類癥狀。
完成數據整理后,需要進行以下步驟:按照glmnet,qgraph和lavaan安裝包,設置工作目錄、讀取數據,并導入命令包、標簽化節(jié)點名稱、剔除缺失值。glmnet是一個用于擬合廣義線性模型的工具包,特別是用于處理具有大量預測變量的情況[8]。它使用了彈性網正則化,這是一種結合了L1和L2正則化的方法,可以有效地進行變量選擇和復雜度調整。qgraph是一個R語言的命令包,主要用于構建同期癥狀網絡圖模型。該包的主要功能是利用圖形和統(tǒng)計方法來可視化網絡數據,以幫助研究者更好地理解網絡結構和關系[9]。lavaan是一個用于結構方程模型的工具包。結構方程模型是一種復雜的統(tǒng)計模型,可以同時估計多個回歸方程,并允許變量之間存在復雜的相互關系[10]。讀取方式,見框1,掃二維碼獲取框1。
2.2運算交叉滯后面板模型 運算交叉滯后面板模型采用glmnet包進行Lasso回歸,以構建1個矩陣,該矩陣表示數據集中各個變量之間的關系。以框1案例為例,首先,設定節(jié)點的數量為9,并創(chuàng)建1個9×9的零矩陣和一個長度為9的零向量。此后,開始一個循環(huán),對每個變量進行Lasso回歸,預測變量是數據集中的前9列,響應變量是第9列之后的列。在進行回歸之前,所有的變量都被標準化。接著,提取出使交叉驗證誤差最小的lambda值,并使用這個lambda值計算Lasso回歸的系數。最后,這些系數被存儲在9×9的矩陣的相應列中。這個矩陣可以被用來理解數據集中變量之間的關系,或者用來構建1個網絡模型。
2.3動態(tài)網絡的可視化 動態(tài)網絡的可視化主要分為包含和去除自回歸模型2個部分。它使用了qgraph函數來創(chuàng)建網絡圖,見圖2。
注:(a)自回歸網絡示意圖 (b)去除自回歸網絡示意圖圖2 動態(tài)網絡示意圖
在包含自回歸模型中,首先定義一個變量標簽的向量,再創(chuàng)建一個JPEG文件來保存圖像。接著,使用qgraph函數來創(chuàng)建一個網絡圖,其中adjMat是之前通過Lasso回歸計算得到的系數矩陣,groups是一個向量,用于指定每個節(jié)點的組別,labels是節(jié)點的標簽,colors用于定義節(jié)點的顏色。此后,創(chuàng)建一個新的圖形區(qū)域,并添加一個圖例來標識變量。最后,使用dev.off函數關閉圖形設備,保存圖像。
在去除自回歸模型中,首先創(chuàng)建一個新的系數矩陣adj Mat 2,并將其對角線上的元素(即自回歸的系數)設置為0,從而去除了自回歸。接著,創(chuàng)建一個新的JPEG文件來保存圖像,和上一部分的操作類似,使用qgraph函數來創(chuàng)建一個網絡圖,再添加一個圖例,并使用dev.off函數關閉圖形設備,保存圖像。
這2部分代碼的主要區(qū)別在于是否包含自回歸。在包含自回歸模型中,網絡圖中的每個節(jié)點都有一個指向自己的箭頭,表示自回歸的效應。而在去除自回歸模型中,這些箭頭被去除,只保留了節(jié)點之間的關系。通常會使用去除自回歸的可視化結果,保留自回歸會導致當自回歸系數過大時,其他邊緣系數可視化差異性減小。
2.4計算和可視化預測性 預測性是指一個變量能夠預測其他變量的程度。在代碼中主要要進行2個部分:計算預測性和可視化預測性結果。
2.4.1在計算預測性的部分 代碼首先創(chuàng)建了3個空向量來存儲預測性的結果。接著,開始一個循環(huán),對每個變量進行處理。在每次循環(huán)中,首先讀取因變量的標簽和分組信息,再定義3種模型:包含變量自回歸的模型、剔除變量自回歸的模型和明確自變量分組的模型。此后,使用sem函數來擬合這3種模型,并計算模型的R2值,這個值被用來衡量模型的預測性。最后,將計算得到的R2方值存儲在之前創(chuàng)建的空向量中。
2.4.2在可視化預測性 代碼首先創(chuàng)建了一個JPEG文件來保存圖像。之后,使用barplot函數來創(chuàng)建2個條形圖,分別表示入可預測性(in-predictability)和出可預測性(out-predictability)。接著,創(chuàng)建1個新的圖形區(qū)域,并添加1個圖例來標識變量。最后,使用dev.off函數關閉圖形設備,保存圖像結果的部分,見圖3。
圖3 預測性結果的示意圖
這段代碼的結果是1個包含2個條形圖的圖像,這2個圖分別表示了每個變量的“入預測性”和“出預測性”。這2個指標可以幫助我們理解每個變量對其他變量的預測能力。
2.5中心化指標分析 在癥狀網絡中,中心性指標是用來描述節(jié)點在網絡中核心地位的重要指標,主要包括入強度中心性、出強度中心性、緊密中心性和中介中心性,見圖4。這段R代碼使用qgraph包的centrality和centralityPlot函數來計算和可視化網絡中節(jié)點的中心性指標。centrality(g)函數和centralityPlot函數計算和可視化網絡g中每個節(jié)點的入強度中心性、出強度中心性、緊密中心性和中介中心性,這些指標有助于理解網絡中每個節(jié)點的重要性。
圖4 中心化指標分析結果示例
3.1癥狀動態(tài)網絡的模型選擇 在癥狀動態(tài)網絡的研究中,模型的選擇主要取決于研究的目標和數據的特性,常用方法包括網絡結果分析法、交叉滯后網絡分析法和時變向量自回歸分析法[11]。
3.1.1網絡結果分析法 是動態(tài)網絡模型中的一種特殊情況,該方法將預測變量(t1時刻)和結果變量(t2時刻)整合為1個網絡。這種方法允許研究者在控制了t1時刻所有其他變量的關聯后,檢查預測變量和結果變量之間是否存在直接的預測關聯。這種方法僅適用于只有在部分數據收集波次中才能獲得重要結果變量的情況,其關鍵優(yōu)點是它可以直接考慮到預測變量和結果變量之間的關系,而不需要對整個網絡進行全局分析。
3.1.2交叉滯后網絡分析法 可用于研究不同變量之間隨時間而動態(tài)變化的關聯,通過正則化回歸來估計除自身外所有其他節(jié)點的滯后交叉關聯,并考慮其自回歸效應。這些滯后關聯表示在調整了第一個波次所有其他變量后的有向效應。該方法的關鍵優(yōu)點是它可以直接考慮到時間的影響,從而更準確地描述變量之間的動態(tài)關系。然而,其主要限制是它需要至少2個測量時間點的數據。
3.1.3時變向量自回歸分析法 可以區(qū)分個體內和個體間效應,其在結構上類似于隨機截距滯后面板模型,并且需要至少3個測量時間點的數據。每個變量通過自身和模型中其他所有變量的滯后交叉值來進行預測,從而得到自回歸和時間滯后的估計。這種方法的一個關鍵優(yōu)點是它可以同時考慮多個變量,并且可以直接考慮到個體內和個體間的差異。
在選擇癥狀動態(tài)網絡的分析方法時,需要綜合考慮多種因素。(1)研究目標和數據特性是決定分析方法的關鍵。研究者需考慮研究的目標是探索變量之間的關系,還是預測未來的變化;數據是時間序列還是橫截面數據,并兼顧數據量的大小以及數據的質量等。(2)需要考慮數據的時間序列特性,如季節(jié)性、趨勢性等,以及變量的性質,如變量是否為連續(xù)性變量、二分類變量或等級變量等。此外,計算資源也是一個重要的考慮因素,一些復雜的方法可能需要大量的計算資源。(3)研究問題的復雜性也會影響分析方法的選擇,對于涉及到多個交互效應或非線性關系的復雜研究問題,可能需要使用更復雜的模型。
3.2網絡結果的異質性 動態(tài)網絡在總人群中的結果可能存在異質性,異質性來源的識別需要研究者對該領域人群特征有較好的把握,識別異質性的來源和處理異質性是一個重要的挑戰(zhàn)。以下是一些可以使用的策略:(1)分層分析,如果研究者對特定的人群特性(如年齡、性別、種族等)有先驗的假設,可以進行分層分析,即分別在不同的人群中建立和分析網絡模型。這可以幫助研究者理解不同人群中網絡結構和參數的差異。如Zhu等[6]探索中國中老年人群中抑郁癥狀的縱向關系的研究中,對性別進行了亞組分析,結果發(fā)現男性與女性中老年人在抑郁癥狀的發(fā)生機制上存在較大的差異。(2)多群體比較,如果研究者對多個人群的網絡結構或參數是否存在差異感興趣,可以使用多群體比較的方法。這種方法可以測試網絡的全局結構是否在不同的人群中保持一致,以及特定的網絡參數是否在不同的人群中有顯著的差異。(3)隨機效應模型,如果人群間的異質性主要表現在網絡參數而非網絡的全局結構上,可以使用隨機效應模型來建模這種異質性。該模型假設每個人群的網絡參數都是從一個共同的總體分布中抽取的,因此可以用來估計總體分布的參數,并測試個體參數是否顯著地偏離總體參數。(4)個體化網絡模型,如果人群間的異質性非常大,以至于無法通過上述方法進行有效的建模,可以考慮使用個體化網絡模型。
在本文中,深入探討了癥狀動態(tài)網絡的核心理念,并詳細介紹了如何使用R軟件進行動態(tài)網絡的分析和可視化。我們重點討論了交叉滯后網絡分析法,并解析了如何根據研究目標和數據特性選擇合適的方法。癥狀動態(tài)網絡分析的目的是幫助研究者更深入地理解癥狀的動態(tài)交互機制,從而為制定更精準的預防和治療策略提供依據。我們希望本文能對初學者了解癥狀動態(tài)網絡分析方法有所幫助,并為該領域的研究者提供一定的參考價值。