グラフの密度
snaでグラフの密度(濃度・density)を算出するには、gden関数を使う。
ここでいうグラフの密度とは、存在するタイに与えられた値の総計を、最大可能な辺の数(つまり全ての頂点の間に辺がある場合)で割ったものである。それゆえ、重み付きグラフ(タイの値が0か1だけでなく、それ以外の実数を含む)の場合、得られる値はタイの値の平均値となる。
最大可能な辺の数というのは、頂点の数をnとすると、対角を含まない有向グラフの場合、n(n-1)、無向グラフの場合はn(n-1)/2であり、対角を含む有向グラフの場合はnの2乗、無向グラフの場合n(n+1)/2である。
密度に関するパラメータ
g
密度の算出対象となるグラフを示す値。複数のグラフを対象とする場合はベクトルでもよい。g = NULL(デフォルト)の場合、ネットワーク・データに含まれる全てのグラフについて密度が算出される。
diag
隣接行列の対角を有効なデータとして扱うかどうかを示すブール型変数。データがループを含むときにのみTRUEにする。デフォルトはFALSE。
mode
グラフのタイプ。"digraph"(デフォルト)または"graph"。
例
> #完全グラフと空グラフからなるネットワーク・データの作成
> dat <- array(, dim=c(2,3,3))
> dat[1,,] <- matrix(c(0,1,1,1,0,1,1,1,0), 3, byrow = TRUE)
> dat[2,,] <- matrix(c(0,0,0,0,0,0,0,0,0), 3, byrow = TRUE)
> #1番目のグラフの密度を算出
> gden(dat, g = 1)
[1] 1
> #2番目のグラフの密度を算出
> gden(dat, g = 2)
[1] 0
> #データに含まれる全てのグラフの密度を算出
> gden(dat)
[1] 1 0
> #無向の重み付きグラフの作成
> dat <- matrix(c(0,1,2,1,0,3,2,3,0), 3, byrow =TRUE)
> dat
[,1] [,2] [,3]
[1,] 0 1 2
[2,] 1 0 3
[3,] 2 3 0
> #タイの値の平均値の算出
> gden(dat, mode = "graph")
[1] 2
ここでいうグラフの密度とは、存在するタイに与えられた値の総計を、最大可能な辺の数(つまり全ての頂点の間に辺がある場合)で割ったものである。それゆえ、重み付きグラフ(タイの値が0か1だけでなく、それ以外の実数を含む)の場合、得られる値はタイの値の平均値となる。
最大可能な辺の数というのは、頂点の数をnとすると、対角を含まない有向グラフの場合、n(n-1)、無向グラフの場合はn(n-1)/2であり、対角を含む有向グラフの場合はnの2乗、無向グラフの場合n(n+1)/2である。
密度に関するパラメータ
g
密度の算出対象となるグラフを示す値。複数のグラフを対象とする場合はベクトルでもよい。g = NULL(デフォルト)の場合、ネットワーク・データに含まれる全てのグラフについて密度が算出される。
diag
隣接行列の対角を有効なデータとして扱うかどうかを示すブール型変数。データがループを含むときにのみTRUEにする。デフォルトはFALSE。
mode
グラフのタイプ。"digraph"(デフォルト)または"graph"。
例
> #完全グラフと空グラフからなるネットワーク・データの作成
> dat <- array(, dim=c(2,3,3))
> dat[1,,] <- matrix(c(0,1,1,1,0,1,1,1,0), 3, byrow = TRUE)
> dat[2,,] <- matrix(c(0,0,0,0,0,0,0,0,0), 3, byrow = TRUE)
> #1番目のグラフの密度を算出
> gden(dat, g = 1)
[1] 1
> #2番目のグラフの密度を算出
> gden(dat, g = 2)
[1] 0
> #データに含まれる全てのグラフの密度を算出
> gden(dat)
[1] 1 0
> #無向の重み付きグラフの作成
> dat <- matrix(c(0,1,2,1,0,3,2,3,0), 3, byrow =TRUE)
> dat
[,1] [,2] [,3]
[1,] 0 1 2
[2,] 1 0 3
[3,] 2 3 0
> #タイの値の平均値の算出
> gden(dat, mode = "graph")
[1] 2