我正在尝试使用 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))
。 - Brioniusy(x) = k x^(-a)
和拟合概率分布p(x) ~ (a-1) x^(-a)
中的指数混淆了吗?(注意:k->a 的变化是有意的。)powerlaw
模块解决的是第二个问题。 - DSM