對于復(fù)雜問題和現(xiàn)象行為的研究拣宰,尤其是他們之間還有復(fù)雜的交互影響(complex interplay)的時(shí)候柄冲,網(wǎng)絡(luò)分析(備用名:psychological networks, network analysis or network psychometrics)是個(gè)備選的好方法遵绰,這個(gè)方法火了也沒幾年辽幌,感興趣的同學(xué)可以去學(xué)學(xué)增淹,而且,如果你再能把網(wǎng)絡(luò)圖做的美點(diǎn)乌企,應(yīng)該各個(gè)審稿人都愿意看的虑润。今天嘗試給大家做個(gè)網(wǎng)絡(luò)分析的簡單介紹。
舉個(gè)例子加酵,像physiological, psychological, social and environmental factors等等如何影響肥胖拳喻,很復(fù)雜,做個(gè)多元回歸虽画?做個(gè)結(jié)構(gòu)方程模型舞蔽?這些都缺乏系統(tǒng)性的視角,從整體上把握肥胖的影響因素之間的關(guān)系码撰,找最重要的干預(yù)靶點(diǎn)推薦用網(wǎng)絡(luò)分析渗柿。
像健康,行為脖岛,心理朵栖,認(rèn)知功能等等,反正就是復(fù)雜系統(tǒng)的分析柴梆,想不到課題了陨溅,就可以考慮在方法上上網(wǎng)絡(luò)分析
From a network perspective, health behaviours and outcomes can be conceptualised as emergent phenomena from a system of reciprocal interactions: network analysis offers a powerful methodological approach to investigate the complex patterns of such relationships.
比如一個(gè)文章,研究自殺的绍在,原文貼在下面:
Bloch-Elkouby, S., Gorman, B., Schuck, A., Barzilay, S., Calati, R., Cohen, L. J., Begum, F., & Galynker, I. (2020). The suicide crisis syndrome: A network analysis. Journal of Counseling Psychology, 67(5), 595–607.
通過網(wǎng)絡(luò)分析作者就回答了三個(gè)問題:一是自殺崩潰綜合征中不同癥狀的關(guān)系是什么门扇?二是這些癥狀有沒有哪幾個(gè)格外重要?三是這些癥狀有沒有一些聚集性偿渡?三個(gè)問題每一個(gè)都很有價(jià)值臼寄,一個(gè)網(wǎng)絡(luò)分析全給你解決了,感興趣的同學(xué)下載去讀讀溜宽。
還有一個(gè)點(diǎn)很重要送膳,網(wǎng)絡(luò)分析可以幫助你識(shí)別復(fù)雜系統(tǒng)的干預(yù)點(diǎn)分瘾,這個(gè)其實(shí)是很有臨床價(jià)值的
network analyses allow for the computation of centrality indices that provide information about the symptoms that are the most connected to the other symptoms included in the network and whose potential causal contribution to the other symptoms may thus deserve further investigation
如果你是搞人文社科的炕檩,由于其是一個(gè)針對復(fù)雜人文系統(tǒng)的作用關(guān)系聪轿,網(wǎng)絡(luò)分析也是最容易幫助你提出原創(chuàng)理論假設(shè)的一項(xiàng)重要技術(shù)支撐。總體的意思就是想推動(dòng)0到1的科研嫉嘀,這個(gè)方法必須要學(xué)炼邀。
網(wǎng)絡(luò)分析基礎(chǔ)
一個(gè)最簡單的網(wǎng)絡(luò),像這樣
[圖片上傳失敗...(image-d74433-1667914169815)]
有好些點(diǎn)叫做node剪侮,這些點(diǎn)被線連起來的汤善,線叫做edge。
在網(wǎng)絡(luò)圖中點(diǎn)表示的是變量票彪,線表示的是變量關(guān)系红淡,注意這個(gè)線是沒有箭頭的(一般是偏相關(guān)系數(shù)),正向系數(shù)是綠線降铸,負(fù)值系數(shù)是紅線在旱,線的粗細(xì)反應(yīng)關(guān)系的強(qiáng)度,越粗越強(qiáng)推掸。通過這么一個(gè)網(wǎng)絡(luò)圖桶蝎,對于多變量間的復(fù)雜關(guān)系就可以有一個(gè)一目了然的呈現(xiàn)。
Psychological networks consist of nodes representing observed variables, connected by edges representing statistical relationships. This methodology has gained substantial footing and has been used in various different fields of psychology, such as clinical psychology, psychiatry, personality research, social psychology , and quality of life research
成圖的基本步驟如下
[圖片上傳失敗...(image-df7502-1667914169815)]
首先得有數(shù)據(jù)間的統(tǒng)計(jì)模型谅畅,模型系數(shù)作為edge的權(quán)重登渣,然后成圖,然后評估模型毡泻。
具體來講可以選擇的統(tǒng)計(jì)模型多了: correlations, covariances, partial correlations, regression coefficients, odds ratios, factor loadings胜茧,一般我們都是選用偏相關(guān)系數(shù)作為邊的權(quán)重。節(jié)點(diǎn)固定的情況下仇味,網(wǎng)絡(luò)可以畫的很密的呻顽,為了增加interpretability and generalizability和網(wǎng)絡(luò)的穩(wěn)定性,需要用一些正則通常是LASSO來簡化網(wǎng)絡(luò)丹墨,就是把哪些意義不大的邊搞掉廊遍,使得網(wǎng)絡(luò)圖更加的簡潔好解釋。成圖之后就是評估模型了贩挣,主要的分析有兩個(gè)edge stability analysis和centrality indices喉前,以下簡單介紹:
edge stability analysis
本身來講網(wǎng)絡(luò)分析就是比較復(fù)雜的,網(wǎng)絡(luò)的隨機(jī)性相對于別的分析就要大一些王财,而且本身來講我們的科研邏輯就是用樣本反映總體卵迂,如果你做出來的網(wǎng)絡(luò)不穩(wěn)定你能說你發(fā)現(xiàn)的比如肥胖比如自殺的網(wǎng)絡(luò)是可信的?所以做完網(wǎng)絡(luò)分析之后我們對于網(wǎng)絡(luò)的穩(wěn)健性我們是一定要報(bào)告的搪搏,邏輯就是進(jìn)行反復(fù)的bootstrap抽樣狭握,反復(fù)的重新估計(jì)模型,反復(fù)的重新計(jì)算confidence intervals (e.g. 95% CI) for their edge estimates看看這些模型的差異從而評估模型的穩(wěn)健性疯溺,通過edge stability analysis我們可以得到網(wǎng)絡(luò)各個(gè)邊的權(quán)重的置信區(qū)間论颅,區(qū)間越窄,說明網(wǎng)絡(luò)越穩(wěn)定囱嫩。做edge stability analysis的示例代碼如下:
resboot1 <- bootnet(Data, default = c("EBICglasso"), tuning=.5,corMethod="cor_auto",
nBoots = 1000, nCores = 8, type = c("nonparametric"))
通常這一部分論文中也會(huì)以圖的形式報(bào)告出來恃疯。
centrality indices
在網(wǎng)絡(luò)分析中每個(gè)節(jié)點(diǎn)的重要性是不一樣的,是不是存在某些節(jié)點(diǎn)相對于另外的節(jié)點(diǎn)更重要墨闲?對節(jié)點(diǎn)重要性的評估的指標(biāo)就是centrality indices今妄,這個(gè)指標(biāo)又包含3個(gè)指數(shù)strength, closeness, and betweenness,三個(gè)指標(biāo)的意思見下面:
strength, which shows how well a node is directly connected to other nodes, closeness, which shows how well a node is indirectly connected to other nodes, and betweenness, which quantifies the number of times a node acts as a bridge along the shortest path between two other nodes
簡單的邏輯就是如果圖中的一個(gè)點(diǎn)和另外的點(diǎn)連線多越強(qiáng),那么這個(gè)點(diǎn)就重要盾鳞,這個(gè)點(diǎn)也越應(yīng)該放在圖的中心犬性;如果一個(gè)點(diǎn)和其他點(diǎn)的間接距離越近那么這個(gè)點(diǎn)越容易受到網(wǎng)絡(luò)變動(dòng)的影響;如果一個(gè)點(diǎn)平均來看總是在兩兩關(guān)系中起橋接作用腾仅,那么這個(gè)點(diǎn)對整個(gè)網(wǎng)絡(luò)的構(gòu)成就意義極大乒裆。
通常只報(bào)告strength就可以,因?yàn)槠渌麅蓚€(gè)指數(shù)都不太穩(wěn)定推励。
實(shí)例操練
我們今天依照一篇2022年發(fā)表在American Journal of Public Health Research上的研究為參照進(jìn)行做法復(fù)現(xiàn)鹤耍,文章的名字叫Partial Relationships between Health and Fitness Measures in Adults: A Network Analysis
結(jié)果中作者報(bào)告了變量的兩兩相關(guān)的相關(guān)系數(shù)矩陣還有模型的network edge weights,見下表:
[圖片上傳失敗...(image-a009f8-1667914169815)]
作者報(bào)告了網(wǎng)絡(luò)圖還有模型的centrality indices验辞,都是以圖的形式呈現(xiàn)的稿黄,見下圖:
[圖片上傳失敗...(image-3bcd62-1667914169815)]
還有Bootstrapped edge weight estimates,也是一個(gè)圖:
[圖片上傳失敗...(image-b0b78f-1667914169815)]
那么我們今天就來看下跌造,這個(gè)論文的圖如何用自己的數(shù)據(jù)復(fù)現(xiàn)出來杆怕。
比如我現(xiàn)在有數(shù)據(jù)如下,有2800個(gè)觀測鼻听,26個(gè)變量财著,最后一個(gè)變量是性別,其余的25個(gè)變量是5個(gè)5條目的量表:
[圖片上傳失敗...(image-345afd-1667914169815)]
首先我要做的是擬合網(wǎng)絡(luò)模型撑碴,擬合網(wǎng)絡(luò)模型用到的核心函數(shù)是estimateNetwork撑教,通常我們只用設(shè)置data和default參數(shù)便可以運(yùn)行,我們要通過lasso來簡化網(wǎng)絡(luò)的話就設(shè)置default = "EBICglasso"醉拓,將擬合好的網(wǎng)絡(luò)模型對象喂給plot即可以出網(wǎng)絡(luò)圖伟姐。
[圖片上傳失敗...(image-3ee6d9-1667914169815)]
比如我要對男性觀測擬合網(wǎng)絡(luò)模型,可以寫出代碼如下:
network_male <- estimateNetwork(df %>%
filter(gender == "Male") %>%
select(-gender),
default = "EBICglasso",
corMethod = "spearman")
運(yùn)行完畢后亿卤,直接將模型對象喂給plot即可出圖:
[圖片上傳失敗...(image-ddec5a-1667914169815)]
到這兒就基本算是完成了愤兵,但是要發(fā)表的話還是有點(diǎn)粗糙的,其實(shí)我們的數(shù)據(jù)中不同的字母(變量名)代表的是不同的量表排吴,其實(shí)更好的方法是將各個(gè)量表的條目放一起秆乳,并且給出圖例,使得其一目了然钻哩,所以接下來我們得對圖形做一些調(diào)整屹堰。
比如我要對節(jié)點(diǎn)的整體布局做一個(gè)調(diào)整并且加上每個(gè)量表的圖例,我就可以在代碼中加上group參數(shù)街氢,指明每個(gè)節(jié)點(diǎn)都是來自哪個(gè)量表的:
[圖片上傳失敗...(image-f16dd-1667914169815)]
這樣其實(shí)就好看多了扯键,當(dāng)然如果需要更細(xì)的圖例,比如我想知道每個(gè)節(jié)點(diǎn)到底啥意思珊肃,我還可以用nodeNames參數(shù)加上節(jié)點(diǎn)的圖例:
[圖片上傳失敗...(image-f9355e-1667914169815)]
這樣就更好了荣刑,贊馅笙。
但是我們注意American Journal of Public Health Research上的這篇研究是給邊加了標(biāo)簽的,我們要出這樣的效果的話只需要設(shè)定edge.labels為真就可以了厉亏,因?yàn)楣?jié)點(diǎn)比較多董习,加上標(biāo)簽其實(shí)效果就不太好了:
[圖片上傳失敗...(image-f09d-1667914169815)]
我們接著再看作者的另外的兩個(gè)圖的做法,一個(gè)是centrality indices的圖叶堆,我們只需要將模型對象喂給centralityPlot即可出圖:
[圖片上傳失敗...(image-dd50db-1667914169815)]
另一個(gè)是邊的權(quán)重估計(jì)的圖阱飘,只需要將模型對象喂給bootnet,并且plot就可出來:
[圖片上傳失敗...(image-26f8dc-1667914169815)]
可以看到我們的圖的效果其實(shí)是比原文好的虱颗。
到這兒,原文中所有的結(jié)果都給大家復(fù)現(xiàn)完了蔗喂。
網(wǎng)絡(luò)分析的協(xié)變量控制
本身來講網(wǎng)絡(luò)分析的輸入數(shù)據(jù)其實(shí)是相關(guān)矩陣忘渔,這個(gè)時(shí)候我們想控制協(xié)變量比如年齡、性別缰儿、民族等等畦粮,可行的方法就是做回歸取殘差,以殘差的相關(guān)矩陣作為模型的輸入乖阵,同樣的思想可以在結(jié)構(gòu)方程中使用宣赔,比如你做個(gè)交叉滯后想控制協(xié)變量就可以用這個(gè)方法哈,中英文的發(fā)表文獻(xiàn)引用證據(jù)都各給大家貼一個(gè)瞪浸,做法上也都很好實(shí)現(xiàn)的:
[圖片上傳失敗...(image-73d1a2-1667914169815)]
[圖片上傳失敗...(image-2ae122-1667914169815)]
小結(jié)
今天給大家寫了網(wǎng)絡(luò)分析的做法儒将,其實(shí)還有一塊就是網(wǎng)絡(luò)分析的對比,解決的問題是幾個(gè)網(wǎng)絡(luò)是不是不一樣对蒲,或者同一個(gè)網(wǎng)絡(luò)的某兩個(gè)邊是不是不一樣钩蚊,這個(gè)以后有機(jī)會(huì)給大家寫。