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)。
pareto
将 b
作为形状参数 (b)。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,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')
检查 cdf
和 ppf
的准确性:
>>> 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
。
上述概率密度在 “标准化” 形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,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')
检查 cdf
和 ppf
的准确性:
>>> 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)。
powerlaw
以 a
作为形状参数。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,powerlaw.pdf(x, a, loc, scale)
与 powerlaw.pdf(y, a) / scale
是等价的,其中 y = (x - loc) / scale
。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
例如,powerlaw
的支持可以通过设置 loc=c
和 scale=d
将默认区间 [0, 1]
调整为区间 [c, c+d]
。对于具有无限支持的幂律分布,请参见 pareto
。
powerlaw
是带有 b=1
的 beta
的特殊情况。
示例
>>> 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')
检查 cdf
和 ppf
的准确性:
>>> 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
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)作为形状参数。
上述的概率密度函数定义为“标准化”形式。使用loc
和scale
参数来进行分布的移位和/或缩放。具体来说,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')
检查cdf
和ppf
的准确性:
>>> 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)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,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')
检查cdf
和ppf
的准确性:
>>> 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-分布。
rdist
将 c
作为参数 (c) 的形状参数。
此分布包含以下特殊情况的分布核:
c = 2: uniform
c = 3: `semicircular`
c = 4: Epanechnikov (parabolic)
c = 6: quartic (biweight)
c = 8: triweight
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体来说,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')
检查 cdf
和 ppf
的准确性:
>>> 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=2
的chi
的特殊情况。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,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')
检查 cdf
和 ppf
的准确性:
>>> 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
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]。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体来说,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.4952
和 scale=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')
检查cdf
和ppf
的准确性:
>>> 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)为参数。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,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')
检查cdf
和ppf
的准确性:
>>> 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
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)。
recipinvgauss
将 mu
作为 (\mu) 的形状参数。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,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')
检查 cdf
和 ppf
的准确性:
>>> 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
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 = 3 的 rdist
的特例。
上述概率密度在“标准化”形式中定义。 要移动和/或缩放分布,请使用 loc
和 scale
参数。 具体来说,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')
检查 cdf
和 ppf
的准确性:
>>> 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
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 )时,分布简化为通常的柯西分布。
上述概率密度以“标准化”形式定义。要进行平移和/或缩放分布,请使用loc
和scale
参数。具体来说,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')
检查cdf
和ppf
的准确性:
>>> 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]的方法。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体来说,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')
检查cdf
和ppf
的准确性:
>>> 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
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]和概率分布函数。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,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')
检查 cdf
和 ppf
的准确性:
>>> 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
).
上述概率密度定义为“标准化”形式。使用 loc
和 scale
参数进行移位和/或缩放分布。具体来说,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)
的梯形基部,以及与基线上的位置比例成正比的从 c
到 d
的平顶部分,其中 0 <= c <= d <= 1
。当 c=d
时,这等同于具有相同 loc、scale 和 c 值的 triang
方法。使用 [1] 中的方法计算矩。
trapezoid
的形状参数为 (c) 和 (d)。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,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')
检查 cdf
和 ppf
的准确性:
>>> 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)
的下斜线。
triang
将 c
作为形状参数,范围为 (0 \le c \le 1)。
上述概率密度在“标准化”形式中定义。使用 loc
和 scale
参数来进行分布的移动和/或缩放。具体来说,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')
检查 cdf
和 ppf
的准确性:
>>> 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
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)。
truncexpon
以 b
作为形状参数。
上述概率密度函数以“标准化”形式定义。要移位和/或缩放分布,请使用 loc
和 scale
参数。具体而言,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')
检查cdf
和ppf
的准确性:
>>> 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')
检查cdf
和ppf
的准确性:
>>> 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) | 围绕中位数的等面积置信区间。 |