ウィキペディアの投票ネットワーク (ネットワーク データセットの SNAP コレクションに含まれる)の出次数分布と内次数分布を計算してプロットしようとしています。これは、エッジ リストとして表される有向グラフです。
グラフ データを読み取って保存するには、次の手順に従います。
%Read the data file.
G = importdata('Wiki-Vote.txt', ' ', 4);
%G is a structure that contains:
% - data: a <num_of_edges,2> matrix filled with node (wiki users) ids
% - textdata: a cell matrix that contains the header strings (first 4
% lines).
% - colheaders: a cell matrix that contains the last descriptive string
% (fourth line).
%All the useful information is contained into data matrix.
%Split directed edge list into 'from' and 'to' nodes lists.
Nfrom = G.data(:,1); %Will be used to compute out-degree
Nto = G.data(:,2); % "..." in-degree
この質問に動機付けられて、私はこの方法に従って出次数を計算しました
%Remove duplicate entries from Nfrom and Nto lists.
Nfrom = unique(Nfrom); %Will be used to compute the outdegree distribution.
Nto = unique(Nto); %Will be used to compute the indegree distribution.
%Out-degree: count the number of occurances of each element (node-user id)
%contained into Nfrom to G.data(:,1).
outdegNsG = histc(G.data(:,1), Nfrom);
odG = hist(outdegNsG, 1:size(Nfrom));
figure;
plot(odG)
title('linear-linear scale plot: outdegree distribution');
figure;
loglog(odG)
title('log-log scale plot: outdegree distribution');
入次数を計算するために行うことは同じです。しかし、私が取った線形プロットは満足のいくものではなく、私のアプローチが正しいものではないかどうか疑問に思いました.
線形スケール:
対数対数スケール:
分布のグラフを線形スケールで拡大すると、べき乗則に近いことが明らかになります。
私の質問は、次数分布を計算する私のアプローチが正しいかどうかです。これを保証する助けがないからです。histc
具体的には、ビンの数が少ないほど、価値のある情報を失うことなく、より明確なグラフが得られるかどうかを知りたいです。