使用powerlaw python包区分随机gnp图和优先附件grpahs

时间:2018-01-26 11:30:03

标签: python statistics graph-theory power-law

我的目标是找到无标度网络与使用powerlaw python package

的随机(非规模)网络无法区分的地步

their paper所述,人们应该通过将幂律与其他分布的拟合进行比较来确定幂律的优点。

我希望能够实现像二分法分布这样的东西,以便比较拟合优度,但事实并非如此。

例如,我尝试使用以下代码来区分明显无标度的网络和明显无标度的网络(两者都具有相似数量的节点/边缘):

non_sf_graph = nx.gnp_random_graph(10000, 0.002)
sf_graph = nx.barabasi_albert_graph(10000, 10)
fitpl = powerlaw.Fit(list(sf_graph.degree().values()))
fitnpl = powerlaw.Fit(list(non_sf_graph.degree().values()))

for dist in fitpl.supported_distributions.keys():
    print(dist)
    fitpl.distribution_compare('power_law', dist)
    fitnpl.distribution_compare('power_law', dist)

输出表明,没有一个实现的发行版提供了一个工具来辨别优先附件模型和gnp随机图:

lognormal
(-0.23698971255249646, 0.089194415705275421)
(-20.320811335334504, 3.9097599268295484e-92)
exponential
(511.41420648854108, 7.3934851812182895e-23)
(24.215231521373582, 3.7251410948652104e-08)
truncated_power_law
(3.3213949937049847e-06, 0.99794356568650555)
(3.1510369047360598e-07, 0.99936659460444144)
stretched_exponential
(16.756797270053454, 1.6505119872120265e-05)
(8.7110005915424153, 8.7224098659112012e-05)
lognormal_positive
(30.428201968820289, 1.7275238929002278e-07)
(6.7992592335974233, 5.4945477823229749e-06)

(第一个值的符号表示第一个(正)或第二个(负)分布是否更合适,第二个值是该决定重要性的p值)

我是从错误的角度解决这个问题,还是应该自己实施二项分布?

我问,因为我不是统计专家,我可能看不到所有可用发行版的重要性。但他们似乎没有通过这个基本的例子。

0 个答案:

没有答案