8

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

なぜこれが起こるのか、または私がここで間違ったことを指摘してください。

親切な回答ありがとうございます!

4

1 に答える 1

11

@DSM が指摘したように、powerlaw モジュールは、回帰をフィッティングするのではなく、ベキ乗分布から引き出された/生成された値に指数をフィッティングすることを扱います。同様の混乱を抱えている可能性のある人々を助けるために、指数フィッティングを確認する方法を以下に示します。

## use a proper power law random number generator (or code your own) 
from networkx.utils import powerlaw_sequence
pl_sequence = powerlaw_sequence(1000,exponent=2.5)

fitted_pl = powerlaw.Fit(pl_sequence)

fitted_pl.alpha
Out[73]: 2.4709012785346314  ##close enough
于 2013-08-12T06:43:41.860 に答える