統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

統計ソフトRの network パッケージでネットワーク図を描画する

統計ソフト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