自分のネットワークの平均パス長を計算しようとしていますが、次の問題があります。私は過去にigraph
パッケージのaverage.path.length
を使っていました。今回は別のルートをとることにしました。私はdistances
関数(パッケージigraph
からも)を使い、すべての距離の平均を求めたかったのです。 distances
関数はグラフの頂点間のペアワイズ最短パスを単純に計算するので、平均パス長を返すのがmean(distances(graph))
であると私は理解していました。しかし、私がこのアプローチを使用しようとしたとき、私はaverage.path.length
とmean_distance
の指示アプリケーションが与えていた異なる値を得ていることに気付きました。最初は、問題はいくつかの独立したノードによって引き起こされたと思っていましたが、完全に接続されたおもちゃのグラフでチェックしたところ、同じ問題がありました。ここで平均距離とigraphの障害平均平均
が再現可能な例である:
toy.graph <- graph.formula(1-2,1-3,1-5,2-5,3-5,3-6,4-6)
mean_distance(toy.graph)
[1] 1.866667
average.path.length(toy.graph)
[1] 1.866667
mean(distances(toy.graph))
[1] 1.555556
私は別のアルゴリズムがmean_distance
とdistances
のために使用されていることを理解しその差は、小型でシンプルなモデルにとても大きくすべきですか?私は何が欠けていますか?
を下げる対角線上の0のありがとう含まれています。それは理にかなっている。対角が平均を下げることがわかります。私のネットワークが監督されているとき、下三角と上三角の両方を使うべきですか?そのような場合、行列は対称ではありません(ただし対角線上には0が残ります)。 – Justyna
この方法を有向グラフに使用する場合は、グラフの「内」と「外」の距離を計算し、平均化する前に「Inf」と対角線を削除する必要があります。これは単純な有向グラフではうまくいきますが、どのように一般化可能かはわかりません – emilliman5