这可能是一个概念性的问题(如果是这样,请告诉我使用的论坛,我会在那里问它),但我真的坚持这个。
我想在Matlab中绘制学位分布并拟合数据。我怀疑学位分布是否同意一些xmin
(最小值)的幂律分布。所以首先我有我的学位数组:
s=[2 3 4 4 5 4 4 4 5 6 4 3 5 6 7 5 etc];
我计算概率分布,我从1到10采取箱子:
ps=hist(s,1:10)
随后我可以使用
来绘制loglog(ps)
确实表明节点度遵循从节点度= 4开始的幂律分布。
我正在使用plfit
(由圣菲研究所开发,请参阅here)估算指数成分alpha
和幂律行为所持有的最小值xmin
。现在我最主要的是我无法将数据拟合到数据中,似乎我错过了一些东西。目前我这样做是为了想象情节:
x=1:1:10;
pfit=x.^-alpha;
loglog(pfit)
结果如何
比预期的要糟糕得多(我希望它与x>xmin
的数据非常接近)。
我希望任何人都有这方面的经验,并能够帮助我,甚至指向正确方向的指针将非常感激!
答案 0 :(得分:2)
您计算的ps
不是概率。要获得概率分布,您需要将其标准化:
ps = ps/sum(ps);
您可能需要对pfit
执行相同的操作,但这可能由您正在使用的库提供。