SciPy 1.12 中文文档(五十六)

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

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法:

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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() 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

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)围绕中位数的等面积置信区间。
         truncexpon.ppf(0.99, b), 100)

ax.plot(x, truncexpon.pdf(x, b),
… ‘r-’, lw=5, alpha=0.6, label=‘truncexpon pdf’)


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

冻结分布并显示冻结的 `pdf`:

```py
>>> 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() 

[外链图片转存中…(img-4yD3JGMH-1719715387565)]

方法

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)围绕中位数的等面积置信区间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值