【发布时间】:2013-08-11 00:39:35
【问题描述】:
我正在尝试使用powerlaw 模块对经验数据拟合幂律。我创建了以下遵循指数 2 的幂律分布的数据:
x = range(1,1000)
y = []
for i in x:
y.append(i**(-2))
我希望拟合的幂律的指数为 2。但是得到的指数与理论值有很大的偏差:
fitted_pl = powerlaw.Fit(y)
fitted_pl.alpha
Out[115]: 1.4017584065981563
您能否告知为什么会发生这种情况,或者指出我在这里做错了什么?
感谢您的友好回答!
【问题讨论】:
-
当你写
y.append(x**(-2))时,我想你的意思是y.append(i**(-2)) -
@Brionius 感谢您指出这一点,已更正。
-
您是否会混淆线
y(x) = k x^(-a)的回归与拟合从 概率分布p(x) ~ (a-1) x^(-a)得出的值的指数? [k->a 更改是有意的。]powerlaw模块解决了第二个问题。 -
@DSM,你说得对!我混淆了这两个非常不同的任务。非常感谢您指出这一点!