擅长:python、mysql、java
<p>Scipy对levy稳定分布的实现主要使用了Nolan的方法,该方法将参数空间(alpha,beta)分成几个部分,其中一些部分需要计算复杂的积分。在</p>
<p>Scipy使用MLE估计参数,由于这些相同的积分,这可能非常慢。有实验性的FFT支持来评估levy稳定的pdf,这个特性有望在1.3里程碑中得到显著改进。但是,即使使用FFT,fit()方法似乎仍然非常慢。在</p>
<p>有一种更快的分位数估计器(McCulloch),用作分布参数的第一个猜测(当使用fit()进行估计时)。这可以直接使用\u fitstart()调用。在</p>
<p>也就是说,用于生成Scipy随机样本的参数化(from rvs())似乎与生成pdf/cdf的参数化不同。我希望将来能看到。在</p>
<p>在此之前(正如@Ulrich在他们的回答中所建议的那样),您可以使用pylevy,也可以使用\u fitstart()来估计参数,然后转换参数化。在</p>
<pre class="lang-py prettyprint-override"><code>from scipy.stats import levy_stable
import numpy as np
points = 1000000
jennys_constant = 8675309
alpha, beta = 1.8, -0.5
draw = levy_stable.rvs(alpha, beta, size=points, random_state=jennys_constant)
# use scipy's quantile estimator to estimate the parameters and convert to S parameterization
pconv = lambda alpha, beta, mu, sigma: (alpha, beta, mu - sigma * beta * np.tan(np.pi * alpha / 2.0), sigma)
pconv(*levy_stable._fitstart(draw))
>>> (1.7990380668349146, -0.5661063359664303,
-0.012873575589969821, 0.998276003705684)
</code></pre>
<p>希望有帮助。在</p>