複雜網路分析軟體NetworkX和UCINET資料關聯的方法
最近準備做一些關於ego network分析方面的實驗(也是參考別人論文想到的研究點),發現這方面的測量結果,大家都是用ucinet這個軟體做的,覺得其肯定集成了很多ego network測量的指標。其官網目前在google sites,訪問不了的朋友在這個網址上可以看到其Document之類的:http://www.analytictech.com/ucinet/
記得很多朋友都用過這個軟體,但我確實沒用過,希望能儘快上手。探索了一下,發現其介面Data——Import text file——可以選擇從Pajek檔案匯入,而我之前比較熟悉的NetworkX中的network可以很容易儲存成Pajek檔案,但我測試了一個3000多個節點的network,發現其讀入的時候總是無響應。
沒辦法,只能嘗試其他方法。在這裡:http://www.analytictech.com/ucinet/help.htm 下載了其user guide,簡單閱讀了一下。發現其可以直接輸入純文字的矩陣記錄,如下面這個矩陣:
0 1 1 0
1 0 1 1
1 1 0 0
0 1 0 0
再仔細看看NetworkX的文件,發現其network可以方便地轉成numpy中的矩陣(即以鄰接矩陣的形式儲存network),而numpy中的矩陣又可以很容易轉成文字檔案:
G_matrix=nx.to_numpy_matrix(G)
savetxt('Out_put_file.txt',G_matrix)
再嘗試用ucinet讀取了一下這個輸出檔案,發現可以在比較短的時間內處理完成了。經過以上流程,就完成了NetworkX中的network到UCINET的轉換。簡單記錄一下。前面那個矩陣的ego network度量結果為:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Size Ties Pairs Densit AvgDis Diamet nWeakC pWeakC 2StepR ReachE Broker nBroke EgoBet nEgoBe
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
1 2.00 2.00 2.00 100.00 1.00 1.00 1.00 50.00 100.00 60.00 0.00 0.00 0.00 0.00
2 3.00 2.00 6.00 33.33 2.00 66.67 100.00 60.00 2.00 0.33 2.00 66.67
3 2.00 2.00 2.00 100.00 1.00 1.00 1.00 50.00 100.00 60.00 0.00 0.00 0.00 0.00
4 1.00 0.00 0.00 0.00 0.00 1.00 100.00 100.00 100.00 0.00 0.00
1. Size. Size of ego network.
2. Ties. Number of directed ties.
3. Pairs. Number of ordered pairs.
4. Density. Ties divided by Pairs.
5. AvgDist. Average geodesic distance.
6. Diameter. Longest distance in egonet.
7. nWeakComp. Number of weak components.
8. pWeakComp. NWeakComp divided by Size.
9. 2StepReach. # of nodes within 2 links of ego.
10. ReachEffic. 2StepReach divided Size.
11. Broker. # of pairs not directly connected.
12. Normalized Broker. Broker divided by number of pairs.
13. Ego Betweenness. Betweenness of ego in own network.
14. Normalized Ego Betweenness. Betweenness of ego in own network.