1. 학습
  2. /
  3. 강의
  4. /
  5. Rで学ぶネットワーク分析

Connected

연습 문제

ネットワークのランダム化

前の演習で、Forrest Gump ネットワークの平均経路長がランダムネットワークの平均経路長よりも小さいことに気づいたかもしれません。コードを何度か実行すると、Forrest Gump ネットワークのほうがほぼ常にランダムネットワークより低いことがわかります。これは、ランダムネットワークと同じ頂点数とほぼ同じグラフ密度であるにもかかわらず、Forrest Gump ネットワークのほうがより高い相互接続性を持っていることを示唆します。コードを何度も実行する代わりに、元の Forrest Gump グラフの頂点数と密度に基づいて 1000 個のランダムグラフを作成することで、より形式的に検証できます。次に、ランダムグラフの平均経路長が元の Forrest Gump ネットワークより小さくなる回数を確認します。これはランダム化検定と呼ばれます。

グラフ g と、前の演習で計算したその平均経路長 g.apl は、ワークスペースに用意されています。

지침

100 XP
  • リストオブジェクト gl を作成するコードと for ループを実行して、元のグラフ g に基づくランダムグラフを 1000 個生成します。
  • lapply() を使って 1000 個のランダムグラフの平均経路長を計算します。unlist() を使うコードを実行して、これら 1000 個の値からベクトル gl.apls を作成します。
  • ベクトル gl.apls に対して hist() を使い、1000 個のランダムグラフの平均経路長のヒストグラムを描きます。abline() を用いて赤の破線の垂直線を追加し、x 切片は元のグラフの平均経路長 g.apl の値にします。
  • ランダムグラフの平均経路長 gl.apls の値が、元のグラフ g.apl の値より小さくなる割合を計算します。これは、元のグラフの密度と頂点数を前提に、観測された平均経路長が偶然に得られる確率に相当します。