頂点間の距離
ネットワークの相互接続性は、頂点間のパスの数と長さを調べることで評価できます。パスとは、頂点同士をつなぐ連鎖のことです。2つの頂点間にあるエッジの本数は、頂点間の測地距離を表します。互いに直接つながっている頂点の測地距離は 1 です。共通の近傍を共有しているが直接はつながっていない場合は 2、という具合です。有向ネットワークでは、エッジの向きを考慮できます。もし2つの頂点がエッジの向きに従って到達できない場合、その測地距離は無限大とされます。この演習では、ネットワーク内の頂点間で最長のパスを見つける方法と、ある頂点から \(n\) ステップ以内に到達可能な頂点を見分ける方法を学びます。はしかデータセットのような疾病伝播ネットワークでは、病気がネットワーク内をどれくらいの速さで広がるかを把握するのに役立ちます。
この演習はコースの一部です
Rで学ぶネットワーク分析
演習の手順
farthest_vertices()を使って、ネットワーク内で最も長いパスの長さを求めましょう。get_diameter()を使って、そのパスの並び(シーケンス)を特定しましょう。これは、ネットワーク内で最も遠くまで病気を広げた子どもたちの連なりを示します。ego()を使って、頂点 42 から 2 ステップ以内で到達できるすべての頂点、そして 2 ステップ以内で頂点 42 に到達できる頂点を見つけましょう。ego()の第1引数はグラフオブジェクト、第2引数は頂点間の最大ステップ数、第3引数は対象の頂点、第4引数は対象頂点から出る接続を考えるか、対象頂点に入ってくる接続を考えるかを指定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(igraph)
# Which two vertices are the furthest apart in the graph ?
___(g)
# Shows the path sequence between two furthest apart vertices.
___(g)
# Identify vertices that are reachable within two connections from vertex 42
___(g, ___, '42', mode = c('___'))
# Identify vertices that can reach vertex 42 within two connections
___(g, ___, '42', mode = c('___'))