SciPy 1.12 中文文档(五十四)
scipy.stats.halflogistic
scipy.stats.halflogistic = <scipy.stats._continuous_distns.halflogistic_gen object>
一个半对数连续随机变量。
作为rv_continuous类的一个实例,halflogistic对象从中继承了一些通用方法(请参阅下面的完整列表),并以特定于这种特定分布的详细信息补充它们。
注意
halflogistic 的概率密度函数是:
[f(x) = \frac{ 2 e^{-x} }{ (1+e^{-x})² } = \frac{1}{2} \text{sech}(x/2)²]
对于 (x \ge 0)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc 和 scale 参数。具体来说,halflogistic.pdf(x, loc, scale) 等同于 halflogistic.pdf(y) / scale,其中 y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
参考文献
[1]
Asgharzadeh 等人(2011 年)。《半对数分布估计方法的比较》。Selcuk J. Appl. Math. 93-108。
示例
>>> import numpy as np
>>> from scipy.stats import halflogistic
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mean, var, skew, kurt = halflogistic.stats(moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(halflogistic.ppf(0.01),
... halflogistic.ppf(0.99), 100)
>>> ax.plot(x, halflogistic.pdf(x),
... 'r-', lw=5, alpha=0.6, label='halflogistic pdf')
或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中包含给定的固定参数。
冻结分布并显示冻结的 pdf:
>>> rv = halflogistic()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = halflogistic.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], halflogistic.cdf(vals))
True
生成随机数:
>>> r = halflogistic.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.halfnorm
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.halfnorm.html#scipy.stats.halfnorm
scipy.stats.halfnorm = <scipy.stats._continuous_distns.halfnorm_gen object>
半正态连续随机变量。
作为rv_continuous类的一个实例,halfnorm对象继承了一组通用方法(下面列出了完整列表),并且针对这个特定分布提供了具体的细节。
注意
halfnorm的概率密度函数为:
[ f(x) = \sqrt{2/\pi} \exp(-x² / 2) ]
对于( x \geq 0 )。
halfnorm是带有df=1的chi的特例。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc和scale参数。具体地,halfnorm.pdf(x, loc, scale)等价于halfnorm.pdf(y) / scale,其中y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import halfnorm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mean, var, skew, kurt = halfnorm.stats(moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(halfnorm.ppf(0.01),
... halfnorm.ppf(0.99), 100)
>>> ax.plot(x, halfnorm.pdf(x),
... 'r-', lw=5, alpha=0.6, label='halfnorm pdf')
或者,可以调用分布对象(作为函数)以固定形状、位置和缩放参数。这将返回一个“冻结”的 RV 对象,保持给定参数不变。
冻结分布并显示冻结的pdf:
>>> rv = halfnorm()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = halfnorm.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], halfnorm.cdf(vals))
True
生成随机数:
>>> r = halfnorm.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) | RV 的(微分)熵。 |
| fit(data) | 适用于一般数据的参数估计。详细文档请参阅scipy.stats.rv_continuous.fit。 |
| **expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 相对于分布的函数期望值(一参数函数)。 |
| median(loc=0, scale=1) | 分布的中位数。 |
| mean(loc=0, scale=1) | 分布的均值。 |
| var(loc=0, scale=1) | 分布的方差。 |
| std(loc=0, scale=1) | 分布的标准偏差。 |
| interval(confidence, loc=0, scale=1) | 均匀覆盖中位数的置信区间。 |
scipy.stats.halfgennorm
scipy.stats.halfgennorm = <scipy.stats._continuous_distns.halfgennorm_gen object>
广义正态连续随机变量的上半部分。
作为 rv_continuous 类的一个实例,halfgennorm 对象从中继承了一组通用方法(下面列出完整列表),并且通过特定于这个特定分布的细节进行了补充。
另请参阅
gennorm
广义正态分布
expon
指数分布
halfnorm
半正态分布
注意事项
halfgennorm 的概率密度函数为:
[f(x, \beta) = \frac{\beta}{\Gamma(1/\beta)} \exp(-|x|^\beta)]
对于 (x, \beta > 0)。(\Gamma) 是伽玛函数 (scipy.special.gamma).
halfgennorm 将 beta 作为形状参数 (\beta)。当 (\beta = 1) 时,它与指数分布相同。当 (\beta = 2) 时,它与半正态分布相同(scale=1/sqrt(2))。
参考文献
[1]
“广义正态分布,版本 1”,zh.wikipedia.org/wiki/%E5%B9%BF%E4%B9%89%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83#%E7%89%88%E6%9C%AC_1
示例
>>> import numpy as np
>>> from scipy.stats import halfgennorm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> beta = 0.675
>>> mean, var, skew, kurt = halfgennorm.stats(beta, moments='mvsk')
显示概率密度函数 (pdf):
>>> x = np.linspace(halfgennorm.ppf(0.01, beta),
... halfgennorm.ppf(0.99, beta), 100)
>>> ax.plot(x, halfgennorm.pdf(x, beta),
... 'r-', lw=5, alpha=0.6, label='halfgennorm pdf')
或者,可以调用分布对象(作为函数)以固定形状、位置和比例参数。这将返回一个固定给定参数的“冻结”随机变量对象。
冻结分布并显示冻结的 pdf:
>>> rv = halfgennorm(beta)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = halfgennorm.ppf([0.001, 0.5, 0.999], beta)
>>> np.allclose([0.001, 0.5, 0.999], halfgennorm.cdf(vals, beta))
True
生成随机数:
>>> r = halfgennorm.rvs(beta, 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(beta, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, beta, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, beta, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, beta, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, beta, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, beta, loc=0, scale=1) | 生存函数(也定义为 1 - cdf,但 sf 有时更精确)。 |
| logsf(x, beta, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, beta, loc=0, scale=1) | 百分位点函数(cdf的逆 — 百分位数)。 |
| isf(q, beta, loc=0, scale=1) | 逆生存函数(sf的逆)。 |
| moment(order, beta, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(beta, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
| entropy(beta, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 通用数据的参数估计。详见 scipy.stats.rv_continuous.fit 获取关键字参数的详细文档。 |
| **expect(func, args=(beta,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 相对于分布的一个参数的函数的期望值。 |
| median(beta, loc=0, scale=1) | 分布的中位数。 |
| mean(beta, loc=0, scale=1) | 分布的均值。 |
| var(beta, loc=0, scale=1) | 分布的方差。 |
| std(beta, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, beta, loc=0, scale=1) | 等面积置信区间,围绕中位数。 |
scipy.stats.hypsecant
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.hypsecant.html#scipy.stats.hypsecant
scipy.stats.hypsecant = <scipy.stats._continuous_distns.hypsecant_gen object>
一个双曲正割连续随机变量。
作为 rv_continuous 类的实例,hypsecant 对象继承了一些通用方法(请参见下文的完整列表),并通过特定于此特定分布的细节来完成它们。
注意事项
hypsecant 的概率密度函数为:
[f(x) = \frac{1}{\pi} \text{sech}(x)]
对于实数 (x)。
上述概率密度函数定义为“标准化”形式。使用 loc 和 scale 参数进行分布的移位和/或缩放。具体而言,hypsecant.pdf(x, loc, scale) 等同于 hypsecant.pdf(y) / scale,其中 y = (x - loc) / scale。请注意,调整分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import hypsecant
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mean, var, skew, kurt = hypsecant.stats(moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(hypsecant.ppf(0.01),
... hypsecant.ppf(0.99), 100)
>>> ax.plot(x, hypsecant.pdf(x),
... 'r-', lw=5, alpha=0.6, label='hypsecant pdf')
或者,可以调用(作为函数)分布对象来固定形状、位置和比例参数。这会返回一个“冻结的”RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf:
>>> rv = hypsecant()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = hypsecant.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], hypsecant.cdf(vals))
True
生成随机数:
>>> r = hypsecant.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) | RV 的(微分)熵。 |
| fit(data) | 适用于通用数据的参数估计。参见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。 |
| **expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 对分布中的函数(一个参数的)的期望值。 |
| median(loc=0, scale=1) | 分布的中位数。 |
| mean(loc=0, scale=1) | 分布的均值。 |
| var(loc=0, scale=1) | 分布的方差。 |
| std(loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, loc=0, scale=1) | 中位数周围具有相等面积的置信区间。 |
scipy.stats.invgamma
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.invgamma.html#scipy.stats.invgamma
scipy.stats.invgamma = <scipy.stats._continuous_distns.invgamma_gen object>
一个反向的 gamma 连续随机变量。
作为 rv_continuous 类的一个实例,invgamma 对象继承了一组通用方法(请参阅下面的完整列表),并以特定于这种特定分布的细节完成了它们。
注意事项
invgamma 的概率密度函数为:
[f(x, a) = \frac{x^{-a-1}}{\Gamma(a)} \exp(-\frac{1}{x})]
对于 (x \geq 0), (a > 0)。 (\Gamma) 是 gamma 函数(scipy.special.gamma)。
invgamma 以 a 作为形状参数对 (a) 进行参数化。
invgamma 是 gengamma 的一个特例,当 c=-1 时,它是缩放的逆卡方分布的不同参数化。具体而言,如果缩放的逆卡方分布用自由度 (\nu) 和缩放参数 (\tau²) 参数化,则可以使用 invgamma 表示为 a= (\nu/2) 和 scale= (\nu \tau²/2)。
上述概率密度函数是以“标准化”形式定义的。要移动和/或缩放分布,请使用 loc 和 scale 参数。具体而言,invgamma.pdf(x, a, loc, scale) 与 invgamma.pdf(y, a) / scale 是完全等价的,其中 y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import invgamma
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> a = 4.07
>>> mean, var, skew, kurt = invgamma.stats(a, moments='mvsk')
显示概率密度函数 (pdf):
>>> x = np.linspace(invgamma.ppf(0.01, a),
... invgamma.ppf(0.99, a), 100)
>>> ax.plot(x, invgamma.pdf(x, a),
... 'r-', lw=5, alpha=0.6, label='invgamma pdf')
或者,可以调用(作为函数)分布对象来固定形状、位置和比例参数。这将返回一个固定给定参数的“冻结”随机变量对象。
冻结分布并显示冻结的 pdf:
>>> rv = invgamma(a)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = invgamma.ppf([0.001, 0.5, 0.999], a)
>>> np.allclose([0.001, 0.5, 0.999], invgamma.cdf(vals, a))
True
生成随机数:
>>> r = invgamma.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.invgauss
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.invgauss.html#scipy.stats.invgauss
scipy.stats.invgauss = <scipy.stats._continuous_distns.invgauss_gen object>
一个反高斯连续随机变量。
作为 rv_continuous 类的一个实例,invgauss 对象继承了一组通用方法(请参阅下面的完整列表),并且用特定于这个特定分布的细节完成了它们。
注释
invgauss 的概率密度函数为:
[f(x, \mu) = \frac{1}{\sqrt{2 \pi x³}} \exp(-\frac{(x-\mu)²}{2 x \mu²})]
对于 (x >= 0) 和 (\mu > 0)。
invgauss 以 (\mu) 作为形状参数。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc 和 scale 参数。具体而言,invgauss.pdf(x, mu, loc, scale) 与 invgauss.pdf(y, mu) / scale 完全等价,其中 y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import invgauss
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mu = 0.145
>>> mean, var, skew, kurt = invgauss.stats(mu, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(invgauss.ppf(0.01, mu),
... invgauss.ppf(0.99, mu), 100)
>>> ax.plot(x, invgauss.pdf(x, mu),
... 'r-', lw=5, alpha=0.6, label='invgauss pdf')
或者,可以调用分布对象(作为函数)以固定形状、位置和尺度参数。这将返回一个“冻结”的随机变量对象,保持给定的参数不变。
冻结分布并显示冻结的 pdf:
>>> rv = invgauss(mu)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = invgauss.ppf([0.001, 0.5, 0.999], mu)
>>> np.allclose([0.001, 0.5, 0.999], invgauss.cdf(vals, mu))
True
生成随机数:
>>> r = invgauss.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.invweibull
scipy.stats.invweibull = <scipy.stats._continuous_distns.invweibull_gen object>
一个反向韦伯连续随机变量。
此分布也称为 Fréchet 分布或 II 型极值分布。
作为 rv_continuous 类的一个实例,invweibull 对象继承了一系列通用方法(下面列出了完整列表),并为此特定分布添加了特定的细节。
注意事项
invweibull 的概率密度函数为:
[f(x, c) = c x^{-c-1} \exp(-x^{-c})]
对于 (x > 0),(c > 0)。
invweibull 以 c 作为形状参数(c)。
上述概率密度在“标准化”形式中定义。使用 loc 和 scale 参数进行偏移和/或缩放分布。具体地说,invweibull.pdf(x, c, loc, scale) 等同于 invweibull.pdf(y, c) / scale,其中 y = (x - loc) / scale。请注意,偏移分布的位置并不使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
参考文献
F.R.S. de Gusmao, E.M.M Ortega 和 G.M. Cordeiro,“广义逆韦伯分布”,Stat. Papers, vol. 52, pp. 591-619, 2011.
示例
>>> import numpy as np
>>> from scipy.stats import invweibull
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = 10.6
>>> mean, var, skew, kurt = invweibull.stats(c, moments='mvsk')
显示概率密度函数 (pdf):
>>> x = np.linspace(invweibull.ppf(0.01, c),
... invweibull.ppf(0.99, c), 100)
>>> ax.plot(x, invweibull.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='invweibull pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保存给定的参数。
冻结分布并显示冻结的 pdf:
>>> rv = invweibull(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = invweibull.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], invweibull.cdf(vals, c))
True
生成随机数:
>>> r = invweibull.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.jf_skew_t
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.jf_skew_t.html#scipy.stats.jf_skew_t
scipy.stats.jf_skew_t = <scipy.stats._continuous_distns.jf_skew_t_gen object>
琼斯和法迪偏 t 分布。
作为rv_continuous类的一个实例,jf_skew_t对象继承了一组通用方法(下文列出完整清单),并使用特定于该特定分布的细节来完善它们。
注:
jf_skew_t的概率密度函数为:
[f(x; a, b) = C_{a,b}^{-1} \left(1+\frac{x}{\left(a+b+x²\right)^{1/2}}\right)^{a+1/2} \left(1-\frac{x}{\left(a+b+x²\right)^{1/2}}\right)^{b+1/2}]
对于实数 (a>0) 和 (b>0),其中 (C_{a,b} = 2^{a+b-1}B(a,b)(a+b)^{1/2}),而 (B) 表示贝塔函数(scipy.special.beta)。
当 (a<b) 时,分布为负偏斜;当 (a>b) 时,分布为正偏斜。 若 (a=b),则恢复为自由度为 (2a) 的t分布。
jf_skew_t采用(a)和(b)作为形状参数。
上述概率密度函数定义在“标准化”形式中。 若要改变或缩放分布,请使用loc和scale参数。 具体来说,jf_skew_t.pdf(x, a, b, loc, scale)与jf_skew_t.pdf(y, a, b) / scale完全等价,其中y = (x - loc) / scale。 请注意,改变分布的位置不会使其成为“非中心”分布; 一些分布的非中心推广可在独立的类中找到。
参考文献
[1]
M.C. Jones 和 M.J. Faddy。“t 分布的偏斜扩展及其应用” 皇家统计学会杂志。 B 系列(统计方法学)65,第 1 号(2003 年):159-174。 DOI:10.1111/1467-9868.00378
示例
>>> import numpy as np
>>> from scipy.stats import jf_skew_t
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> a, b = 8, 4
>>> mean, var, skew, kurt = jf_skew_t.stats(a, b, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(jf_skew_t.ppf(0.01, a, b),
... jf_skew_t.ppf(0.99, a, b), 100)
>>> ax.plot(x, jf_skew_t.pdf(x, a, b),
... 'r-', lw=5, alpha=0.6, label='jf_skew_t pdf')
或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。 这会返回一个“冻结”RV 对象,保持给定参数不变。
冻结分布并显示冻结的pdf:
>>> rv = jf_skew_t(a, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = jf_skew_t.ppf([0.001, 0.5, 0.999], a, b)
>>> np.allclose([0.001, 0.5, 0.999], jf_skew_t.cdf(vals, a, b))
True
生成随机数:
>>> r = jf_skew_t.rvs(a, b, size=1000)
并比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
| rvs(a, b, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, a, b, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, a, b, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, a, b, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, a, b, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, a, b, loc=0, scale=1) | 生存函数(也定义为 1 - cdf,但 sf 有时更准确)。 |
| logsf(x, a, b, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, a, b, loc=0, scale=1) | 百分位点函数(cdf 的逆函数 — 百分位数)。 |
| isf(q, a, b, loc=0, scale=1) | 生存函数的逆函数(sf 的逆函数)。 |
| moment(order, a, b, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(a, b, loc=0, scale=1, moments=’mv’) | 平均值(‘m’)、方差(‘v’)、偏度(‘s’)、以及/或峰度(‘k’)。 |
| entropy(a, b, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 通用数据的参数估计。详见 scipy.stats.rv_continuous.fit 的关键字参数详细文档。 |
| **expect(func, args=(a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(一维)的期望值。 |
| median(a, b, loc=0, scale=1) | 分布的中位数。 |
| mean(a, b, loc=0, scale=1) | 分布的均值。 |
| var(a, b, loc=0, scale=1) | 分布的方差。 |
| std(a, b, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, a, b, loc=0, scale=1) | 等面积置信区间的中位数。 |
scipy.stats.johnsonsb
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.johnsonsb.html#scipy.stats.johnsonsb
scipy.stats.johnsonsb = <scipy.stats._continuous_distns.johnsonsb_gen object>
一种 Johnson SB 连续随机变量。
作为rv_continuous类的实例,johnsonsb对象从中继承了一组通用方法(下面详细列出),并使用特定于此特定分布的细节来完成它们。
另见
johnsonsu
注释
johnsonsb的概率密度函数如下:
[f(x, a, b) = \frac{b}{x(1-x)} \phi(a + b \log \frac{x}{1-x} )]
其中(x)、(a)和(b)是实数;(b > 0)且(x \in [0,1])。(\phi)是正态分布的概率密度函数。
johnsonsb以(a)和(b)作为形状参数。
上述概率密度定义为“标准化”形式。要进行分布的移位和/或缩放,请使用loc和scale参数。具体而言,johnsonsb.pdf(x, a, b, loc, scale)等价于johnsonsb.pdf(y, a, b) / scale,其中y = (x - loc) / scale。请注意,将分布的位置移动并不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import johnsonsb
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> a, b = 4.32, 3.18
>>> mean, var, skew, kurt = johnsonsb.stats(a, b, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(johnsonsb.ppf(0.01, a, b),
... johnsonsb.ppf(0.99, a, b), 100)
>>> ax.plot(x, johnsonsb.pdf(x, a, b),
... 'r-', lw=5, alpha=0.6, label='johnsonsb pdf')
或者,可以将分布对象调用(作为函数)以固定形状、位置和缩放参数。这将返回一个“冻结”的随机变量对象,其固定给定的参数。
冻结分布并显示冻结的pdf:
>>> rv = johnsonsb(a, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = johnsonsb.ppf([0.001, 0.5, 0.999], a, b)
>>> np.allclose([0.001, 0.5, 0.999], johnsonsb.cdf(vals, a, b))
True
生成随机数:
>>> r = johnsonsb.rvs(a, b, size=1000)
并比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
| rvs(a, b, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, a, b, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, a, b, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, a, b, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, a, b, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, a, b, loc=0, scale=1) | 生存函数(也定义为1 - cdf,但sf有时更准确)。 |
| logsf(x, a, b, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, a, b, loc=0, scale=1) | 百分位点函数(cdf的反函数 —— 百分位数)。 |
| isf(q, a, b, loc=0, scale=1) | 逆生存函数(sf的逆)。 |
| moment(order, a, b, loc=0, scale=1) | 给定阶数的非中心矩。 |
| stats(a, b, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
| entropy(a, b, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 适用于一般数据的参数估计。详细文档参见scipy.stats.rv_continuous.fit。 |
| **expect(func, args=(a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 对于分布,函数(一个参数)的期望值。 |
| median(a, b, loc=0, scale=1) | 分布的中位数。 |
| mean(a, b, loc=0, scale=1) | 分布的均值。 |
| var(a, b, loc=0, scale=1) | 分布的方差。 |
| std(a, b, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, a, b, loc=0, scale=1) | 中位数周围面积相等的置信区间。 |
scipy.stats.johnsonsu
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.johnsonsu.html#scipy.stats.johnsonsu
scipy.stats.johnsonsu = <scipy.stats._continuous_distns.johnsonsu_gen object>
一个 Johnson SU 连续随机变量。
作为rv_continuous类的一个实例,johnsonsu对象从中继承了一组通用方法(详见下文),并使用特定于这种特定分布的详细信息来补充它们。
亦参见
johnsonsb
注意事项
对于johnsonsu的概率密度函数是:
[f(x, a, b) = \frac{b}{\sqrt{x² + 1}} \phi(a + b \log(x + \sqrt{x² + 1}))]
其中(x), (a), 和 (b) 是实数标量;(b > 0). (\phi) 是正态分布的概率密度函数。
johnsonsu以(a)和(b)作为形状参数。
根据[1]中的公式计算前四个中心时刻。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc和scale参数。具体来说,johnsonsu.pdf(x, a, b, loc, scale)与johnsonsu.pdf(y, a, b) / scale等同,其中y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。
参考文献
[1]
Taylor Enterprises. “Johnson Family of Distributions”. variation.com/wp-content/distribution_analyzer_help/hs126.htm
示例
>>> import numpy as np
>>> from scipy.stats import johnsonsu
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> a, b = 2.55, 2.25
>>> mean, var, skew, kurt = johnsonsu.stats(a, b, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(johnsonsu.ppf(0.01, a, b),
... johnsonsu.ppf(0.99, a, b), 100)
>>> ax.plot(x, johnsonsu.pdf(x, a, b),
... 'r-', lw=5, alpha=0.6, label='johnsonsu pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和尺度参数。这将返回一个“冻结”的随机变量对象,其中给定的参数是固定的。
冻结分布并显示冻结的pdf:
>>> rv = johnsonsu(a, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = johnsonsu.ppf([0.001, 0.5, 0.999], a, b)
>>> np.allclose([0.001, 0.5, 0.999], johnsonsu.cdf(vals, a, b))
True
生成随机数:
>>> r = johnsonsu.rvs(a, b, size=1000)
比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
| rvs(a, b, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, a, b, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, a, b, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, a, b, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, a, b, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, a, b, loc=0, scale=1) | 生存函数(也定义为1 - cdf,但sf有时更精确)。 |
| logsf(x, a, b, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, a, b, loc=0, scale=1) | 百分位点函数(cdf 的逆 — 百分位数)。 |
| isf(q, a, b, loc=0, scale=1) | 逆生存函数(sf 的逆)。 |
| moment(order, a, b, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(a, b, loc=0, scale=1, moments=’mv’) | 均值(‘m’),方差(‘v’),偏度(‘s’),以及/或峰度(‘k’)。 |
| entropy(a, b, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 适合于通用数据的参数估计。详见 scipy.stats.rv_continuous.fit 获取关键字参数的详细文档。 |
| **expect(func, args=(a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 期望值函数(一个参数)关于分布的。 |
| median(a, b, loc=0, scale=1) | 分布的中位数。 |
| mean(a, b, loc=0, scale=1) | 分布的均值。 |
| var(a, b, loc=0, scale=1) | 分布的方差。 |
| std(a, b, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, a, b, loc=0, scale=1) | 等面积置信区间围绕中位数。 |
scipy.stats.kappa4
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.kappa4.html#scipy.stats.kappa4
scipy.stats.kappa4 = <scipy.stats._continuous_distns.kappa4_gen object>
Kappa 4 参数分布。
作为rv_continuous类的实例,kappa4对象继承了一组通用方法(请参见下面的完整列表),并用特定于该特定分布的细节完成了它们。
注释
kappa4 的概率密度函数为:
[f(x, h, k) = (1 - k x)^{1/k - 1} (1 - h (1 - k x)^{1/k})^{1/h-1}]
如果(h)和(k)不等于 0。
如果(h)或(k)为零,则可以简化 pdf:
h = 0 and k ≠ 0:
kappa4.pdf(x, h, k) = (1.0 - k*x)**(1.0/k - 1.0)*
exp(-(1.0 - k*x)**(1.0/k))
h ≠ 0 and k = 0:
kappa4.pdf(x, h, k) = exp(-x)*(1.0 - h*exp(-x))**(1.0/h - 1.0)
h = 0 and k = 0:
kappa4.pdf(x, h, k) = exp(-x)*exp(-exp(-x))
kappa4 以(h)和(k)作为形状参数。
当使用特定的(h)和(k)值时,kappa4 分布返回其他分布。
| h | k=0.0 | k=1.0 | -inf<=k<=inf |
|---|---|---|---|
| -1.0 | 逻辑分布 logistic(x) | 广义逻辑分布(1) | |
| 0.0 | 冈贝尔分布 gumbel_r(x) | 反指数分布(2) | 广义极值分布 genextreme(x, k) |
| 1.0 | 指数分布 exp(x) | 均匀分布 uniform(x) | 广义帕累托分布 genpareto(x, -k) |
-
至少有五种广义逻辑分布。这里描述了四种:
en.wikipedia.org/wiki/Generalized_logistic_distribution第“五”种是 kappa4 应匹配的一种,目前在 scipy 中尚未实现:en.wikipedia.org/wiki/Talk:Generalized_logistic_distributionwww.mathwave.com/help/easyfit/html/analyses/distributions/gen_logistic.html -
当前 scipy 中没有此分布。
参考文献
J.C. Finney,“优化倾斜逻辑分布关于 Kolmogorov-Smirnov 测试”,路易斯安那州立大学农业与机械学院研究生院提交的论文,(2004 年 8 月),digitalcommons.lsu.edu/gradschool_dissertations/3672
J.R.M. Hosking,“四参数 kappa 分布”。IBM J. Res. Develop. 38(3),251-258 页(1994 年)。
B. Kumphon, A. Kaew-Man, P. Seenoi,“泰国 Chi River Basin Lampao 站点的降水分布”,《水资源与保护杂志》,第 4 卷,866-869 页,(2012 年)。DOI:10.4236/jwarp.2012.410101
C. Winchester,“对四参数 Kappa 分布的估计”,达尔豪斯大学硕士学位论文,加拿大新斯科舍省哈利法克斯,(2000 年 3 月)。www.nlc-bnc.ca/obj/s4/f2/dsk2/ftp01/MQ57336.pdf
上述概率密度在“标准化”形式中定义。使用 loc 和 scale 参数来进行偏移和/或缩放分布。具体来说,kappa4.pdf(x, h, k, loc, scale) 与 kappa4.pdf(y, h, k) / scale 完全等效,其中 y = (x - loc) / scale 。请注意,将分布的位置移动并不意味着它成为“非中心”分布;某些分布的非中心推广可在单独的类中使用。
示例
>>> import numpy as np
>>> from scipy.stats import kappa4
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> h, k = 0.1, 0
>>> mean, var, skew, kurt = kappa4.stats(h, k, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(kappa4.ppf(0.01, h, k),
... kappa4.ppf(0.99, h, k), 100)
>>> ax.plot(x, kappa4.pdf(x, h, k),
... 'r-', lw=5, alpha=0.6, label='kappa4 pdf')
或者,可以调用分布对象(作为函数)以固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,保持给定的参数不变。
冻结分布并显示冻结的 pdf:
>>> rv = kappa4(h, k)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = kappa4.ppf([0.001, 0.5, 0.999], h, k)
>>> np.allclose([0.001, 0.5, 0.999], kappa4.cdf(vals, h, k))
True
生成随机数:
>>> r = kappa4.rvs(h, k, 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(h, k, loc=0, scale=1, size=1, random_state=None) | 生成随机变量。 |
|---|---|
| pdf(x, h, k, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, h, k, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, h, k, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, h, k, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, h, k, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但 sf 有时更准确)。 |
| logsf(x, h, k, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, h, k, loc=0, scale=1) | 百分位点函数(cdf 的逆函数 —— 百分位数)。 |
| isf(q, h, k, loc=0, scale=1) | 逆生存函数(sf 的逆函数)。 |
| moment(order, h, k, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(h, k, loc=0, scale=1, moments=’mv’) | 分布的均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
| entropy(h, k, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 通用数据的参数估计。详细文档请参阅 scipy.stats.rv_continuous.fit 。 |
| **expect(func, args=(h, k), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 计算分布的函数(一个参数)的期望值。 |
| median(h, k, loc=0, scale=1) | 分布的中位数。 |
| mean(h, k, loc=0, scale=1) | 分布的均值。 |
| var(h, k, loc=0, scale=1) | 分布的方差。 |
| std(h, k, loc=0, scale=1) | 分布的标准偏差。 |
| interval(confidence, h, k, loc=0, scale=1) | 等面积置信区间,围绕中位数。 |
scipy.stats.kappa3
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.kappa3.html#scipy.stats.kappa3
scipy.stats.kappa3 = <scipy.stats._continuous_distns.kappa3_gen object>
Kappa 3 参数分布。
作为rv_continuous类的一个实例,kappa3对象继承了一组通用方法(下面列出完整列表),并针对该特定分布完成了细节。
注意事项
kappa3的概率密度函数为:
[f(x, a) = a (a + x^a)^{-(a + 1)/a}]
对于(x > 0)和(a > 0)。
kappa3将a作为形状参数(a)。
参考文献
P.W. Mielke 和 E.S. Johnson,“三参数 Kappa 分布的最大似然估计和似然比检验”,《天气研究方法》,701-707 页(1973 年 9 月),DOI:10.1175/1520-0493(1973)101<0701:TKDMLE>2.3.CO;2
B. Kumphon,“三参数 Kappa 分布的最大熵和最大似然估计”,《开放统计学杂志》,第 2 卷,415-419 页(2012 年),DOI:10.4236/ojs.2012.24050
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc和scale参数。具体来说,kappa3.pdf(x, a, loc, scale)与kappa3.pdf(y, a) / scale是完全等效的,其中y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import kappa3
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> a = 1
>>> mean, var, skew, kurt = kappa3.stats(a, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(kappa3.ppf(0.01, a),
... kappa3.ppf(0.99, a), 100)
>>> ax.plot(x, kappa3.pdf(x, a),
... 'r-', lw=5, alpha=0.6, label='kappa3 pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和尺度参数。这将返回一个“冻结”的 RV 对象,保持给定的参数不变。
冻结分布并显示冻结的pdf:
>>> rv = kappa3(a)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = kappa3.ppf([0.001, 0.5, 0.999], a)
>>> np.allclose([0.001, 0.5, 0.999], kappa3.cdf(vals, a))
True
生成随机数:
>>> r = kappa3.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.ksone
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.ksone.html#scipy.stats.ksone
scipy.stats.ksone = <scipy.stats._continuous_distns.ksone_gen object>
Kolmogorov-Smirnov 单侧检验统计量分布。
这是有限样本大小n >= 1(形状参数)的单侧 Kolmogorov-Smirnov(KS)统计量 (D_n^+) 和 (D_n^-) 的分布。
作为rv_continuous类的一个实例,ksone对象继承了一组通用方法(下面列出完整列表),并且以特定于此特定分布的细节完成了它们。
另请参阅
笔记
(D_n^+) 和 (D_n^-) 的表达式为
[\begin{split}D_n^+ &= \text{sup}_x (F_n(x) - F(x)),\ D_n^- &= \text{sup}_x (F(x) - F_n(x)),\\end{split}]
其中 (F) 是连续的累积分布函数(CDF),(F_n) 是经验累积分布函数(ECDF)。ksone描述了 KS 检验的零假设下的分布,即经验 CDF 对应于具有 CDF (F)的 (n) 个独立同分布(i.i.d.)随机变量。
上述概率密度函数定义为“标准化”形式。要移动和/或缩放分布,请使用 loc 和 scale 参数。具体而言,ksone.pdf(x, n, loc, scale) 与 ksone.pdf(y, n) / scale 在 y = (x - loc) / scale 时是完全等价的。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。
参考文献
[1]
Birnbaum, Z. W. 和 Tingey, F.H. 的文章“概率分布函数的单侧置信轮廓”,《数理统计学年刊》,22(4), pp 592-596 (1951).
例子
>>> import numpy as np
>>> from scipy.stats import ksone
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> n = 1e+03
>>> mean, var, skew, kurt = ksone.stats(n, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(ksone.ppf(0.01, n),
... ksone.ppf(0.99, n), 100)
>>> ax.plot(x, ksone.pdf(x, n),
... 'r-', lw=5, alpha=0.6, label='ksone pdf')
或者,可以调用(作为函数)分布对象来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf:
>>> rv = ksone(n)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = ksone.ppf([0.001, 0.5, 0.999], n)
>>> np.allclose([0.001, 0.5, 0.999], ksone.cdf(vals, n))
True
生成随机数:
>>> r = ksone.rvs(n, 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(n, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, n, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, n, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, n, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, n, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, n, loc=0, scale=1) | 生存函数(也定义为1 - cdf,但sf有时更准确)。 |
| logsf(x, n, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, n, loc=0, scale=1) | 百分点函数(cdf的反函数 — 百分位数)。 |
| isf(q, n, loc=0, scale=1) | 逆生存函数(sf的反函数)。 |
| moment(order, n, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(n, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。 |
| entropy(n, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 适用于通用数据的参数估计。参见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。 |
| **expect(func, args=(n,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(一个参数)的期望值。 |
| median(n, loc=0, scale=1) | 分布的中位数。 |
| mean(n, loc=0, scale=1) | 分布的均值。 |
| var(n, loc=0, scale=1) | 分布的方差。 |
| std(n, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, n, loc=0, scale=1) | 在中位数周围具有相等区域的置信区间。 |
scipy.stats.kstwo
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.kstwo.html#scipy.stats.kstwo
scipy.stats.kstwo = <scipy.stats._continuous_distns.kstwo_gen object>
科尔莫哥罗夫-斯米尔诺夫双侧检验统计分布。
这是有限样本大小n >= 1(形状参数)的双侧科尔莫哥罗夫-斯米尔诺夫(KS)统计量(D_n)的分布。
作为rv_continuous类的一个实例,kstwo对象继承了一组通用方法(下面有完整列表),并通过特定于此特定分布的细节补充了它们。
另见
kstwobign, ksone, kstest
注意
(D_n)由下式给出
[D_n = \text{sup}_x |F_n(x) - F(x)|]
其中,(F)为(连续)累积分布函数,而(F_n)为经验累积分布函数。kstwo描述了 KS 检验的零假设下的分布,即经验 CDF 对应于具有 CDF (F)的(n)个独立同分布随机变量。
上述概率密度是以“标准化”形式定义的。要移动和/或缩放分布,请使用loc和scale参数。具体来说,kstwo.pdf(x, n, loc, scale)与kstwo.pdf(y, n) / scale等效,其中y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
参考文献
[1]
Simard, R., L’Ecuyer, P.,“计算双侧科尔莫哥罗夫-斯米尔诺夫分布”,《统计软件杂志》,第 39 卷,11,1-18 页(2011 年)。
示例
>>> import numpy as np
>>> from scipy.stats import kstwo
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> n = 10
>>> mean, var, skew, kurt = kstwo.stats(n, moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(kstwo.ppf(0.01, n),
... kstwo.ppf(0.99, n), 100)
>>> ax.plot(x, kstwo.pdf(x, n),
... 'r-', lw=5, alpha=0.6, label='kstwo pdf')
或者,可以将分布对象作为函数调用(固定形状、位置和比例参数)。这将返回一个持有给定参数固定的“冻结”随机变量对象。
冻结分布并显示冻结的pdf:
>>> rv = kstwo(n)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = kstwo.ppf([0.001, 0.5, 0.999], n)
>>> np.allclose([0.001, 0.5, 0.999], kstwo.cdf(vals, n))
True
生成随机数:
>>> r = kstwo.rvs(n, 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(n, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, n, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, n, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, n, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, n, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, n, loc=0, scale=1) | 生存函数(也定义为1 - cdf,但sf有时更准确)。 |
| logsf(x, n, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, n, loc=0, scale=1) | 百分位点函数(cdf的反函数 — 百分位数)。 |
| isf(q, n, loc=0, scale=1) | 逆生存函数(sf的反函数)。 |
| moment(order, n, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(n, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
| entropy(n, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 适用于通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit 。 |
| **expect(func, args=(n,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 对分布的函数(一个参数)的期望值。 |
| median(n, loc=0, scale=1) | 分布的中位数。 |
| mean(n, loc=0, scale=1) | 分布的均值。 |
| var(n, loc=0, scale=1) | 分布的方差。 |
| std(n, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, n, loc=0, scale=1) | 中位数周围具有相等面积的置信区间。 |
scipy.stats.kstwobign
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.kstwobign.html#scipy.stats.kstwobign
scipy.stats.kstwobign = <scipy.stats._continuous_distns.kstwobign_gen object>
缩放 Kolmogorov-Smirnov 两侧检验统计量的极限分布。
这是两侧 Kolmogorov-Smirnov 统计量 (\sqrt{n} D_n) 的渐近分布,它衡量理论(连续)CDF 与经验 CDF 之间的最大绝对距离。(参见 kstest)。
作为 rv_continuous 类的一个实例,kstwobign 对象从中继承了一组通用方法(请参阅下面的完整列表),并用特定于此特定分布的细节完善它们。
另请参阅
注意
(\sqrt{n} D_n) 由下式给出
[D_n = \text{sup}_x |F_n(x) - F(x)|]
其中 (F) 是一个连续的 CDF,(F_n) 是一个经验 CDF。kstwobign 描述了在 KS 检验的零假设下(即经验 CDF 对应于具有 CDF (F) 的 i.i.d. 随机变量)的渐近分布(即 (\sqrt{n} D_n) 的极限)。
上述概率密度在“标准化”形式中定义。使用 loc 和 scale 参数来进行偏移和/或缩放分布。具体来说,kstwobign.pdf(x, loc, scale) 在恒等等价于 kstwobign.pdf(y) / scale,其中 y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心广义化在单独的类中可用。
参考
[1]
Feller, W. “On the Kolmogorov-Smirnov Limit Theorems for Empirical Distributions”, Ann. Math. Statist. Vol 19, 177-189 (1948).
示例
>>> import numpy as np
>>> from scipy.stats import kstwobign
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mean, var, skew, kurt = kstwobign.stats(moments='mvsk')
显示概率密度函数 (pdf):
>>> x = np.linspace(kstwobign.ppf(0.01),
... kstwobign.ppf(0.99), 100)
>>> ax.plot(x, kstwobign.pdf(x),
... 'r-', lw=5, alpha=0.6, label='kstwobign pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保持给定的参数不变。
冻结分布并显示冻结的 pdf:
>>> rv = kstwobign()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = kstwobign.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], kstwobign.cdf(vals))
True
生成随机数:
>>> r = kstwobign.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.laplace
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.laplace.html#scipy.stats.laplace
scipy.stats.laplace = <scipy.stats._continuous_distns.laplace_gen object>
拉普拉斯连续随机变量。
作为rv_continuous类的一个实例,laplace对象继承了一组通用方法(下面列出了完整列表),并用特定于此特定分布的细节来完善它们。
注意
laplace的概率密度函数为
[f(x) = \frac{1}{2} \exp(-|x|)]
对于实数 (x)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc和scale参数。具体而言,laplace.pdf(x, loc, scale)与laplace.pdf(y) / scale等价,其中y = (x - loc) / scale。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中使用。
示例
>>> import numpy as np
>>> from scipy.stats import laplace
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mean, var, skew, kurt = laplace.stats(moments='mvsk')
显示概率密度函数(pdf):
>>> x = np.linspace(laplace.ppf(0.01),
... laplace.ppf(0.99), 100)
>>> ax.plot(x, laplace.pdf(x),
... 'r-', lw=5, alpha=0.6, label='laplace pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中给定参数被固定。
冻结分布并显示冻结的pdf:
>>> rv = laplace()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = laplace.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], laplace.cdf(vals))
True
生成随机数:
>>> r = laplace.rvs(size=1000)
并比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
| rvs(loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, loc=0, scale=1) | 生存函数(也定义为1 - cdf,但sf有时更精确)。 |
| logsf(x, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, loc=0, scale=1) | 百分点函数(cdf的逆——百分位数)。 |
| isf(q, loc=0, scale=1) | 逆生存函数(sf的逆)。 |
| moment(order, loc=0, scale=1) | 指定阶数的非中心时刻。 |
| stats(loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。 |
| entropy(loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 通用数据的参数估计。详见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。 |
| **expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(一个参数)的期望值。 |
| median(loc=0, scale=1) | 分布的中位数。 |
| mean(loc=0, scale=1) | 分布的均值。 |
| var(loc=0, scale=1) | 分布的方差。 |
| std(loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, loc=0, scale=1) | 中位数周围面积相等的置信区间。 |
scipy.stats.laplace_asymmetric
scipy.stats.laplace_asymmetric = <scipy.stats._continuous_distns.laplace_asymmetric_gen object>
一个非对称拉普拉斯连续随机变量。
作为rv_continuous类的一个实例,laplace_asymmetric对象从中继承了一系列通用方法(完整列表见下文),并且以特定于此特定分布的详细信息来补充它们。
另请参见
laplace
拉普拉斯分布
注意
laplace_asymmetric的概率密度函数为
[\begin{split}f(x, \kappa) &= \frac{1}{\kappa+\kappa^{-1}}\exp(-x\kappa),\quad x\ge0\ &= \frac{1}{\kappa+\kappa^{-1}}\exp(x/\kappa),\quad x<0\\end{split}]
对于(-\infty < x < \infty),(\kappa > 0)。
laplace_asymmetric以 kappa 作为形状参数对(\kappa)进行参数化。对于(\kappa = 1),它与拉普拉斯分布相同。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc和scale参数。具体而言,laplace_asymmetric.pdf(x, kappa, loc, scale)与laplace_asymmetric.pdf(y, kappa) / scale完全等价,其中y = (x - loc) / scale。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
注意一些参考文献的比例参数是 SciPy 的scale的倒数。例如,参数化中的(\lambda = 1/2)相当于使用laplace_asymmetric中的scale = 2。
参考文献
[1]
“非对称拉普拉斯分布”,维基百科 en.wikipedia.org/wiki/Asymmetric_Laplace_distribution
[2]
Kozubowski TJ 和 Podgórski K. 拉普拉斯分布的多变量和非对称推广,计算统计学 15, 531–540 (2000)。DOI:10.1007/PL00022717
示例
>>> import numpy as np
>>> from scipy.stats import laplace_asymmetric
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> kappa = 2
>>> mean, var, skew, kurt = laplace_asymmetric.stats(kappa, moments='mvsk')
显示概率密度函数(pdf)
>>> x = np.linspace(laplace_asymmetric.ppf(0.01, kappa),
... laplace_asymmetric.ppf(0.99, kappa), 100)
>>> ax.plot(x, laplace_asymmetric.pdf(x, kappa),
... 'r-', lw=5, alpha=0.6, label='laplace_asymmetric pdf')
或者,可以通过调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的pdf:
>>> rv = laplace_asymmetric(kappa)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf和ppf的准确性:
>>> vals = laplace_asymmetric.ppf([0.001, 0.5, 0.999], kappa)
>>> np.allclose([0.001, 0.5, 0.999], laplace_asymmetric.cdf(vals, kappa))
True
生成随机数:
>>> r = laplace_asymmetric.rvs(kappa, size=1000)
并比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
Methods
| rvs(kappa, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
|---|---|
| pdf(x, kappa, loc=0, scale=1) | 概率密度函数。 |
| logpdf(x, kappa, loc=0, scale=1) | 概率密度函数的对数。 |
| cdf(x, kappa, loc=0, scale=1) | 累积分布函数。 |
| logcdf(x, kappa, loc=0, scale=1) | 累积分布函数的对数。 |
| sf(x, kappa, loc=0, scale=1) | 生存函数(也定义为 1 - cdf,但有时 sf 更准确)。 |
| logsf(x, kappa, loc=0, scale=1) | 生存函数的对数。 |
| ppf(q, kappa, loc=0, scale=1) | 百分位点函数(cdf 的反函数 — 百分位数)。 |
| isf(q, kappa, loc=0, scale=1) | 逆生存函数(sf 的反函数)。 |
| moment(order, kappa, loc=0, scale=1) | 指定阶数的非中心矩。 |
| stats(kappa, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
| entropy(kappa, loc=0, scale=1) | 随机变量的(微分)熵。 |
| fit(data) | 通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit。 |
| **expect(func, args=(kappa,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(单参数)的期望值。 |
| median(kappa, loc=0, scale=1) | 分布的中位数。 |
| mean(kappa, loc=0, scale=1) | 分布的均值。 |
| var(kappa, loc=0, scale=1) | 分布的方差。 |
| std(kappa, loc=0, scale=1) | 分布的标准差。 |
| interval(confidence, kappa, loc=0, scale=1) | 中位数周围具有相等面积的置信区间。 |
scipy.stats.levy
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.levy.html#scipy.stats.levy
scipy.stats.levy = <scipy.stats._continuous_distns.levy_gen object>
一个 Levy 连续随机变量。
作为 rv_continuous 类的实例,levy 对象继承了一组通用方法(请参见下文的完整列表),并使用特定于此特定分布的详细信息完成它们。
另见
levy_stable, levy_l
注记
levy 的概率密度函数为:
[f(x) = \frac{1}{\sqrt{2\pi x³}} \exp\left(-\frac{1}{2x}\right)]
对于 (x > 0)。
这与 Levy 稳定分布相同,其中 (a=1/2) 和 (b=1)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc 和 scale 参数。具体地说,levy.pdf(x, loc, scale) 等效于 levy.pdf(y) / scale,其中 y = (x - loc) / scale。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import levy
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> mean, var, skew, kurt = levy.stats(moments='mvsk')
显示概率密度函数 (pdf):
>>> # `levy` is very heavy-tailed.
>>> # To show a nice plot, let's cut off the upper 40 percent.
>>> a, b = levy.ppf(0), levy.ppf(0.6)
>>> x = np.linspace(a, b, 100)
>>> ax.plot(x, levy.pdf(x),
... 'r-', lw=5, alpha=0.6, label='levy pdf')
或者,可以调用(作为函数)分布对象来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中包含给定的固定参数。
冻结分布并显示冻结的 pdf:
>>> rv = levy()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf 和 ppf 的准确性:
>>> vals = levy.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], levy.cdf(vals))
True
生成随机数:
>>> r = levy.rvs(size=1000)
比较直方图:
>>> # manual binning to ignore the tail
>>> bins = np.concatenate((np.linspace(a, b, 20), [np.max(r)]))
>>> ax.hist(r, bins=bins, density=True, histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
| 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) | 围绕中位数等面积的置信区间。 |