SciPy-1-12-中文文档-五十五-

65 阅读43分钟

SciPy 1.12 中文文档(五十五)

原文:docs.scipy.org/doc/scipy-1.12.0/index.html

scipy.stats.levy_l

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.levy_l.html#scipy.stats.levy_l

scipy.stats.levy_l = <scipy.stats._continuous_distns.levy_l_gen object>

一个左偏 Levy 连续随机变量。

作为rv_continuous类的一个实例,levy_l对象继承了一组通用方法(详见下文完整列表),并为这种特定分布完成了特定的细节。

另请参见

levy, levy_stable

注释

levy_l的概率密度函数为:

[f(x) = \frac{1}{|x| \sqrt{2\pi |x|}} \exp{ \left(-\frac{1}{2|x|} \right)}]

for (x < 0).

这与参数 (a=1/2) 和 (b=-1) 的稳定 Levy 分布相同。

上述概率密度在“标准化”形式中定义。使用locscale参数来进行分布的平移和/或缩放。具体来说,levy_l.pdf(x, loc, scale)levy_l.pdf(y) / scale完全等价,其中y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心广义形式可在单独的类中获得。

示例

>>> import numpy as np
>>> from scipy.stats import levy_l
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> mean, var, skew, kurt = levy_l.stats(moments='mvsk') 

显示概率密度函数(pdf):

>>> # `levy_l` is very heavy-tailed.
>>> # To show a nice plot, let's cut off the lower 40 percent.
>>> a, b = levy_l.ppf(0.4), levy_l.ppf(1)
>>> x = np.linspace(a, b, 100)
>>> ax.plot(x, levy_l.pdf(x),
...        'r-', lw=5, alpha=0.6, label='levy_l pdf') 

或者,可以调用(作为函数)分布对象来固定形状、位置和尺度参数。这将返回一个“冻结”的 RV 对象,其中给定的参数被固定。

冻结分布并显示冻结的pdf

>>> rv = levy_l()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = levy_l.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], levy_l.cdf(vals))
True 

生成随机数:

>>> r = levy_l.rvs(size=1000) 

并比较直方图:

>>> # manual binning to ignore the tail
>>> bins = np.concatenate(([np.min(r)], np.linspace(a, b, 20)))
>>> ax.hist(r, bins=bins, density=True, histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-levy_l-1.png

方法

rvs(loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, loc=0, scale=1)概率密度函数。
logpdf(x, loc=0, scale=1)概率密度函数的对数。
cdf(x, loc=0, scale=1)累积分布函数。
logcdf(x, loc=0, scale=1)累积分布函数的对数。
sf(x, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更准确)。
logsf(x, loc=0, scale=1)生存函数的对数。
ppf(q, loc=0, scale=1)百分位点函数(cdf的逆 — 百分位数)。
isf(q, loc=0, scale=1)逆生存函数(sf的逆)。
moment(order, loc=0, scale=1)指定顺序的非中心矩。
stats(loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(loc=0, scale=1)随机变量的(微分)熵。
fit(data)适合一般数据的参数估计。详细文档参见 scipy.stats.rv_continuous.fit
**expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对于分布的期望值(关于一个参数的函数)。
median(loc=0, scale=1)分布的中位数。
mean(loc=0, scale=1)分布的均值。
var(loc=0, scale=1)分布的方差。
std(loc=0, scale=1)分布的标准差。
interval(confidence, loc=0, scale=1)中位数周围面积相等的置信区间。

scipy.stats.levy_stable

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.levy_stable.html#scipy.stats.levy_stable

scipy.stats.levy_stable = <scipy.stats._levy_stable.levy_stable_gen object>

一个 Levy 稳定连续随机变量。

作为 rv_continuous 类的一个实例,levy_stable 对象继承了一系列通用方法(完整列表请参见下文),并补充了特定于这个特定分布的细节。

另见

levy, levy_l, cauchy, norm

注意

levy_stable 的分布具有特征函数:

[\varphi(t, \alpha, \beta, c, \mu) = e^{it\mu -|ct|^{\alpha}(1-i\beta\operatorname{sign}(t)\Phi(\alpha, t))}]

支持两种不同的参数化方式。第一个 (S_1):

[\begin{split}\Phi = \begin{cases} \tan \left({\frac {\pi \alpha }{2}}\right)&\alpha \neq 1\ -{\frac {2}{\pi }}\log |t|&\alpha =1 \end{cases}\end{split}]

第二个 (S_0):

[\begin{split}\Phi = \begin{cases} -\tan \left({\frac {\pi \alpha }{2}}\right)(|ct|^{1-\alpha}-1) &\alpha \neq 1\ -{\frac {2}{\pi }}\log |ct|&\alpha =1 \end{cases}\end{split}]

levy_stable 的概率密度函数为:

[f(x) = \frac{1}{2\pi}\int_{-\infty}^\infty \varphi(t)e^{-ixt},dt]

其中 (-\infty < t < \infty)。这个积分没有已知的闭式形式。

levy_stable 泛化了几个分布。在可能的情况下,应使用它们。特别是当形状参数在下表中的值时,应使用相应的等效分布。

alphabeta等效
1/2-1levy_l
1/21levy
10cauchy
2anynorm (with scale=sqrt(2))

对 pdf 的评估使用了 Nolan 的分段积分方法,默认使用 Zolotarev 的 (M) 参数化。还可以选择直接数值积分标准参数化的特征函数,或者通过特征函数的 FFT 进行评估。

可以通过将类变量levy_stable.pdf_default_method设置为‘piecewise’(Nolan 方法的默认选择)、‘dni’(直接数值积分)或‘fft-simpson’(基于 FFT 的方法)来更改默认方法。出于向后兼容性考虑,方法‘best’和‘zolotarev’相当于‘piecewise’,而方法‘quadrature’相当于‘dni’。

可以通过将类变量levy_stable.parameterization设置为‘S0’或‘S1’来更改参数化。默认为‘S1’。

要提高分段和直接数值积分的性能,可以指定levy_stable.quad_eps(默认为 1.2e-14)。这既用作直接数值积分的绝对和相对积分容差,也用作分段方法的相对积分容差。还可以指定levy_stable.piecewise_x_tol_near_zeta(默认为 0.005),用于确定 x 与 zeta 接近多少时被视为相同[NO]。确切的检查是abs(x0 - zeta) < piecewise_x_tol_near_zeta*alpha**(1/alpha)。还可以指定levy_stable.piecewise_alpha_tol_near_one(默认为 0.005),用于确定 alpha 接近 1 时被视为相等。

要提高 FFT 计算的精度,可以指定levy_stable.pdf_fft_grid_spacing(默认为 0.001)和pdf_fft_n_points_two_power(默认为 None,意味着会计算一个足够覆盖输入范围的值)。

可通过设置pdf_fft_interpolation_degree(默认为 3)来进一步控制 FFT 计算,用于样条插值的阶数,以及通过设置pdf_fft_interpolation_level来确定在近似特征函数时使用的 Newton-Cotes 公式中的点数(视为实验性)。

cdf 的评估默认使用 Nolan 的分段积分方法,并采用 Zolatarev 的参数化方法(通过 S_0 参数)。还有通过 FFT 方法计算 pdf 的插值样条积分来评估的选项。影响 FFT 计算的设置与 pdf 计算相同。可以通过将levy_stable.cdf_default_method设置为‘piecewise’或‘fft-simpson’来更改默认的 cdf 方法。对于 cdf 计算,Zolatarev 方法在精度上更为优越,因此默认情况下禁用 FFT。

拟合估计使用[MC]中的分位数估计方法。在拟合方法中使用 MLE 估计参数时,首先使用此分位数估计值。注意,如果使用 FFT 进行 pdf 计算,MLE 不总是收敛;当 alpha <= 1 时,FFT 方法不能提供良好的近似。

对于属性levy_stable.pdf_fft_min_points_threshold的任何非缺失值,如果未另行设置有效的默认方法,则会将levy_stable.pdf_default_method设置为‘fft-simpson’。

警告

对于概率密度函数(pdf)的计算,FFT 计算被视为实验性质。

对于累积分布函数(cdf)的计算,FFT 计算被视为实验性质。请改用 Zolatarev 的方法(默认)。

上述的概率密度在“标准化”形式中定义。要进行分布的平移和/或缩放,请使用locscale参数。通常情况下,levy_stable.pdf(x, alpha, beta, loc, scale)等同于levy_stable.pdf(y, alpha, beta) / scale,其中y = (x - loc) / scale,除了在alpha == 1的情况下,使用S1参数化。在这种情况下,levy_stable.pdf(x, alpha, beta, loc, scale)等同于levy_stable.pdf(y, alpha, beta) / scale,其中y = (x - loc - 2 * beta * scale * np.log(scale) / np.pi) / scale。更多信息请参见[NO2] 定义 1.8。请注意,移动分布的位置不会使其成为“非中心”分布。

References

[MC]

McCulloch, J., 1986. Simple consistent estimators of stable distribution parameters. Communications in Statistics - Simulation and Computation 15, 11091136.

[WZ]

Wang, Li and Zhang, Ji-Hong, 2008. Simpson’s rule based FFT method to compute densities of stable distribution.

[NO]

Nolan, J., 1997. Numerical Calculation of Stable Densities and distributions Functions.

[NO2]

Nolan, J., 2018. Stable Distributions: Models for Heavy Tailed Data.

[HO]

Hopcraft, K. I., Jakeman, E., Tanner, R. M. J., 1999. Lévy random walks with fluctuating step number and multiscale behavior.

Examples

>>> import numpy as np
>>> from scipy.stats import levy_stable
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

Calculate the first four moments:

>>> alpha, beta = 1.8, -0.5
>>> mean, var, skew, kurt = levy_stable.stats(alpha, beta, moments='mvsk') 

Display the probability density function (pdf):

>>> x = np.linspace(levy_stable.ppf(0.01, alpha, beta),
...                 levy_stable.ppf(0.99, alpha, beta), 100)
>>> ax.plot(x, levy_stable.pdf(x, alpha, beta),
...        'r-', lw=5, alpha=0.6, label='levy_stable pdf') 

Alternatively, the distribution object can be called (as a function) to fix the shape, location and scale parameters. This returns a “frozen” RV object holding the given parameters fixed.

Freeze the distribution and display the frozen pdf:

>>> rv = levy_stable(alpha, beta)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

Check accuracy of cdf and ppf:

>>> vals = levy_stable.ppf([0.001, 0.5, 0.999], alpha, beta)
>>> np.allclose([0.001, 0.5, 0.999], levy_stable.cdf(vals, alpha, beta))
True 

Generate random numbers:

>>> r = levy_stable.rvs(alpha, beta, size=1000) 

And compare the histogram:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-levy_stable-1.png

Methods

rvs(alpha, beta, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, alpha, beta, loc=0, scale=1)概率密度函数。
logpdf(x, alpha, beta, loc=0, scale=1)概率密度函数的对数。
cdf(x, alpha, beta, loc=0, scale=1)累积分布函数。
logcdf(x, alpha, beta, loc=0, scale=1)概率累积分布函数的对数。
sf(x, alpha, beta, loc=0, scale=1)生存函数(也定义为 1 - cdf,但 sf 有时更准确)。
logsf(x, alpha, beta, loc=0, scale=1)概率生存函数的对数。
ppf(q, alpha, beta, loc=0, scale=1)百分点函数(cdf 的反函数 —— 百分位数)。
isf(q, alpha, beta, loc=0, scale=1)逆生存函数(sf 的反函数)。
moment(order, alpha, beta, loc=0, scale=1)指定阶数的非中心矩。
stats(alpha, beta, loc=0, scale=1, moments=’mv’)均值(‘m’),方差(‘v’),偏度(‘s’),以及/或峰度(‘k’)。
entropy(alpha, beta, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。参见 scipy.stats.rv_continuous.fit 获取关键字参数的详细文档。
**expect(func, args=(alpha, beta), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)关于分布的函数(一个参数)的期望值。
median(alpha, beta, loc=0, scale=1)分布的中位数。
mean(alpha, beta, loc=0, scale=1)分布的均值。
var(alpha, beta, loc=0, scale=1)分布的方差。
std(alpha, beta, loc=0, scale=1)分布的标准差。
interval(confidence, alpha, beta, loc=0, scale=1)置信区间,围绕中位数具有相等的面积。

scipy.stats.logistic

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.logistic.html#scipy.stats.logistic

scipy.stats.logistic = <scipy.stats._continuous_distns.logistic_gen object>

一个逻辑(或 Sech 平方)连续随机变量。

作为rv_continuous类的实例,logistic对象继承了一组通用方法(下面列出了完整列表),并根据这种特定分布补充了详细信息。

注记

logistic的概率密度函数如下:

[f(x) = \frac{\exp(-x)} {(1+\exp(-x))²}]

logistic是带有c=1genlogistic的特殊情况。

注意,生存函数(logistic.sf)等于描述费米子统计的费米-狄拉克分布。

上述概率密度在“标准化”形式中定义。使用locscale参数来进行移位和/或缩放分布。具体而言,logistic.pdf(x, loc, scale)logistic.pdf(y) / scale完全等价,其中y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。

示例

>>> import numpy as np
>>> from scipy.stats import logistic
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> mean, var, skew, kurt = logistic.stats(moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(logistic.ppf(0.01),
...                 logistic.ppf(0.99), 100)
>>> ax.plot(x, logistic.pdf(x),
...        'r-', lw=5, alpha=0.6, label='logistic pdf') 

或者,可以调用分布对象(作为函数)以固定形状、位置和尺度参数。这将返回一个“冻结”的随机变量对象,保持给定的参数不变。

冻结分布并显示冻结的pdf

>>> rv = logistic()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = logistic.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], logistic.cdf(vals))
True 

生成随机数:

>>> r = logistic.rvs(size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-logistic-1.png

方法

rvs(loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, loc=0, scale=1)概率密度函数。
logpdf(x, loc=0, scale=1)概率密度函数的对数。
cdf(x, loc=0, scale=1)累积分布函数。
logcdf(x, loc=0, scale=1)累积分布函数的对数。
sf(x, loc=0, scale=1)生存函数(也定义为1 - cdf,但有时sf更精确)。
logsf(x, loc=0, scale=1)生存函数的对数。
ppf(q, loc=0, scale=1)百分点函数(cdf的反函数 — 百分位数)。
isf(q, loc=0, scale=1)逆生存函数(sf的反函数)。
moment(order, loc=0, scale=1)指定阶数的非中心矩。
stats(loc=0, scale=1, moments=’mv’)平均(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。
entropy(loc=0, scale=1)随机变量的(微分)熵。
fit(data)用于一般数据的参数估计。详细文档请参见scipy.stats.rv_continuous.fit
**expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对分布中的函数(一元函数)求期望值。
median(loc=0, scale=1)分布的中位数。
mean(loc=0, scale=1)分布的均值。
var(loc=0, scale=1)分布的方差。
std(loc=0, scale=1)分布的标准差。
interval(confidence, loc=0, scale=1)中位数周围面积相等的置信区间。

scipy.stats.loggamma

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.loggamma.html#scipy.stats.loggamma

scipy.stats.loggamma = <scipy.stats._continuous_distns.loggamma_gen object>

对数伽玛连续随机变量。

作为 rv_continuous 类的一个实例,loggamma 对象继承了一系列通用方法(见下面的完整列表),并且使用此特定分布的详细信息补充它们。

注意事项

loggamma 的概率密度函数为:

[f(x, c) = \frac{\exp(c x - \exp(x))} {\Gamma(c)}]

对于所有的 (x, c > 0)。这里,(\Gamma) 是伽玛函数(scipy.special.gamma)。

loggammac 作为形状参数(c)。

上述概率密度在“标准化”形式下定义。使用 locscale 参数来进行分布的平移和/或缩放。具体来说,loggamma.pdf(x, c, loc, scale)loggamma.pdf(y, c) / scale 是完全等价的,其中 y = (x - loc) / scale。请注意,分布的位置移动并不使其成为“非中心”分布;某些分布的非中心推广在单独的类中提供。

示例

>>> import numpy as np
>>> from scipy.stats import loggamma
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> c = 0.414
>>> mean, var, skew, kurt = loggamma.stats(c, moments='mvsk') 

显示概率密度函数 (pdf):

>>> x = np.linspace(loggamma.ppf(0.01, c),
...                 loggamma.ppf(0.99, c), 100)
>>> ax.plot(x, loggamma.pdf(x, c),
...        'r-', lw=5, alpha=0.6, label='loggamma pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和缩放参数。这将返回一个“冻结的”RV 对象,保持给定的参数不变。

冻结分布并显示冻结的 pdf

>>> rv = loggamma(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = loggamma.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], loggamma.cdf(vals, c))
True 

生成随机数:

>>> r = loggamma.rvs(c, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-loggamma-1.png

方法

rvs(c, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, c, loc=0, scale=1)概率密度函数。
logpdf(x, c, loc=0, scale=1)概率密度函数的对数。
cdf(x, c, loc=0, scale=1)累积分布函数。
logcdf(x, c, loc=0, scale=1)累积分布函数的对数。
sf(x, c, loc=0, scale=1)生存函数(也定义为 1 - cdf,但 sf 有时更精确)。
logsf(x, c, loc=0, scale=1)生存函数的对数。
ppf(q, c, loc=0, scale=1)百分位点函数(cdf 的反函数 —— 百分位数)。
isf(q, c, loc=0, scale=1)生存函数的反函数(sf 的反函数)。
moment(order, c, loc=0, scale=1)指定阶数的非中心矩。
stats(c, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(c, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(c,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对于分布的一个参数函数的期望值。
median(c, loc=0, scale=1)分布的中位数。
mean(c, loc=0, scale=1)分布的均值。
var(c, loc=0, scale=1)分布的方差。
std(c, loc=0, scale=1)分布的标准差。
interval(confidence, c, loc=0, scale=1)置信区间,围绕中位数有相等的面积。

scipy.stats.loglaplace

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.loglaplace.html#scipy.stats.loglaplace

scipy.stats.loglaplace = <scipy.stats._continuous_distns.loglaplace_gen object>

一个对数拉普拉斯连续随机变量。

作为 rv_continuous 类的一个实例,loglaplace 对象从中继承了一系列通用方法(请参阅下面的完整列表),并使用特定于此特定分布的详细信息补充它们。

注意事项

对于 loglaplace 的概率密度函数为:

[\begin{split}f(x, c) = \begin{cases}\frac{c}{2} x^{ c-1} &\text{对于 } 0 < x < 1\ \frac{c}{2} x^{-c-1} &\text{对于 } x \ge 1 \end{cases}\end{split}]

当 (c > 0)。

loglaplace 以 (c) 作为形状参数。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 locscale 参数。具体而言,loglaplace.pdf(x, c, loc, scale)loglaplace.pdf(y, c) / scale 是等价的,其中 y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。

参考文献

T.J. Kozubowski 和 K. Podgorski,《对数拉普拉斯增长率模型》,《数学科学家》,第 28 卷,第 49-60 页,2003 年。

示例

>>> import numpy as np
>>> from scipy.stats import loglaplace
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> c = 3.25
>>> mean, var, skew, kurt = loglaplace.stats(c, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(loglaplace.ppf(0.01, c),
...                 loglaplace.ppf(0.99, c), 100)
>>> ax.plot(x, loglaplace.pdf(x, c),
...        'r-', lw=5, alpha=0.6, label='loglaplace pdf') 

或者,可以调用分布对象(作为函数)以固定形状、位置和尺度参数。这将返回一个“冻结的”随机变量对象,保持给定的参数不变。

冻结分布并显示冻结的 pdf

>>> rv = loglaplace(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = loglaplace.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], loglaplace.cdf(vals, c))
True 

生成随机数:

>>> r = loglaplace.rvs(c, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-loglaplace-1.png

方法

rvs(c, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, c, loc=0, scale=1)概率密度函数。
logpdf(x, c, loc=0, scale=1)概率密度函数的对数。
cdf(x, c, loc=0, scale=1)累积分布函数。
logcdf(x, c, loc=0, scale=1)累积分布函数的对数。
sf(x, c, loc=0, scale=1)生存函数(也定义为 1 - cdf,但 sf 有时更精确)。
logsf(x, c, loc=0, scale=1)生存函数的对数。
ppf(q, c, loc=0, scale=1)百分位点函数(cdf 的反函数 — 百分位数)。
isf(q, c, loc=0, scale=1)生存函数的反函数(sf 的反函数)。
moment(order, c, loc=0, scale=1)指定阶数的非中心矩。
stats(c, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。
entropy(c, loc=0, scale=1)随机变量的(微分)熵。
fit(data)适用于一般数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(c,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)函数期望值(针对一个参数)与分布相关。
median(c, loc=0, scale=1)分布的中位数。
mean(c, loc=0, scale=1)分布的均值。
var(c, loc=0, scale=1)分布的方差。
std(c, loc=0, scale=1)分布的标准差。
interval(confidence, c, loc=0, scale=1)置信区间,围绕中位数具有相等面积。

scipy.stats.lognorm

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.lognorm.html#scipy.stats.lognorm

scipy.stats.lognorm = <scipy.stats._continuous_distns.lognorm_gen object>

一个对数正态连续随机变量。

作为rv_continuous类的一个实例,lognorm对象从中继承了一组通用方法(请参见下文的完整列表),并使用特定于此特定分布的详细信息完成了它们。

注意

lognorm 的概率密度函数是:

[f(x, s) = \frac{1}{s x \sqrt{2\pi}} \exp\left(-\frac{\log²(x)}{2s²}\right)]

对于(x > 0),(s > 0)。

lognorm 以(s)作为形状参数。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用locscale参数。特别地,lognorm.pdf(x, s, loc, scale)等效于lognorm.pdf(y, s) / scale,其中y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。

假设正态分布随机变量X具有均值mu和标准偏差sigma。那么Y = exp(X)是对数正态分布,其中s = sigmascale = exp(mu)

示例

>>> import numpy as np
>>> from scipy.stats import lognorm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> s = 0.954
>>> mean, var, skew, kurt = lognorm.stats(s, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(lognorm.ppf(0.01, s),
...                 lognorm.ppf(0.99, s), 100)
>>> ax.plot(x, lognorm.pdf(x, s),
...        'r-', lw=5, alpha=0.6, label='lognorm pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中给定的参数被固定。

冻结分布并显示冻结的pdf

>>> rv = lognorm(s)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = lognorm.ppf([0.001, 0.5, 0.999], s)
>>> np.allclose([0.001, 0.5, 0.999], lognorm.cdf(vals, s))
True 

生成随机数:

>>> r = lognorm.rvs(s, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-lognorm-1_00_00.png

对数正态分布随机变量的对数是正态分布的:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy import stats
>>> fig, ax = plt.subplots(1, 1)
>>> mu, sigma = 2, 0.5
>>> X = stats.norm(loc=mu, scale=sigma)
>>> Y = stats.lognorm(s=sigma, scale=np.exp(mu))
>>> x = np.linspace(*X.interval(0.999))
>>> y = Y.rvs(size=10000)
>>> ax.plot(x, X.pdf(x), label='X (pdf)')
>>> ax.hist(np.log(y), density=True, bins=x, label='log(Y) (histogram)')
>>> ax.legend()
>>> plt.show() 

../../_images/scipy-stats-lognorm-1_01_00.png

方法

rvs(s, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, s, loc=0, scale=1)概率密度函数。
logpdf(x, s, loc=0, scale=1)概率密度函数的对数。
cdf(x, s, loc=0, scale=1)累积分布函数。
logcdf(x, s, loc=0, scale=1)累积分布函数的对数。
sf(x, s, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更精确)。
logsf(x, s, loc=0, scale=1)生存函数的对数。
ppf(q, s, loc=0, scale=1)百分位点函数(cdf的反函数 - 百分位数)。
isf(q, s, loc=0, scale=1)逆生存函数(sf的逆函数)。
moment(order, s, loc=0, scale=1)指定阶数的非中心矩。
stats(s, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(s, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参阅 scipy.stats.rv_continuous.fit
**expect(func, args=(s,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)相对于分布的一个参数函数(的)的期望值。
median(s, loc=0, scale=1)分布的中位数。
mean(s, loc=0, scale=1)分布的均值。
var(s, loc=0, scale=1)分布的方差。
std(s, loc=0, scale=1)分布的标准偏差。
interval(confidence, s, loc=0, scale=1)中位数周围具有相等面积的置信区间。

scipy.stats.loguniform

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.loguniform.html#scipy.stats.loguniform

scipy.stats.loguniform = <scipy.stats._continuous_distns.reciprocal_gen object>

一个对数均匀分布或倒数连续随机变量。

作为rv_continuous类的一个实例,loguniform对象继承了一系列通用方法(下面列出了完整列表),并针对这种特定分布增加了细节。

注意

此类的概率密度函数为:

[f(x, a, b) = \frac{1}{x \log(b/a)}]

对于(a \le x \le b),(b > a > 0)。此类使用(a)和(b)作为形状参数。

上面的概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用locscale参数。具体来说,loguniform.pdf(x, a, b, loc, scale)loguniform.pdf(y, a, b) / scale完全等价,其中y = (x - loc) / scale。注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中使用。

示例

>>> import numpy as np
>>> from scipy.stats import loguniform
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个时刻:

>>> a, b = 0.01, 1.25
>>> mean, var, skew, kurt = loguniform.stats(a, b, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(loguniform.ppf(0.01, a, b),
...                 loguniform.ppf(0.99, a, b), 100)
>>> ax.plot(x, loguniform.pdf(x, a, b),
...        'r-', lw=5, alpha=0.6, label='loguniform pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保持给定的参数不变。

冻结分布并显示冻结的pdf

>>> rv = loguniform(a, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = loguniform.ppf([0.001, 0.5, 0.999], a, b)
>>> np.allclose([0.001, 0.5, 0.999], loguniform.cdf(vals, a, b))
True 

生成随机数:

>>> r = loguniform.rvs(a, b, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-loguniform-1_00_00.png

这并不显示0.010.11的相等概率。当 x 轴对数缩放时效果最佳:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
>>> ax.hist(np.log10(r))
>>> ax.set_ylabel("Frequency")
>>> ax.set_xlabel("Value of random variable")
>>> ax.xaxis.set_major_locator(plt.FixedLocator([-2, -1, 0]))
>>> ticks = ["$10^{{ {} }}$".format(i) for i in [-2, -1, 0]]
>>> ax.set_xticklabels(ticks)  
>>> plt.show() 

../../_images/scipy-stats-loguniform-1_01_00.png

不论选择了哪个基数,此随机变量都将是对数均匀分布。让我们改为使用基数2

>>> rvs = loguniform(2**-2, 2**0).rvs(size=1000) 

1/41/21的值在这个随机变量中是等可能的。这是直方图:

>>> fig, ax = plt.subplots(1, 1)
>>> ax.hist(np.log2(rvs))
>>> ax.set_ylabel("Frequency")
>>> ax.set_xlabel("Value of random variable")
>>> ax.xaxis.set_major_locator(plt.FixedLocator([-2, -1, 0]))
>>> ticks = ["$2^{{ {} }}$".format(i) for i in [-2, -1, 0]]
>>> ax.set_xticklabels(ticks)  
>>> plt.show() 

../../_images/scipy-stats-loguniform-1_02_00.png

方法

rvs(a, b, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, a, b, loc=0, scale=1)概率密度函数。
logpdf(x, a, b, loc=0, scale=1)概率密度函数的对数。
cdf(x, a, b, loc=0, scale=1)累积分布函数。
logcdf(x, a, b, loc=0, scale=1)累积分布函数的对数。
sf(x, a, b, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更准确)。
logsf(x, a, b, loc=0, scale=1)生存函数的对数。
ppf(q, a, b, loc=0, scale=1)百分位点函数(cdf 的反函数 — 百分位数)。
isf(q, a, b, loc=0, scale=1)逆生存函数(sf 的反函数)。
moment(order, a, b, loc=0, scale=1)指定阶数的非中心矩。
stats(a, b, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)、及/或峰度(‘k’)。
entropy(a, b, loc=0, scale=1)随机变量的(微分)熵。
fit(data)适用于一般数据的参数估计。详见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。
**expect(func, args=(a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对于分布,函数(一个参数)的期望值。
median(a, b, loc=0, scale=1)分布的中位数。
mean(a, b, loc=0, scale=1)分布的均值。
var(a, b, loc=0, scale=1)分布的方差。
std(a, b, loc=0, scale=1)分布的标准差。
interval(confidence, a, b, loc=0, scale=1)等概率中位数周围的置信区间。

scipy.stats.lomax

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.lomax.html#scipy.stats.lomax

scipy.stats.lomax = <scipy.stats._continuous_distns.lomax_gen object>

Lomax(第二类 Pareto)连续随机变量。

作为 rv_continuous 类的实例,lomax 对象从中继承了一系列通用方法(下面有完整列表),并为该特定分布完成了具体细节。

注意

lomax 的概率密度函数为:

[f(x, c) = \frac{c}{(1+x)^{c+1}}]

对于 (x \ge 0), (c > 0)。

lomax 以参数 c 作为形状参数。

lomax 是具有 loc=-1.0pareto 的特例。

上述概率密度在“标准化”形式中定义。使用 locscale 参数进行移位和/或缩放分布。具体来说,lomax.pdf(x, c, loc, scale)y = (x - loc) / scale 中的 lomax.pdf(y, c) / scale 是完全等价的。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。

示例

>>> import numpy as np
>>> from scipy.stats import lomax
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> c = 1.88
>>> mean, var, skew, kurt = lomax.stats(c, moments='mvsk') 

显示概率密度函数 (pdf):

>>> x = np.linspace(lomax.ppf(0.01, c),
...                 lomax.ppf(0.99, c), 100)
>>> ax.plot(x, lomax.pdf(x, c),
...        'r-', lw=5, alpha=0.6, label='lomax pdf') 

或者,可以调用(作为函数)分布对象来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中包含给定的固定参数。

冻结分布并显示冻结的 pdf

>>> rv = lomax(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = lomax.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], lomax.cdf(vals, c))
True 

生成随机数:

>>> r = lomax.rvs(c, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-lomax-1.png

方法

- rvs(c, loc=0, scale=1, size=1, random_state=None) 随机变量。
- pdf(x, c, loc=0, scale=1) 概率密度函数。
- logpdf(x, c, loc=0, scale=1) 概率密度函数的对数。
- cdf(x, c, loc=0, scale=1) 累积分布函数。
- logcdf(x, c, loc=0, scale=1) 累积分布函数的对数。
- sf(x, c, loc=0, scale=1) 生存函数(也定义为 1 - cdf,但 sf 有时更准确)。
- logsf(x, c, loc=0, scale=1) 生存函数的对数。
- ppf(q, c, loc=0, scale=1) 百分点函数(cdf 的逆函数 — 百分位数)。
- isf(q, c, loc=0, scale=1) 逆生存函数(sf 的逆函数)。
- moment(order, c, loc=0, scale=1) 指定顺序的非中心矩。
- stats(c, loc=0, scale=1, moments=’mv’) 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(c, loc=0, scale=1)随机变量的(微分)熵。
fit(data)一般数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(c,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对分布的函数(一个参数)的期望值。
median(c, loc=0, scale=1)分布的中位数。
mean(c, loc=0, scale=1)分布的平均值。
var(c, loc=0, scale=1)分布的方差。
std(c, loc=0, scale=1)分布的标准差。
interval(confidence, c, loc=0, scale=1)置信区间,围绕中位数有相等的区域。

scipy.stats.maxwell

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.maxwell.html#scipy.stats.maxwell

scipy.stats.maxwell = <scipy.stats._continuous_distns.maxwell_gen object>

Maxwell 连续随机变量。

作为 rv_continuous 类的实例,maxwell 对象继承了一组通用方法(请参阅下文的完整列表),并提供了特定于此特定分布的详细信息。

注释

一个特例是 chi 分布,其中 df=3loc=0.0,给定的 scale = a,其中 a 是数学界描述中使用的参数 [1]

maxwell 的概率密度函数如下:

[f(x) = \sqrt{2/\pi}x² \exp(-x²/2)]

对于 (x \geq 0)。

上述的概率密度定义为“标准化”形式。要移动和/或缩放分布,请使用 locscale 参数。具体地说,maxwell.pdf(x, loc, scale) 等同于 maxwell.pdf(y) / scale,其中 y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。

参考文献

[1]

mathworld.wolfram.com/MaxwellDistribution.html

例子

>>> import numpy as np
>>> from scipy.stats import maxwell
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四阶矩:

>>> mean, var, skew, kurt = maxwell.stats(moments='mvsk') 

显示概率密度函数 (pdf):

>>> x = np.linspace(maxwell.ppf(0.01),
...                 maxwell.ppf(0.99), 100)
>>> ax.plot(x, maxwell.pdf(x),
...        'r-', lw=5, alpha=0.6, label='maxwell pdf') 

或者,可以调用分布对象(作为函数),以固定形状、位置和尺度参数。这将返回一个固定给定参数的“冻结”随机变量对象。

冻结分布并显示冻结的 pdf

>>> rv = maxwell()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = maxwell.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], maxwell.cdf(vals))
True 

生成随机数:

>>> r = maxwell.rvs(size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-maxwell-1.png

方法

rvs(loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, loc=0, scale=1)概率密度函数。
logpdf(x, loc=0, scale=1)概率密度函数的对数。
cdf(x, loc=0, scale=1)累积分布函数。
logcdf(x, loc=0, scale=1)累积分布函数的对数。
sf(x, loc=0, scale=1)生存函数(也定义为 1 - cdf,但 sf 有时更准确)。
logsf(x, loc=0, scale=1)生存函数的对数。
ppf(q, loc=0, scale=1)百分位点函数(cdf 的逆 — 百分位数)。
isf(q, loc=0, scale=1)逆生存函数(sf 的逆)。
moment(order, loc=0, scale=1)指定阶数的非中心矩。
stats(loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(loc=0, scale=1)随机变量的(微分)熵。
fit(data)适用于通用数据的参数估计。详见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。
**expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对于分布的一个函数(一个参数)的期望值。
median(loc=0, scale=1)分布的中位数。
mean(loc=0, scale=1)分布的均值。
var(loc=0, scale=1)分布的方差。
std(loc=0, scale=1)分布的标准差。
interval(confidence, loc=0, scale=1)置信区间,围绕中位数等面积分布的区间。

scipy.stats.mielke

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.mielke.html#scipy.stats.mielke

scipy.stats.mielke = <scipy.stats._continuous_distns.mielke_gen object>

Mielke Beta-Kappa / Dagum 连续随机变量。

作为rv_continuous类的一个实例,mielke对象继承了一系列通用方法(下面有完整列表),并且用特定于此特定分布的细节补充了它们。

注意事项

mielke的概率密度函数为:

[f(x, k, s) = \frac{k x^{k-1}}{(1+x^s)^{1+k/s}}]

对于(x > 0)和(k, s > 0)。该分布有时称为 Dagum 分布([2])。它在[3]中已经定义,称为 Burr Type III 分布(burr具有参数c=sd=k/s)。

mielkeks作为形状参数。

上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用locscale参数。具体地,mielke.pdf(x, k, s, loc, scale)y = (x - loc) / scalemielke.pdf(y, k, s) / scale是完全等价的。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。

参考文献

[1]

Mielke, P.W., 1973 “Another Family of Distributions for Describing and Analyzing Precipitation Data.” J. Appl. Meteor., 12, 275-280

[2]

Dagum, C., 1977 “A new model for personal income distribution.” Economie Appliquee, 33, 327-367.

[3]

Burr, I. W. “Cumulative frequency functions”, Annals of Mathematical Statistics, 13(2), pp 215-232 (1942).

示例

>>> import numpy as np
>>> from scipy.stats import mielke
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> k, s = 10.4, 4.6
>>> mean, var, skew, kurt = mielke.stats(k, s, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(mielke.ppf(0.01, k, s),
...                 mielke.ppf(0.99, k, s), 100)
>>> ax.plot(x, mielke.pdf(x, k, s),
...        'r-', lw=5, alpha=0.6, label='mielke pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这会返回一个“冻结”的随机变量对象,保持给定参数不变。

冻结分布并显示冻结的pdf

>>> rv = mielke(k, s)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = mielke.ppf([0.001, 0.5, 0.999], k, s)
>>> np.allclose([0.001, 0.5, 0.999], mielke.cdf(vals, k, s))
True 

生成随机数:

>>> r = mielke.rvs(k, s, size=1000) 

并且比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-mielke-1.png

方法

rvs(k, s, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, k, s, loc=0, scale=1)概率密度函数。
logpdf(x, k, s, loc=0, scale=1)概率密度函数的对数。
cdf(x, k, s, loc=0, scale=1)累积分布函数。
logcdf(x, k, s, loc=0, scale=1)累积分布函数的对数。
sf(x, k, s, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更准确)。
logsf(x, k, s, loc=0, scale=1)生存函数的对数。
ppf(q, k, s, loc=0, scale=1)百分位点函数(cdf的反函数 - 百分位数)。
isf(q, k, s, loc=0, scale=1)逆生存函数(sf的反函数)。
moment(order, k, s, loc=0, scale=1)指定阶数的非中心矩。
stats(k, s, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(k, s, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参阅scipy.stats.rv_continuous.fit
**expect(func, args=(k, s), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)相对于分布的函数(一个参数的)的期望值。
median(k, s, loc=0, scale=1)分布的中位数。
mean(k, s, loc=0, scale=1)分布的均值。
var(k, s, loc=0, scale=1)分布的方差。
std(k, s, loc=0, scale=1)分布的标准差。
interval(confidence, k, s, loc=0, scale=1)中位数周围面积相等的置信区间。

scipy.stats.moyal

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.moyal.html#scipy.stats.moyal

scipy.stats.moyal = <scipy.stats._continuous_distns.moyal_gen object>

一个 Moyal 连续随机变量。

作为 rv_continuous 类的一个实例,moyal 对象继承了它的一组通用方法(详见下文的完整列表),并用于完成特定于此特定分布的详细信息。

注释

moyal 的概率密度函数为:

[f(x) = \exp(-(x + \exp(-x))/2) / \sqrt{2\pi}]

对于实数 (x)。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 locscale 参数。具体来说,moyal.pdf(x, loc, scale)moyal.pdf(y) / scale 完全等价,其中 y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。

该分布在高能物理和辐射检测中很有用。它描述了由于介质电离而导致的带电相对论粒子的能量损失 [1]。它还为 Landau 分布提供了一个近似。有关详细描述,请参见 [2]。有关其他描述,请参见 [3]

参考文献

[1]

J.E. Moyal,“XXX. Theory of ionization fluctuations”,《伦敦、爱丁堡和都柏林哲学杂志与科学期刊》,第 46 卷,263-280,(1955)。DOI:10.1080/14786440308521076 (需付费获取)

[2]

G. Cordeiro 等人,“The beta Moyal: a useful skew distribution”,《国际研究与评论应用科学期刊》,第 10 卷,171-192,(2012)。www.arpapress.com/Volumes/Vol10Issue2/IJRRAS_10_2_02.pdf

[3]

C. Walck,“实验者统计分布手册;国际报告 SUF-PFY/96-01”,第二十六章,斯德哥尔摩大学:瑞典斯德哥尔摩,(2007)。www.stat.rice.edu/~dobelman/textfiles/DistributionsHandbook.pdf

1.1.0 版的新功能。

示例

>>> import numpy as np
>>> from scipy.stats import moyal
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> mean, var, skew, kurt = moyal.stats(moments='mvsk') 

显示概率密度函数 (pdf):

>>> x = np.linspace(moyal.ppf(0.01),
...                 moyal.ppf(0.99), 100)
>>> ax.plot(x, moyal.pdf(x),
...        'r-', lw=5, alpha=0.6, label='moyal pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保持给定参数不变。

冻结分布并显示冻结的 pdf

>>> rv = moyal()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = moyal.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], moyal.cdf(vals))
True 

生成随机数:

>>> r = moyal.rvs(size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-moyal-1.png

Methods

rvs(loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, loc=0, scale=1)概率密度函数。
logpdf(x, loc=0, scale=1)概率密度函数的对数。
cdf(x, loc=0, scale=1)累积分布函数。
logcdf(x, loc=0, scale=1)累积分布函数的对数。
sf(x, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更精确)。
logsf(x, loc=0, scale=1)生存函数的对数。
ppf(q, loc=0, scale=1)百分位点函数(cdf的逆 — 百分位数)。
isf(q, loc=0, scale=1)逆生存函数(sf的逆)。
moment(order, loc=0, scale=1)指定阶数的非中心矩。
stats(loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。
entropy(loc=0, scale=1)随机变量的(微分)熵。
fit(data)用于一般数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)期望值函数(一个参数的)关于分布的期望值。
median(loc=0, scale=1)分布的中位数。
mean(loc=0, scale=1)分布的均值。
var(loc=0, scale=1)分布的方差。
std(loc=0, scale=1)分布的标准差。
interval(confidence, loc=0, scale=1)等面积置信区间围绕中位数。

scipy.stats.nakagami

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.nakagami.html#scipy.stats.nakagami

scipy.stats.nakagami = <scipy.stats._continuous_distns.nakagami_gen object>

一个 Nakagami 连续随机变量。

作为 rv_continuous 类的一个实例,nakagami 对象继承了一组通用方法(请参阅下文的完整列表),并以此特定分布的详细信息进行了补充。

注释

nakagami 的概率密度函数为:

[f(x, \nu) = \frac{2 \nu^\nu}{\Gamma(\nu)} x^{2\nu-1} \exp(-\nu x²)]

对于 (x \geq 0), (\nu > 0)。该分布是在 [2] 中引入的,详细信息请参见 [1]。

nakagaminu 作为形状参数对 (\nu) 进行定义。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 locscale 参数。具体而言,nakagami.pdf(x, nu, loc, scale)nakagami.pdf(y, nu) / scale 等效,其中 y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中使用。

参考资料

[1]

“Nakagami 分布”, 维基百科 en.wikipedia.org/wiki/Nakagami_distribution

[2]

M. Nakagami, “The m-distribution - A general formula of intensity distribution of rapid fading”, Statistical methods in radio wave propagation, Pergamon Press, 1960, 3-36. DOI:10.1016/B978-0-08-009306-2.50005-4

示例

>>> import numpy as np
>>> from scipy.stats import nakagami
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> nu = 4.97
>>> mean, var, skew, kurt = nakagami.stats(nu, moments='mvsk') 

显示概率密度函数 (pdf):

>>> x = np.linspace(nakagami.ppf(0.01, nu),
...                 nakagami.ppf(0.99, nu), 100)
>>> ax.plot(x, nakagami.pdf(x, nu),
...        'r-', lw=5, alpha=0.6, label='nakagami pdf') 

或者,可以通过调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中包含给定的固定参数。

冻结分布并显示冻结的 pdf

>>> rv = nakagami(nu)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = nakagami.ppf([0.001, 0.5, 0.999], nu)
>>> np.allclose([0.001, 0.5, 0.999], nakagami.cdf(vals, nu))
True 

生成随机数:

>>> r = nakagami.rvs(nu, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-nakagami-1.png

方法

rvs(nu, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, nu, loc=0, scale=1)概率密度函数。
logpdf(x, nu, loc=0, scale=1)概率密度函数的对数。
cdf(x, nu, loc=0, scale=1)累积分布函数。
logcdf(x, nu, loc=0, scale=1)累积分布函数的对数。
sf(x, nu, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更精确)。
logsf(x, nu, loc=0, scale=1)生存函数的对数。
ppf(q, nu, loc=0, scale=1)百分位点函数(cdf的反函数 — 百分位数)。
isf(q, nu, loc=0, scale=1)逆生存函数(sf的反函数)。
moment(order, nu, loc=0, scale=1)指定阶数的非中心矩。
stats(nu, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(nu, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(nu,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)函数(一元)关于分布的期望值。
median(nu, loc=0, scale=1)分布的中位数。
mean(nu, loc=0, scale=1)分布的均值。
var(nu, loc=0, scale=1)分布的方差。
std(nu, loc=0, scale=1)分布的标准差。
interval(confidence, nu, loc=0, scale=1)等面积置信区间,围绕中位数。

scipy.stats.ncx2

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.ncx2.html#scipy.stats.ncx2

scipy.stats.ncx2 = <scipy.stats._continuous_distns.ncx2_gen object>

非中心卡方连续随机变量。

作为 rv_continuous 类的实例,ncx2 对象继承了一组通用方法(下面列出了完整列表),并使用特定于此特定分布的详细信息来完成它们。

注意

ncx2 的概率密度函数为:

[f(x, k, \lambda) = \frac{1}{2} \exp(-(\lambda+x)/2) (x/\lambda)^{(k-2)/4} I_{(k-2)/2}(\sqrt{\lambda x})]

对于 (x \geq 0), (k > 0) 和 (\lambda \geq 0)。 (k) 指定自由度(在实现中称为 df),(\lambda) 是非中心参数(在实现中称为 nc)。 (I_\nu) 表示一阶修正贝塞尔函数的阶数为 (\nu)(scipy.special.iv)。

ncx2 接受 dfnc 作为形状参数。

上述概率密度定义为“标准化”形式。要移动和/或缩放分布,请使用 locscale 参数。具体来说,ncx2.pdf(x, df, nc, loc, scale)ncx2.pdf(y, df, nc) / scale 等效,其中 y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心泛化是在单独的类中提供的。

示例

>>> import numpy as np
>>> from scipy.stats import ncx2
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> df, nc = 21, 1.06
>>> mean, var, skew, kurt = ncx2.stats(df, nc, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(ncx2.ppf(0.01, df, nc),
...                 ncx2.ppf(0.99, df, nc), 100)
>>> ax.plot(x, ncx2.pdf(x, df, nc),
...        'r-', lw=5, alpha=0.6, label='ncx2 pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定参数被固定。

冻结分布并显示冻结的 pdf

>>> rv = ncx2(df, nc)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = ncx2.ppf([0.001, 0.5, 0.999], df, nc)
>>> np.allclose([0.001, 0.5, 0.999], ncx2.cdf(vals, df, nc))
True 

生成随机数:

>>> r = ncx2.rvs(df, nc, size=1000) 

然后比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-ncx2-1.png

方法

rvs(df, nc, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, df, nc, loc=0, scale=1)概率密度函数。
logpdf(x, df, nc, loc=0, scale=1)概率密度函数的对数。
cdf(x, df, nc, loc=0, scale=1)累积分布函数。
logcdf(x, df, nc, loc=0, scale=1)累积分布函数的对数。
sf(x, df, nc, loc=0, scale=1)生存函数(也定义为 1 - cdf,但 sf 有时更准确)。
logsf(x, df, nc, loc=0, scale=1)生存函数的对数。
ppf(q, df, nc, loc=0, scale=1)百分位点函数(cdf 的反函数 — 百分位数)。
isf(q, df, nc, loc=0, scale=1)逆生存函数(sf的逆函数)。
moment(order, df, nc, loc=0, scale=1)指定阶数的非中心矩。
stats(df, nc, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)、以及/或者峰度(‘k’)。
entropy(df, nc, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参阅scipy.stats.rv_continuous.fit
**expect(func, args=(df, nc), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)相对于分布的函数(一维参数)的期望值。
median(df, nc, loc=0, scale=1)分布的中位数。
mean(df, nc, loc=0, scale=1)分布的均值。
var(df, nc, loc=0, scale=1)分布的方差。
std(df, nc, loc=0, scale=1)分布的标准差。
interval(confidence, df, nc, loc=0, scale=1)置信区间,围绕中位数具有相等的面积。

scipy.stats.ncf

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.ncf.html#scipy.stats.ncf

scipy.stats.ncf = <scipy.stats._continuous_distns.ncf_gen object>

非中心 F 分布连续随机变量。

作为rv_continuous类的一个实例,ncf 对象继承了一系列通用方法(下面列出完整列表),并以特定于这个特定分布的细节完善了它们。

另请参阅

scipy.stats.f

Fisher 分布

注释

ncf 的概率密度函数为:

[\begin{split}f(x, n_1, n_2, \lambda) = \exp\left(\frac{\lambda}{2} + \lambda n_1 \frac{x}{2(n_1 x + n_2)} \right) n_1^{n_1/2} n_2^{n_2/2} x^{n_1/2 - 1} \ (n_2 + n_1 x)^{-(n_1 + n_2)/2} \gamma(n_1/2) \gamma(1 + n_2/2) \ \frac{L^{\frac{n_1}{2}-1}_{n_2/2} \left(-\lambda n_1 \frac{x}{2(n_1 x + n_2)}\right)} {B(n_1/2, n_2/2) \gamma\left(\frac{n_1 + n_2}{2}\right)}\end{split}]

对于(n_1, n_2 > 0), (\lambda \ge 0). 这里(n_1)是分子自由度,(n_2)是分母自由度,(\lambda)是非心参数,(\gamma)是伽玛函数的对数,(L_n^k)是广义拉盖尔多项式,(B)是贝塔函数。

ncf 接受df1df2nc作为形状参数。如果nc=0,分布将等同于 Fisher 分布。

上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用locscale参数。具体而言,ncf.pdf(x, dfn, dfd, nc, loc, scale)ncf.pdf(y, dfn, dfd, nc) / scale等价,其中y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。

示例

>>> import numpy as np
>>> from scipy.stats import ncf
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> dfn, dfd, nc = 27, 27, 0.416
>>> mean, var, skew, kurt = ncf.stats(dfn, dfd, nc, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(ncf.ppf(0.01, dfn, dfd, nc),
...                 ncf.ppf(0.99, dfn, dfd, nc), 100)
>>> ax.plot(x, ncf.pdf(x, dfn, dfd, nc),
...        'r-', lw=5, alpha=0.6, label='ncf pdf') 

或者,可以调用分布对象(作为函数)以固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定的参数被固定。

冻结分布并显示冻结的pdf

>>> rv = ncf(dfn, dfd, nc)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = ncf.ppf([0.001, 0.5, 0.999], dfn, dfd, nc)
>>> np.allclose([0.001, 0.5, 0.999], ncf.cdf(vals, dfn, dfd, nc))
True 

生成随机数:

>>> r = ncf.rvs(dfn, dfd, nc, size=1000) 

并且比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-ncf-1.png

方法

rvs(dfn, dfd, nc, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, dfn, dfd, nc, loc=0, scale=1)概率密度函数。
logpdf(x, dfn, dfd, nc, loc=0, scale=1)概率密度函数的对数。
cdf(x, dfn, dfd, nc, loc=0, scale=1)累积分布函数。
logcdf(x, dfn, dfd, nc, loc=0, scale=1)累积分布函数的对数。
sf(x, dfn, dfd, nc, loc=0, scale=1)生存函数(也定义为 1 - cdf,但sf有时更准确)。
logsf(x, dfn, dfd, nc, loc=0, scale=1)生存函数的对数。
ppf(q, dfn, dfd, nc, loc=0, scale=1)百分点函数(cdf的逆 — 百分位数)。
isf(q, dfn, dfd, nc, loc=0, scale=1)逆生存函数(sf的逆)。
moment(order, dfn, dfd, nc, loc=0, scale=1)指定阶数的非中心矩。
stats(dfn, dfd, nc, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。
entropy(dfn, dfd, nc, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(dfn, dfd, nc), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对分布的函数(一个参数)的期望值。
median(dfn, dfd, nc, loc=0, scale=1)分布的中位数。
mean(dfn, dfd, nc, loc=0, scale=1)分布的均值。
var(dfn, dfd, nc, loc=0, scale=1)分布的方差。
std(dfn, dfd, nc, loc=0, scale=1)分布的标准差。
interval(confidence, dfn, dfd, nc, loc=0, scale=1)等面积围绕中位数的置信区间。

scipy.stats.nct

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.nct.html#scipy.stats.nct

scipy.stats.nct = <scipy.stats._continuous_distns.nct_gen object>

非中心学生 t 连续随机变量。

作为 rv_continuous 类的一个实例,nct 对象从中继承了一组通用方法(请参阅下面的完整列表),并使用特定于此特定分布的细节完成它们。

注意事项

如果 (Y) 是标准正态随机变量,(V) 是独立的卡方随机变量(chi2)且具有 (k) 自由度,则

[X = \frac{Y + c}{\sqrt{V/k}}]

在实数线上具有非中心学生 t 分布。自由度参数 (k)(在实现中表示为 df)满足 (k > 0),非中心参数 (c)(在实现中表示为 nc)是一个实数。

上述概率密度定义为“标准化”形式。要进行分布的平移和/或缩放,请使用 locscale 参数。具体而言,nct.pdf(x, df, nc, loc, scale)nct.pdf(y, df, nc) / scale 等效,其中 y = (x - loc) / scale。请注意,通过移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广是在单独的类中提供的。

示例

>>> import numpy as np
>>> from scipy.stats import nct
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个时刻:

>>> df, nc = 14, 0.24
>>> mean, var, skew, kurt = nct.stats(df, nc, moments='mvsk') 

显示概率密度函数 (pdf):

>>> x = np.linspace(nct.ppf(0.01, df, nc),
...                 nct.ppf(0.99, df, nc), 100)
>>> ax.plot(x, nct.pdf(x, df, nc),
...        'r-', lw=5, alpha=0.6, label='nct pdf') 

或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中包含给定的固定参数。

冻结分布并显示冻结的 pdf

>>> rv = nct(df, nc)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查 cdfppf 的准确性:

>>> vals = nct.ppf([0.001, 0.5, 0.999], df, nc)
>>> np.allclose([0.001, 0.5, 0.999], nct.cdf(vals, df, nc))
True 

生成随机数:

>>> r = nct.rvs(df, nc, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-nct-1.png

方法

rvs(df, nc, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, df, nc, loc=0, scale=1)概率密度函数。
logpdf(x, df, nc, loc=0, scale=1)概率密度函数的对数。
cdf(x, df, nc, loc=0, scale=1)累积分布函数。
logcdf(x, df, nc, loc=0, scale=1)累积分布函数的对数。
sf(x, df, nc, loc=0, scale=1)生存函数(也定义为 1 - cdf,但 sf 有时更精确)。
logsf(x, df, nc, loc=0, scale=1)生存函数的对数。
ppf(q, df, nc, loc=0, scale=1)百分位点函数(cdf 的反函数 — 百分位数)。
isf(q, df, nc, loc=0, scale=1)逆生存函数(sf 的反函数)。
moment(order, df, nc, loc=0, scale=1)指定阶数的非中心时刻。
stats(df, nc, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(df, nc, loc=0, scale=1)随机变量的(微分)熵。
fit(data)一般数据的参数估计。详细文档参见scipy.stats.rv_continuous.fit
**expect(func, args=(df, nc), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)关于分布的一个参数的函数的期望值。
median(df, nc, loc=0, scale=1)分布的中位数。
mean(df, nc, loc=0, scale=1)分布的均值。
var(df, nc, loc=0, scale=1)分布的方差。
std(df, nc, loc=0, scale=1)分布的标准差。
interval(confidence, df, nc, loc=0, scale=1)中位数周围面积相等的置信区间。

scipy.stats.norm

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.norm.html#scipy.stats.norm

scipy.stats.norm = <scipy.stats._continuous_distns.norm_gen object>

一个正态连续随机变量。

loc关键字指定均值。scale关键字指定标准差。

作为rv_continuous类的一个实例,norm对象继承了一组通用方法(请参阅下面的完整列表),并针对这种特定分布添加了具体的细节。

注意事项

norm的概率密度函数为:

[f(x) = \frac{\exp(-x²/2)}{\sqrt{2\pi}}]

对于实数(x)。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用locscale参数。具体地,norm.pdf(x, loc, scale)norm.pdf(y) / scale完全等价,其中y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心广义化在单独的类中可用。

示例

>>> import numpy as np
>>> from scipy.stats import norm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个时刻:

>>> mean, var, skew, kurt = norm.stats(moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(norm.ppf(0.01),
...                 norm.ppf(0.99), 100)
>>> ax.plot(x, norm.pdf(x),
...        'r-', lw=5, alpha=0.6, label='norm pdf') 

或者,可以将分布对象作为函数调用以固定形状、位置和尺度参数。这将返回一个“冻结”的 RV 对象,固定给定的参数。

冻结分布并显示冻结的pdf

>>> rv = norm()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = norm.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], norm.cdf(vals))
True 

生成随机数:

>>> r = norm.rvs(size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-norm-1.png

方法

rvs(loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, loc=0, scale=1)概率密度函数。
logpdf(x, loc=0, scale=1)概率密度函数的对数。
cdf(x, loc=0, scale=1)累积分布函数。
logcdf(x, loc=0, scale=1)累积分布函数的对数。
sf(x, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更准确)。
logsf(x, loc=0, scale=1)生存函数的对数。
ppf(q, loc=0, scale=1)百分点函数(cdf的逆函数 — 百分位数)。
isf(q, loc=0, scale=1)逆生存函数(sf的逆函数)。
moment(order, loc=0, scale=1)指定顺序的非中心矩。
stats(loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(loc=0, scale=1)RV 的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit
**expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)函数(一元)在分布下的期望值。
median(loc=0, scale=1)分布的中位数。
mean(loc=0, scale=1)分布的均值。
var(loc=0, scale=1)分布的方差。
std(loc=0, scale=1)分布的标准差。
interval(confidence, loc=0, scale=1)中位数周围面积相等的置信区间。

scipy.stats.norminvgauss

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.norminvgauss.html#scipy.stats.norminvgauss

scipy.stats.norminvgauss = <scipy.stats._continuous_distns.norminvgauss_gen object>

一种正态反高斯连续随机变量。

作为 rv_continuous 类的一个实例,norminvgauss 对象从中继承了一组通用方法(详见下文完整列表),并针对这种特定分布提供了具体的细节。

注意事项

norminvgauss 的概率密度函数为:

[f(x, a, b) = \frac{a , K_1(a \sqrt{1 + x²})}{\pi \sqrt{1 + x²}} , \exp(\sqrt{a² - b²} + b x)]

其中 (x) 是实数,参数 (a) 是尾部重的程度,(b) 是满足 (a > 0) 和 (|b| <= a) 的不对称参数。(K_1) 是第二类修正贝塞尔函数(scipy.special.k1)。

上述概率密度函数定义为“标准化”形式。要移动和/或缩放分布,请使用 locscale 参数。具体来说,norminvgauss.pdf(x, a, b, loc, scale) 等同于 norminvgauss.pdf(y, a, b) / scale,其中 y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。

一个具有参数 ab 的正态反高斯随机变量 Y 可以表达为正态均值方差混合:Y = b * V + sqrt(V) * X,其中 Xnorm(0,1)Vinvgauss(mu=1/sqrt(a2 - b2))。此表示用于生成随机变量。

分布的另一个常见参数化(参见[2]中的方程 2.1)可以通过以下概率密度函数表达式给出:

[g(x, \alpha, \beta, \delta, \mu) = \frac{\alpha\delta K_1\left(\alpha\sqrt{\delta² + (x - \mu)²}\right)} {\pi \sqrt{\delta² + (x - \mu)²}} , e^{\delta \sqrt{\alpha² - \beta²} + \beta (x - \mu)}]

在 SciPy 中,这对应于 a = alpha * delta, b = beta * delta, loc = mu, scale=delta

参考文献

[1]

O. Barndorff-Nielsen,《双曲分布和双曲线上的分布》,《斯堪的纳维亚统计学杂志》,第 5 卷(第 3 期),第 151-157 页,1978 年。

[2]

O. Barndorff-Nielsen,《正态反高斯分布和随机波动率建模》,《斯堪的纳维亚统计学杂志》,第 24 卷,第 1-13 页,1997 年。

示例

>>> import numpy as np
>>> from scipy.stats import norminvgauss
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1) 

计算前四个矩:

>>> a, b = 1.25, 0.5
>>> mean, var, skew, kurt = norminvgauss.stats(a, b, moments='mvsk') 

显示概率密度函数(pdf):

>>> x = np.linspace(norminvgauss.ppf(0.01, a, b),
...                 norminvgauss.ppf(0.99, a, b), 100)
>>> ax.plot(x, norminvgauss.pdf(x, a, b),
...        'r-', lw=5, alpha=0.6, label='norminvgauss pdf') 

或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保持给定的参数不变。

冻结分布并显示冻结的pdf

>>> rv = norminvgauss(a, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') 

检查cdfppf的准确性:

>>> vals = norminvgauss.ppf([0.001, 0.5, 0.999], a, b)
>>> np.allclose([0.001, 0.5, 0.999], norminvgauss.cdf(vals, a, b))
True 

生成随机数:

>>> r = norminvgauss.rvs(a, b, size=1000) 

并比较直方图:

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-norminvgauss-1.png

方法

rvs(a, b, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, a, b, loc=0, scale=1)概率密度函数。
logpdf(x, a, b, loc=0, scale=1)概率密度函数的对数。
cdf(x, a, b, loc=0, scale=1)累积分布函数。
logcdf(x, a, b, loc=0, scale=1)累积分布函数的对数。
sf(x, a, b, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更准确)。
logsf(x, a, b, loc=0, scale=1)生存函数的对数。
ppf(q, a, b, loc=0, scale=1)百分点函数(cdf的逆 — 百分位数)。
isf(q, a, b, loc=0, scale=1)逆生存函数(sf的逆)。
moment(order, a, b, loc=0, scale=1)指定阶数的非中心矩。
stats(a, b, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(a, b, loc=0, scale=1)随机变量的(微分)熵。
fit(data)用于通用数据的参数估计。详细文档请参阅 scipy.stats.rv_continuous.fit
**expect(func, args=(a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds)对分布的一个参数的函数的期望值。
median(a, b, loc=0, scale=1)分布的中位数。
mean(a, b, loc=0, scale=1)分布的均值。
var(a, b, loc=0, scale=1)分布的方差。
std(a, b, loc=0, scale=1)分布的标准差。
interval(confidence, a, b, loc=0, scale=1)等面积置信区间的中位数。