R におけるネットワーク分析のパッケージ network の簡単な使い方。
network パッケージのインストール
まず統計ソフトRにパッケージをインストールして呼び出す。
install.packages("network")
library(network)
準備するデータ
ネットワークのつながりありなしの行列を準備する。
network パッケージに付属している flo を例として用いる。
data('flow")
flow の内容は以下のようなものだ。

行と列に同じ要素(vertex)が並び、つながり(edge)があるもの同士が1である。
つながりがないもの同士は0である。
ネットワーク分析の実行
network パッケージの network() 関数を適用する。
nflo <- network(flo)
summary(nflo)
以下のようにサマリーが出力される。

vertices が頂点の数。
これがネットワークを構成する要素である。
directed = TRUEであるのは、方向性を加味しているという意味。
total edges = 40 で、つながりが40あるという意味である。
双方向を2つと数えている。
network density は、0.1666667と計算されている。
最後に Network edgelist matrix が出力されている。
どの頂点同士がつながっているかのリストだ。
ネットワークの描画
plot() で、図を描画すると以下のようになる。
plot(nflo)

頂点に名前を入れたい場合は、displaylabels = TRUE とする。
plot(nflo, displaylabels=TRUE)
すると、頂点に名前が付く。

方向性がないつながりの場合
つながりには、方向性がなく、相関ということであれば、directed = FALSE を指定する。
nflo1 <- network(flo, directed=FALSE)
summary(nflo1)
plot(nflo1, displaylabels=TRUE)
すると total edges = 20に減少する。

図は以下の通りになり、つながりの両端の矢印頭がなくなる。

まとめ
R のパッケージ network を用いて、ネットワーク図の描画をやってみた。
つながりを示す行列のデータがあれば、簡単にネットワーク図は描画できる。
参考文献
network: A Package for Managing Relational Data in R | Journal of Statistical Software
コメント