SciPy-1-12-中文文档-二十三-

SciPy 1.12 中文文档(二十三)

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

scipy.stats.laplace

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

scipy.stats.laplace = <scipy.stats._continuous_distns.laplace_gen object>

拉普拉斯连续随机变量。

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

注意

laplace的概率密度函数为

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

对于实数 (x)。

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

示例

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

计算前四个时刻:

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

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = laplace.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-laplace-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.laplace_asymmetric

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

scipy.stats.laplace_asymmetric = <scipy.stats._continuous_distns.laplace_asymmetric_gen object>

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

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

另请参见

laplace

拉普拉斯分布

注意

laplace_asymmetric的概率密度函数为

[\begin{split}f(x, \kappa) &= \frac{1}{\kappa+\kappa^{-1}}\exp(-x\kappa),\quad x\ge0\ &= \frac{1}{\kappa+\kappa^{-1}}\exp(x/\kappa),\quad x<0\\end{split}]

对于(-\infty < x < \infty),(\kappa > 0)。

laplace_asymmetrickappa 作为形状参数对(\kappa)进行参数化。对于(\kappa = 1),它与拉普拉斯分布相同。

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

注意一些参考文献的比例参数是 SciPy 的scale的倒数。例如,参数化中的(\lambda = 1/2)相当于使用laplace_asymmetric中的scale = 2

参考文献

[1]

“非对称拉普拉斯分布”,维基百科 en.wikipedia.org/wiki/Asymmetric_Laplace_distribution

[2]

Kozubowski TJ 和 Podgórski K. 拉普拉斯分布的多变量和非对称推广,计算统计学 15, 531–540 (2000)。DOI:10.1007/PL00022717

示例

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

计算前四个矩:

>>> kappa = 2
>>> mean, var, skew, kurt = laplace_asymmetric.stats(kappa, moments='mvsk') 

显示概率密度函数(pdf

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = laplace_asymmetric.rvs(kappa, 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-laplace_asymmetric-1.png

Methods

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

scipy.stats.levy

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

scipy.stats.levy = <scipy.stats._continuous_distns.levy_gen object>

一个 Levy 连续随机变量。

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

另见

levy_stable, levy_l

注记

levy 的概率密度函数为:

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

对于 (x > 0)。

这与 Levy 稳定分布相同,其中 (a=1/2) 和 (b=1)。

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

示例

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

计算前四个矩:

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

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

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

比较直方图:

>>> # manual binning to ignore the tail
>>> bins = np.concatenate((np.linspace(a, b, 20), [np.max(r)]))
>>> 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-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_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 泛化了几个分布。在可能的情况下,应使用它们。特别是当形状参数在下表中的值时,应使用相应的等效分布。

alpha beta 等效
1/2 -1 levy_l
1/2 1 levy
1 0 cauchy
2 any norm (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)
**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+xs)^{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) 等面积置信区间的中位数。

scipy.stats.pareto

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

scipy.stats.pareto = <scipy.stats._continuous_distns.pareto_gen object>

一个帕累托连续随机变量。

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

注意事项

pareto 的概率密度函数为:

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

对于 (x \ge 1), (b > 0)。

paretob 作为形状参数 (b)。

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

示例

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

计算前四个矩:

>>> b = 2.62
>>> mean, var, skew, kurt = pareto.stats(b, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = pareto.rvs(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-pareto-1.png

方法

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

scipy.stats.pearson3

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

scipy.stats.pearson3 = <scipy.stats._continuous_distns.pearson3_gen object>

一个 Pearson Type III 连续随机变量。

作为 rv_continuous 类的一个实例,pearson3 对象继承了一些通用方法(请见下面完整列表),并为这个特定分布提供了详细信息。

注释

pearson3 的概率密度函数为:

[f(x, \kappa) = \frac{|\beta|}{\Gamma(\alpha)} (\beta (x - \zeta))^{\alpha - 1} \exp(-\beta (x - \zeta))]

其中:

[ \begin{align}\begin{aligned}\beta = \frac{2}{\kappa}\\alpha = \beta² = \frac{4}{\kappa²}\\zeta = -\frac{\alpha}{\beta} = -\beta\end{aligned}\end{align} ]

(\Gamma) 函数(scipy.special.gamma 作为形状参数 skew 传递给 pearson3

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

参考文献

R.W. Vogel 和 D.E. McMartin,"Pearson Type 3 分布的概率图拟合和偏斜度估计方法",《水资源研究》, Vol.27, 3149-3158 (1991).

L.R. Salvosa,"Pearson’s Type III 函数表",《数学统计学年鉴》,Vol.1, 191-198 (1930).

"使用现代计算工具将 Pearson Type III 分布拟合到航空载荷数据中",航空研究办公室 (2003).

示例

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

计算前四个矩:

>>> skew = -2
>>> mean, var, skew, kurt = pearson3.stats(skew, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = pearson3.rvs(skew, 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-pearson3-1.png

方法

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

scipy.stats.powerlaw

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

scipy.stats.powerlaw = <scipy.stats._continuous_distns.powerlaw_gen object>

一个幂函数连续随机变量。

作为 rv_continuous 类的一个实例,powerlaw 对象从中继承了一组通用方法(下面详细列出),并针对这种特定分布补充了具体细节。

另请参阅

pareto

注意

powerlaw 的概率密度函数为:

[f(x, a) = a x^{a-1}]

对于 (0 \le x \le 1), (a > 0)。

powerlawa 作为形状参数。

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

例如,powerlaw 的支持可以通过设置 loc=cscale=d 将默认区间 [0, 1] 调整为区间 [c, c+d]。对于具有无限支持的幂律分布,请参见 pareto

powerlaw 是带有 b=1beta 的特殊情况。

示例

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

计算前四个时刻:

>>> a = 0.659
>>> mean, var, skew, kurt = powerlaw.stats(a, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = powerlaw.rvs(a, 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-powerlaw-1.png

方法

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

scipy.stats.powerlognorm

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

scipy.stats.powerlognorm = <scipy.stats._continuous_distns.powerlognorm_gen object>

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

作为rv_continuous类的一个实例,powerlognorm对象继承了一组通用方法(下面有完整列表),并补充了特定于此特定分布的详细信息。

注意事项

powerlognorm的概率密度函数为:

[f(x, c, s) = \frac{c}{x s} \phi(\log(x)/s) (\Phi(-\log(x)/s))^{c-1}]

其中(\phi)是正态概率密度函数,(\Phi)是正态累积分布函数,(x > 0),(s, c > 0)。

powerlognorm采用(c)和(s)作为形状参数。

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

示例

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

计算前四个矩:

>>> c, s = 2.14, 0.446
>>> mean, var, skew, kurt = powerlognorm.stats(c, s, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = powerlognorm.rvs(c, 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-powerlognorm-1.png

方法

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

scipy.stats.powernorm

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

scipy.stats.powernorm = <scipy.stats._continuous_distns.powernorm_gen object>

一个幂正态连续随机变量。

作为rv_continuous类的一个实例,powernorm对象继承了一系列通用方法(请参见下面的完整列表),并通过特定于此特定分布的细节来完成它们。

注意

powernorm的概率密度函数为:

[f(x, c) = c \phi(x) (\Phi(-x))^{c-1}]

其中(\phi)是正态概率密度函数,(\Phi)是正态累积分布函数,(x)是任意实数,(c > 0) [1]

powernorm以形状参数c为(c)。

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

参考资料

[1]

NIST 工程统计手册,第 1.3.6.6.13 节,www.itl.nist.gov/div898/handbook//eda/section3/eda366d.htm

示例

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

计算前四个时刻:

>>> c = 4.45
>>> mean, var, skew, kurt = powernorm.stats(c, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = powernorm.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-powernorm-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.rdist

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

scipy.stats.rdist = <scipy.stats._continuous_distns.rdist_gen object>

一个 R-分布(对称贝塔)的连续随机变量。

作为 rv_continuous 类的一个实例,rdist 对象继承了一组通用方法(下面完整列出),并具有此特定分布的详细信息。

注释

rdist 的概率密度函数为:

[f(x, c) = \frac{(1-x²)^{c/2-1}}{B(1/2, c/2)}]

对于 (-1 \le x \le 1), (c > 0)。rdist 也称为对称贝塔分布:如果 B 服从参数为 (c/2, c/2) 的 beta 分布,则 X = 2*B - 1 服从参数为 c 的 R-分布。

rdistc 作为参数 (c) 的形状参数。

此分布包含以下特殊情况的分布核:

c = 2:  uniform
c = 3:  `semicircular`
c = 4:  Epanechnikov (parabolic)
c = 6:  quartic (biweight)
c = 8:  triweight 

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

示例

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

计算前四个时刻:

>>> c = 1.6
>>> mean, var, skew, kurt = rdist.stats(c, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = rdist.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-rdist-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.rayleigh

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

scipy.stats.rayleigh = <scipy.stats._continuous_distns.rayleigh_gen object>

一个雷利连续随机变量。

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

注意

对于 rayleigh 的概率密度函数如下:

[f(x) = x \exp(-x²/2)]

对于 (x \ge 0)。

rayleigh 是带有 df=2chi 的特殊情况。

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

示例

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

计算前四阶矩:

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

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = rayleigh.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-rayleigh-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.rel_breitwigner

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

scipy.stats.rel_breitwigner = <scipy.stats._continuous_distns.rel_breitwigner_gen object>

一个相对论性的布莱特-温纳随机变量。

作为 rv_continuous 类的一个实例,rel_breitwigner 对象继承了一系列通用方法(下面详细列出),并通过具体细节完善了这些方法,以适应这一特定分布。

参见

cauchy

柯西分布,也称为布莱特-温纳分布。

注释

rel_breitwigner 的概率密度函数为

[f(x, \rho) = \frac{k}{(x² - \rho²)² + \rho²}]

其中

[k = \frac{2\sqrt{2}\rho²\sqrt{\rho² + 1}} {\pi\sqrt{\rho² + \rho\sqrt{\rho² + 1}}}]

相对论布莱特-温纳分布用于模拟高能物理中的共振态 [1]。它提供了不变质量 (M) 的不确定性 [2],其中具有特征质量 (M_0) 和衰减宽度 (\Gamma) 的共振。在 SciPy 的参数化中,形状参数 (\rho) 等于 (M_0/\Gamma),并且取值在 ((0, \infty)) 之间。

同样,相对论布莱特-温纳分布被认为提供了质心能量 (E_{\text{cm}}) 的不确定性。在自然单位中,光速 (c) 等于 1,不变质量 (M) 等于静止能量 (Mc²)。在质心参考系中,静止能量等于总能量 [3]

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

(\rho = M/\Gamma),其中 (\Gamma) 是尺度参数。例如,如果要模拟 (Z⁰) 玻色子,其 (M_0 \approx 91.1876 \text{ GeV}),(\Gamma \approx 2.4952\text{ GeV}) [4],则可以设置 rho=91.1876/2.4952scale=2.4952

在使用 fit 方法时,为了确保物理上的有意义结果,应将 floc=0 设置为将位置参数固定为 0。

参考文献

[1]

相对论性布莱特-维格纳分布,维基百科,zh.wikipedia.org/wiki/相对论性布莱特-维格纳分布

[2]

不变质量,维基百科,zh.wikipedia.org/wiki/不变质量

[3]

动量中心系,维基百科,zh.wikipedia.org/wiki/动量中心系

[4]

M. Tanabashi et al.(粒子数据组)Phys. Rev. D 98, 030001 - 发表于 2018 年 8 月 17 日

举例:

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

计算前四个矩:

>>> rho = 36.5
>>> mean, var, skew, kurt = rel_breitwigner.stats(rho, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = rel_breitwigner.rvs(rho, 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-rel_breitwigner-1.png

方法:

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

scipy.stats.rice

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

scipy.stats.rice = <scipy.stats._continuous_distns.rice_gen object>

Rice 连续随机变量。

作为rv_continuous类的一个实例,rice对象继承了一组通用方法(下面详细列出),并补充了特定于该分布的细节。

注意事项

rice的概率密度函数为:

[f(x, b) = x \exp(- \frac{x² + b²}{2}) I_0(x b)]

对于(x >= 0),(b > 0)。(I_0)是零阶修正贝塞尔函数(scipy.special.i0)。

rice以形状参数(b)为参数。

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

Rice 分布描述了二维向量长度(r),其分量为((U+u, V+v)),其中(U, V)为常数,(u, v)为独立的标准差为(s)的高斯随机变量。设(R = \sqrt{U² + V²})。那么(r)的概率密度函数为rice.pdf(x, R/s, scale=s)

例子

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

计算前四个矩:

>>> b = 0.775
>>> mean, var, skew, kurt = rice.stats(b, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = rice.rvs(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-rice-1.png

方法

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

scipy.stats.recipinvgauss

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

scipy.stats.recipinvgauss = <scipy.stats._continuous_distns.recipinvgauss_gen object>

一个互逆高斯连续随机变量。

作为 rv_continuous 类的一个实例,recipinvgauss 对象继承了一组通用方法(下面列出了完整列表),并根据这个特定分布的细节完成了它们。

注释

recipinvgauss 的概率密度函数为:

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

对于 (x \ge 0)。

recipinvgaussmu 作为 (\mu) 的形状参数。

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

示例

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

计算前四个矩:

>>> mu = 0.63
>>> mean, var, skew, kurt = recipinvgauss.stats(mu, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = recipinvgauss.rvs(mu, 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-recipinvgauss-1.png

方法

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

scipy.stats.semicircular

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

scipy.stats.semicircular = <scipy.stats._continuous_distns.semicircular_gen object>

半圆形连续随机变量。

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

另请参见

rdist

笔记

semicircular 的概率密度函数为:

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

对于 (-1 \le x \le 1)。

该分布是具有 c = 3rdist 的特例。

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

参考文献

[1]

“维格纳半圆分布”,en.wikipedia.org/wiki/Wigner_semicircle_distribution

示例

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

计算前四个矩:

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

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = semicircular.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-semicircular-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.skewcauchy

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

scipy.stats.skewcauchy = <scipy.stats._continuous_distns.skewcauchy_gen object>

偏斜的柯西随机变量。

作为rv_continuous类的一个实例,skewcauchy对象从中继承了一系列通用方法(下面列出完整列表),并用于特定于该特定分布的详细信息完成它们。

另见

cauchy

柯西分布

Notes

对于skewcauchy的概率密度函数如下:

[f(x) = \frac{1}{\pi \left(\frac{x²}{\left(a, \text{sign}(x) + 1 \right)²} + 1 \right)}]

对于实数( x )和偏斜参数(-1 < a < 1)。

当( a=0 )时,分布简化为通常的柯西分布。

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

参考文献

[1]

“偏斜广义t分布”,维基百科 en.wikipedia.org/wiki/Skewed_generalized_t_distribution#Skewed_Cauchy_distribution

示例

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

计算前四阶矩:

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

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = skewcauchy.rvs(a, 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-skewcauchy-1.png

方法

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

scipy.stats.skewnorm

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

scipy.stats.skewnorm = <scipy.stats._continuous_distns.skewnorm_gen object>

一个偏斜正态随机变量。

作为rv_continuous类的一个实例,skewnorm对象从中继承了一组通用方法(下面有完整列表),并通过特定于这种特定分布的细节来完善它们。

注释

概率密度函数为:

skewnorm.pdf(x, a) = 2 * norm.pdf(x) * norm.cdf(a*x) 

skewnorm 接受一个实数( a )作为偏斜参数。当a = 0时,该分布与正态分布相同(norm)。rvs 实现了[1]的方法。

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

参考文献

[1]

A. Azzalini 和 A. Capitanio(1999)。多变量偏斜正态分布的统计应用。J. Roy. Statist. Soc., B 61, 579-602。arXiv:0911.2093

示例

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

计算前四个矩:

>>> a = 4
>>> mean, var, skew, kurt = skewnorm.stats(a, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = skewnorm.rvs(a, 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-skewnorm-1.png

方法

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

scipy.stats.studentized_range

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

scipy.stats.studentized_range = <scipy.stats._continuous_distns.studentized_range_gen object>

一个学生化范围连续随机变量。

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

另请参见

t

学生 t 分布

注意

studentized_range的概率密度函数为:

[f(x; k, \nu) = \frac{k(k-1)\nu^{\nu/2}}{\Gamma(\nu/2) 2^{\nu/2-1}} \int_{0}^{\infty} \int_{-\infty}^{\infty} s^{\nu} e^{-\nu s²/2} \phi(z) \phi(sx + z) [\Phi(sx + z) - \Phi(z)]^{k-2} ,dz ,ds]

对于(x ≥ 0),(k > 1),和(\nu > 0)。

studentized_range 接受k作为(k)的形状参数,df作为(\nu)的形状参数。

当(\nu)超过 100,000 时,将使用渐近近似(无穷自由度)来计算累积分布函数[4]和概率分布函数。

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

参考文献

[1]

“学生化范围分布”,en.wikipedia.org/wiki/Studentized_range_distribution

[2]

Batista, Ben Dêivide, 等人。“外部学生化正常中程分布。”《科学与农业技术》,第 41 卷,第 4 期,2017 年,第 378-389 页。doi:10.1590/1413-70542017414047716。

[3]

Harter, H. Leon. “Range and Studentized Range 的表格。”《数理统计学年鉴》,第 31 卷,第 4 期,1960 年,第 1122-1147 页。JSTOR,www.jstor.org/stable/2237810. 访问日期:2021 年 2 月 18 日。

[4]

Lund, R. E., 和 J. R. Lund。“算法 AS 190:学生化范围的概率和上分位数。”《皇家统计学会杂志》C 系列(应用统计学),第 32 卷,第 2 期,1983 年,第 204-210 页。JSTOR,www.jstor.org/stable/2347300. 访问日期:2021 年 2 月 18 日。

示例

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

计算前四个矩:

>>> k, df = 3, 10
>>> mean, var, skew, kurt = studentized_range.stats(k, df, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

而不是使用 (studentized_range.rvs) 生成随机变量,对于此分布来说速度非常慢,我们可以使用插值器近似逆 CDF,然后利用这个近似的逆 CDF 进行反变换抽样。

此分布具有无限但很小的右尾,因此我们将注意力集中在最左侧的 99.9%。

>>> a, b = studentized_range.ppf([0, .999], k, df)
>>> a, b
0, 7.41058083802274 
>>> from scipy.interpolate import interp1d
>>> rng = np.random.default_rng()
>>> xs = np.linspace(a, b, 50)
>>> cdf = studentized_range.cdf(xs, k, df)
# Create an interpolant of the inverse CDF
>>> ppf = interp1d(cdf, xs, fill_value='extrapolate')
# Perform inverse transform sampling using the interpolant
>>> r = ppf(rng.uniform(size=1000)) 

并比较直方图:

>>> ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

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

方法

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

scipy.stats.t

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

scipy.stats.t = <scipy.stats._continuous_distns.t_gen object>

A Student’s t 连续随机变量。

对于非中心 t 分布,请参见 nct

作为 rv_continuous 类的一个实例,t 对象继承了一组通用方法(下面详细列出),并以此特定分布的特定细节补充它们。

See also

nct

Notes

t 的概率密度函数为:

[f(x, \nu) = \frac{\Gamma((\nu+1)/2)} {\sqrt{\pi \nu} \Gamma(\nu/2)} (1+x²/\nu)^{-(\nu+1)/2}]

where (x) is a real number and the degrees of freedom parameter (\nu) (denoted df in the implementation) satisfies (\nu > 0). (\Gamma) is the gamma function (scipy.special.gamma).

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

Examples

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

Calculate the first four moments:

>>> df = 2.74
>>> mean, var, skew, kurt = t.stats(df, moments='mvsk') 

Display the probability density function (pdf):

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

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

Freeze the distribution and display the frozen pdf:

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

Check accuracy of cdf and ppf:

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

生成随机数:

>>> r = t.rvs(df, 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-t-1.png

Methods

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

scipy.stats.trapezoid

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

scipy.stats.trapezoid = <scipy.stats._continuous_distns.trapezoid_gen object>

一个梯形连续随机变量。

作为 rv_continuous 类的一个实例,trapezoid 对象继承了一组通用方法(下面列出完整列表),并使用特定于该特定分布的详细信息进行了补充。

注意事项

梯形分布可以用从 loc(loc + c*scale) 的上坡线表示,然后从 (loc + c*scale)(loc + d*scale) 的常数,最后从 (loc + d*scale)(loc+scale) 的下坡线表示。这定义了从 loc(loc+scale) 的梯形基部,以及与基线上的位置比例成正比的从 cd 的平顶部分,其中 0 <= c <= d <= 1。当 c=d 时,这等同于具有相同 locscalec 值的 triang 方法。使用 [1] 中的方法计算矩。

trapezoid的形状参数为 (c) 和 (d)。

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

标准形式位于区间 [0, 1],其中 c 是众数。位置参数将起始位置移动到 loc。比例参数将宽度从 1 改变到 scale

参考文献

[1]

Kacker, R.N. 和 Lawrence, J.F. (2007). 用于标准不确定度类型 B 评估的梯形和三角形分布。Metrologia 44, 117-127. DOI:10.1088/0026-1394/44/2/003

示例

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

计算前四个矩:

>>> c, d = 0.2, 0.8
>>> mean, var, skew, kurt = trapezoid.stats(c, d, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = trapezoid.rvs(c, d, 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-trapezoid-1.png

方法

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

scipy.stats.triang

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

scipy.stats.triang = <scipy.stats._continuous_distns.triang_gen object>

一个三角形连续随机变量。

作为 rv_continuous 类的一个实例,triang 对象继承了一组通用方法(下文列出了全部),并为这个特定分布添加了具体的细节。

注释

三角形分布可以用从 loc(loc + c*scale) 的上斜线表示,然后从 (loc + c*scale)(loc + scale) 的下斜线。

triangc 作为形状参数,范围为 (0 \le c \le 1)。

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

标准形式为 [0, 1] 范围内,c 是众数。位置参数将起始位置移至 loc。尺度参数将宽度从 1 改变至 scale

示例

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

计算前四个矩:

>>> c = 0.158
>>> mean, var, skew, kurt = triang.stats(c, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = triang.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-triang-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.truncexpon

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

scipy.stats.truncexpon = <scipy.stats._continuous_distns.truncexpon_gen object>

截断指数连续随机变量。

作为 rv_continuous 类的实例,truncexpon 对象继承了一组通用方法(下面列出全部方法),并用此特定分布的细节完成它们。

注意事项

truncexpon 的概率密度函数为:

[f(x, b) = \frac{\exp(-x)}{1 - \exp(-b)}]

对于 (0 <= x <= b)。

truncexponb 作为形状参数。

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

示例

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

计算前四个矩:

>>> b = 4.69
>>> mean, var, skew, kurt = truncexpon.stats(b, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = truncexpon.rvs(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-truncexpon-1.png

方法

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

scipy.stats.truncnorm

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

scipy.stats.truncnorm = <scipy.stats._continuous_distns.truncnorm_gen object>

截断正态连续随机变量。

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

Notes

该分布是以loc(默认为 0)为中心的正态分布,标准差为scale(默认为 1),并在距离loc 标准偏差ab处截断。对于任意的locscaleab不是移位和缩放后分布截断的横坐标。

注意

如果a_truncb_trunc是我们希望截断分布的横坐标(而不是从loc测量的标准偏差数),那么我们可以按以下方式计算分布参数ab

a, b = (a_trunc - loc) / scale, (b_trunc - loc) / scale 

这是一个常见的混淆点。为了进一步澄清,请参见下面的示例。

示例

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

计算前四个时刻:

>>> a, b = 0.1, 2
>>> mean, var, skew, kurt = truncnorm.stats(a, b, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = truncnorm.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-truncnorm-1_00_00.png

在上述示例中,loc=0scale=1,因此绘图在左侧截断为a,右侧截断为b。但是,假设我们用loc = 1scale=0.5生成相同的直方图。

>>> loc, scale = 1, 0.5
>>> rv = truncnorm(a, b, loc=loc, scale=scale)
>>> x = np.linspace(truncnorm.ppf(0.01, a, b),
...                 truncnorm.ppf(0.99, a, b), 100)
>>> r = rv.rvs(size=1000) 
>>> fig, ax = plt.subplots(1, 1)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim(a, b)
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

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

注意,分布似乎不再在横坐标ab处截断。这是因为标准正态分布首先在ab处截断,然后将结果分布按scale缩放并按loc移动。如果我们希望移位和缩放后的分布在ab处截断,我们需要在传递这些值作为分布参数之前对这些值进行变换。

>>> a_transformed, b_transformed = (a - loc) / scale, (b - loc) / scale
>>> rv = truncnorm(a_transformed, b_transformed, loc=loc, scale=scale)
>>> x = np.linspace(truncnorm.ppf(0.01, a, b),
...                 truncnorm.ppf(0.99, a, b), 100)
>>> r = rv.rvs(size=10000) 
>>> fig, ax = plt.subplots(1, 1)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim(a-0.1, b+0.1)
>>> ax.legend(loc='best', frameon=False)
>>> plt.show() 

../../_images/scipy-stats-truncnorm-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.truncpareto

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

scipy.stats.truncpareto = <scipy.stats._continuous_distns.truncpareto_gen object>

上截的 Pareto 连续随机变量。

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

另见

pareto

Pareto 分布

注释

truncpareto 的概率密度函数为:

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

对于 (b > 0), (c > 1) 和 (1 \le x \le c)。

truncparetobc 作为形状参数定义了 (b) 和 (c)。

注意,上截值 (c) 的定义采用标准化形式,以确保未缩放、未移位的随机值位于 [1, c] 的范围内。如果 u_r 是缩放和/或移位变量的上界,则 c = (u_r - loc) / scale。换句话说,当提供 scale 和/或 loc 参数时,分布的支持区间变为 (scale + loc) <= x <= (c*scale + loc)

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

参考文献

[1]

Burroughs, S. M., and Tebbens S. F. “Upper-truncated power laws in natural systems.” Pure and Applied Geophysics 158.4 (2001): 741-757.

示例

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

计算前四个时刻:

>>> b, c = 2, 5
>>> mean, var, skew, kurt = truncpareto.stats(b, c, moments='mvsk') 

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = truncpareto.rvs(b, 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-truncpareto-1.png

方法

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

scipy.stats.truncweibull_min

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

scipy.stats.truncweibull_min = <scipy.stats._continuous_distns.truncweibull_min_gen object>

一个双截断的 Weibull 最小连续随机变量。

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

另请参阅

weibull_mintruncexpon

注意事项

truncweibull_min的概率密度函数为:

[f(x, a, b, c) = \frac{c x^{c-1} \exp(-xc)}{\exp(-ac) - \exp(-b^c)}]

对于(a < x <= b),(0 \le a < b)且(c > 0)。

truncweibull_min 以(a)、(b)和(c)作为形状参数。

注意,截断值(a)和(b)以标准化形式定义:

[a = (u_l - loc)/scale b = (u_r - loc)/scale]

其中(u_l)和(u_r)是特定的左右截断值。换句话说,当提供(loc)和/或(scale)时,分布的支持变为((ascale + loc) < x <= (bscale + loc))。

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

参考文献

[1]

Rinne, H. “The Weibull Distribution: A Handbook”. CRC Press (2009).

示例

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

计算前四个矩:

>>> c, a, b = 2.5, 0.25, 1.75
>>> mean, var, skew, kurt = truncweibull_min.stats(c, a, b, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查cdfppf的准确性:

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

生成随机数:

>>> r = truncweibull_min.rvs(c, 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-truncweibull_min-1.png

方法

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

scipy.stats.tukeylambda

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

scipy.stats.tukeylambda = <scipy.stats._continuous_distns.tukeylambda_gen object>

一个 Tukey-Lambda 连续随机变量。

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

注意

一种灵活的分布,能够表示和插值以下分布之间的关系:

  • 柯西分布((\lambda = -1))

  • 逻辑分布((\lambda = 0))

  • 大约正态((\lambda = 0.14))

  • 从 -1 到 1 的均匀分布((\lambda = 1))

tukeylambda 接受一个实数 (\lambda)(在实现中表示为 lam)作为形状参数。

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

示例

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

计算前四个时刻:

>>> lam = 3.13
>>> mean, var, skew, kurt = tukeylambda.stats(lam, moments='mvsk') 

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

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

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

冻结分布并显示冻结的pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = tukeylambda.rvs(lam, 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-tukeylambda-1.png

方法

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

scipy.stats.uniform

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

scipy.stats.uniform = <scipy.stats._continuous_distns.uniform_gen object>

一个均匀连续随机变量。

在标准形式中,分布在 [0, 1] 上是均匀的。使用参数 locscale,可以获得在 [loc, loc + scale] 上的均匀分布。

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

示例

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

计算前四个时刻:

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

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

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

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

冻结分布并显示冻结的 pdf

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

检查 cdfppf 的准确性:

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

生成随机数:

>>> r = uniform.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-uniform-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) 置信区间,围绕中位数具有相等面积。
posted @ 2024-06-27 17:06  绝不原创的飞龙  阅读(4)  评论(0编辑  收藏  举报