3

Scipy で生存計算を行っていますが、正しい値を取得できません。

私のコード:

x, a, c = 1000, 1.5, 5000

vals = exponweib.cdf(x,a,c,loc=0,scale=1)

vals0.085559356392783004 に等しいはずですが、代わりに 0 を取得しています。

独自の関数を定義すると、正しい答えが得られます。

def weibCumDist(x,a,c):
    return 1-np.exp(-(x/c)**a)

自分の関数を使用することもできますが、何が間違っているのか知りたいです。

4

1 に答える 1

4

パラメータを scipy のパラメータに正しくマッピングしていません。あなたの同等のものを実装するにはweibCumDist

In [22]: x = 1000

In [23]: a = 1.5

In [24]: c = 5000

In [25]: exponweib.cdf(x, 1, a, loc=0, scale=c)
Out[25]: 0.08555935639278299

exponweibべき乗ワイブル分布であることに注意してください。

おそらく使用したいでしょうscipy.stats.weibull_min。これは、「ザ」ワイブル分布と呼ばれることが多い分布の実装です。

In [49]: from scipy.stats import weibull_min

In [50]: weibull_min.cdf(x, a, loc=0, scale=c)
Out[50]: 0.08555935639278299
于 2014-12-11T21:21:21.010 に答える