1

这可能是一个概念问题(如果是这样,请告诉我要使用的论坛,我会在那里问),但我真的坚持这一点。

我想在 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(由圣达菲研究所开发,请参见此处)来估计幂alpha律行为所适用的指数分量和最小值xmin。现在我主要的事情是我在绘制这个拟合数据时遇到了麻烦,好像我错过了一些东西。目前我这样做是为了可视化情节:

x=1:1:10;
pfit=x.^-alpha;
loglog(pfit)

这导致 在此处输入图像描述

这比预期的要差得多(我希望它非常接近 的数据x>xmin)。

我希望任何人都有这方面的经验并且能够帮助我,或者即使是正确方向的指针也将不胜感激!

4

1 回答 1

2

你计算的ps不是概率。要获得概率分布,您需要对其进行归一化:

ps = ps/sum(ps);

您可能需要对 执行相同的操作pfit,但这可能由您正在使用的库提供。

于 2013-09-10T13:45:53.913 回答