7

ランダム サンプルを描画するために、scipy.stats.powerlaw ルーチンに負の指数を指定します。たとえば、a=-1.5 です。

"""
powerlaw.pdf(x, a) = a * x**(a-1)
"""

from scipy.stats import powerlaw
R = powerlaw.rvs(a, size=100)

a > 0 が必要な理由、ランダム サンプルを生成するために負の a を指定する方法、および正規化係数/変換を指定する方法、つまり

PDF(x,C,a) = C * x**a

ドキュメントはこちら

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.powerlaw.html

ありがとう!

編集: IDL の RANDOMP 関数を複製しようとしていることを追加する必要があります。

http://idlastro.gsfc.nasa.gov/ftp/pro/math/randomp.pro

4

5 に答える 5

5

ドメイン全体で統合された PDF は、1 に等しくなければなりません。つまり、確率密度関数の曲線の下の面積は 1 に等しくなければなりません。

In [36]: import scipy.integrate as integrate
In [40]: y, err = integrate.quad(lambda x: 0.5*x**(-0.5), 0, 1)

In [41]: y
Out[41]: 0.9999999999999998  # The integral is close to 1

べき乗密度関数には、0 <= x <= 1 のドメインがあります。このドメインでは、の積分は> -1x**bに対して有限です。bb小さいと、x**bの近くで爆​​発が速すぎx = 0ます。したがって、 の場合、有効な確率密度関数ではありませんb <= -1

In [38]: integrate.quad(lambda x: x**(-1), 0, 1)
UserWarning: The maximum number of subdivisions (50) has been achieved...
# The integral blows up

したがって、 はx**(a-1)aを満たすa-1 > -1か、同等でなければなりませんa > 0

の最初の定数aは、ドメイン [0,1] 上のa * x**(a-1)の積分a * x**(a-1)を 1 に等しくする正規化定数です。したがって、 とは無関係にこの定数を選択することはできませんa

C * x**aドメインを 0 から測定可能な距離に変更すると、負の形式の PDF を定義できますa。しかし、あなたはあなたが望むドメインを述べなければなりません.そして、私は(まだ)scipy.statsこれに利用できるPDFがないと思います.

于 2013-07-26T14:06:19.663 に答える
3

r が一様ランダム偏差 U(0,1) の場合、次の式の x はべき乗分布ランダム偏差です。

x = xmin * (1-r) ** (-1/(alpha-1))

ここで、xmin はべき乗分布が成立する最小 (正の) 値で、alpha は分布の指数です。

于 2017-01-03T05:15:47.763 に答える