SciPy-1-12-中文文档-二十二-
SciPy 1.12 中文文档(二十二)
scipy.stats.cosine
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.cosine.html#scipy.stats.cosine
scipy.stats.cosine = <scipy.stats._continuous_distns.cosine_gen object>
余弦连续随机变量。
作为rv_continuous
类的一个实例,余弦
对象继承了一系列通用方法(见下面的完整列表),并使用了特定于此特定分布的细节来完成它们。
注释
余弦分布是对正态分布的一种近似。余弦
的概率密度函数为:
[f(x) = \frac{1}{2\pi} (1+\cos(x))]
对于 (-\pi \le x \le \pi)。
上面的概率密度在“标准化”形式中定义。要转移和/或缩放分布,请使用loc
和scale
参数。具体来说,cosine.pdf(x, loc, scale)
与cosine.pdf(y) / scale
是完全等效的,其中y = (x - loc) / scale
。请注意,转移分布的位置并不使其成为“非中心”分布;某些分布的非中心广义化在单独的类中可用。
例子
>>> import numpy as np
>>> from scipy.stats import cosine
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> mean, var, skew, kurt = cosine.stats(moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(cosine.ppf(0.01),
... cosine.ppf(0.99), 100)
>>> ax.plot(x, cosine.pdf(x),
... 'r-', lw=5, alpha=0.6, label='cosine pdf')
或者,可以调用(作为函数)分布对象以固定形状,位置和比例参数。这会返回一个持有给定参数固定的“冻结”RV 对象。
冻结分布并显示冻结的pdf
:
>>> rv = cosine()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = cosine.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], cosine.cdf(vals))
True
生成随机数:
>>> r = cosine.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.crystalball
scipy.stats.crystalball = <scipy.stats._continuous_distns.crystalball_gen object>
Crystalball 分布
作为rv_continuous
类的一个实例,crystalball
对象从中继承了一组通用方法(请参阅下面的完整列表),并使用特定于此特定分布的细节来完成它们。
注意事项
crystalball
的概率密度函数为:
[]
其中(A = (m / |\beta|)^m \exp(-\beta² / 2)),(B = m/|\beta| - |\beta|),(N)是一个归一化常数。
crystalball
将(\beta > 0)和(m > 1)作为形状参数。(\beta)定义了 pdf 从幂律到高斯分布变化的点。(\ m)是幂律尾部的幂。
参考文献
[1]
“水晶球函数”,en.wikipedia.org/wiki/Crystal_Ball_function
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,crystalball.pdf(x, beta, m, loc, scale)
等同于crystalball.pdf(y, beta, m) / scale
,其中y = (x - loc) / scale
。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
版本 0.19.0 中的新功能。
示例
>>> import numpy as np
>>> from scipy.stats import crystalball
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> beta, m = 2, 3
>>> mean, var, skew, kurt = crystalball.stats(beta, m, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(crystalball.ppf(0.01, beta, m),
... crystalball.ppf(0.99, beta, m), 100)
>>> ax.plot(x, crystalball.pdf(x, beta, m),
... 'r-', lw=5, alpha=0.6, label='crystalball pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个保持给定参数固定的“冻结”RV 对象。
冻结分布并显示冻结的pdf
:
>>> rv = crystalball(beta, m)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = crystalball.ppf([0.001, 0.5, 0.999], beta, m)
>>> np.allclose([0.001, 0.5, 0.999], crystalball.cdf(vals, beta, m))
True
生成随机数:
>>> r = crystalball.rvs(beta, m, 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, m, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, beta, m, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, beta, m, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, beta, m, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, beta, m, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, beta, m, loc=0, scale=1) | 生存函数(也定义为1 - cdf ,但sf有时更准确)。 |
logsf(x, beta, m, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, beta, m, loc=0, scale=1) | 百分位点函数(cdf 的逆函数——百分位数)。 |
isf(q, beta, m, loc=0, scale=1) | 逆生存函数(sf 的逆函数)。 |
moment(order, beta, m, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(beta, m, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
entropy(beta, m, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。详细文档请参见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。 |
**expect(func, args=(beta, m), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(一个参数)的期望值。 |
median(beta, m, loc=0, scale=1) | 分布的中位数。 |
mean(beta, m, loc=0, scale=1) | 分布的均值。 |
var(beta, m, loc=0, scale=1) | 分布的方差。 |
std(beta, m, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, beta, m, loc=0, scale=1) | 中位数周围具有相等面积的置信区间。 |
scipy.stats.dgamma
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.dgamma.html#scipy.stats.dgamma
scipy.stats.dgamma = <scipy.stats._continuous_distns.dgamma_gen object>
双伽马连续随机变量。
双伽马分布也称为反射伽马分布[1]。
作为rv_continuous
类的一个实例,dgamma
对象继承了一组通用方法(请参见下面的完整列表),并使用此特定分布的详细信息完成了这些方法。
注意
dgamma
的概率密度函数为:
[f(x, a) = \frac{1}{2\Gamma(a)} |x|^{a-1} \exp(-|x|)]
对于实数(x)和(a > 0)。 (\Gamma)是伽马函数(scipy.special.gamma
)。
dgamma
以(a)为形状参数。
上述概率密度以“标准化”形式定义。 要移动和/或缩放分布,请使用loc
和scale
参数。 具体来说,dgamma.pdf(x, a, loc, scale)
与dgamma.pdf(y, a) / scale
完全等价,其中y = (x - loc) / scale
。 请注意,移动分布的位置不会使其成为“非中心”分布; 一些分布的非中心推广可在单独的类中获得。
参考文献
Johnson, Kotz, and Balakrishnan, “Continuous Univariate Distributions, Volume 1”, Second Edition, John Wiley and Sons (1994).
示例
>>> import numpy as np
>>> from scipy.stats import dgamma
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> a = 1.1
>>> mean, var, skew, kurt = dgamma.stats(a, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(dgamma.ppf(0.01, a),
... dgamma.ppf(0.99, a), 100)
>>> ax.plot(x, dgamma.pdf(x, a),
... 'r-', lw=5, alpha=0.6, label='dgamma pdf')
或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。 这将返回一个“冻结”的 RV 对象,其中保持给定的参数固定。
冻结分布并显示冻结的pdf
:
>>> rv = dgamma(a)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = dgamma.ppf([0.001, 0.5, 0.999], a)
>>> np.allclose([0.001, 0.5, 0.999], dgamma.cdf(vals, a))
True
生成随机数:
>>> r = dgamma.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.dweibull
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.dweibull.html#scipy.stats.dweibull
scipy.stats.dweibull = <scipy.stats._continuous_distns.dweibull_gen object>
双 Weibull 连续随机变量。
作为rv_continuous
类的一个实例,dweibull
对象从中继承了一系列通用方法(请参阅下面的完整列表),并使用此特定分布的细节来完成它们。
注意事项
dweibull
的概率密度函数如下所示
[f(x, c) = c / 2 |x|^{c-1} \exp(-|x|^c)]
对于实数(x)和(c > 0)。
dweibull
将c
作为形状参数(c)。
上述概率密度在“标准化”形式中定义。使用loc
和scale
参数可以移动和/或缩放分布。具体而言,dweibull.pdf(x, c, loc, scale)
与dweibull.pdf(y, c) / scale
完全等价,其中y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import dweibull
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = 2.07
>>> mean, var, skew, kurt = dweibull.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(dweibull.ppf(0.01, c),
... dweibull.ppf(0.99, c), 100)
>>> ax.plot(x, dweibull.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='dweibull pdf')
或者,可以调用(作为函数)分布对象来固定形状、位置和尺度参数。这将返回一个“冻结”的 RV 对象,保持给定的参数不变。
冻结分布并显示冻结的pdf
:
>>> rv = dweibull(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = dweibull.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], dweibull.cdf(vals, c))
True
生成随机数:
>>> r = dweibull.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.erlang
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.erlang.html#scipy.stats.erlang
scipy.stats.erlang = <scipy.stats._continuous_distns.erlang_gen object>
一个 Erlang 连续随机变量。
作为rv_continuous
类的一个实例,erlang
对象继承了一组通用方法(下面详细列出),并以特定于此特定分布的详细信息补充它们。
另请参阅
gamma
注释
Erlang 分布是 Gamma 分布的特例,其中形状参数a为整数。请注意,erlang
不强制此限制。但第一次使用非整数值作为形状参数时会生成警告。
参考gamma
获取示例。
方法
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.expon
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.expon.html#scipy.stats.expon
scipy.stats.expon = <scipy.stats._continuous_distns.expon_gen object>
一个指数连续随机变量。
作为rv_continuous
类的一个实例,expon
对象从中继承了一组通用方法(下面列出了完整列表),并根据这个特定分布的细节完成了它们。
注释
expon
的概率密度函数为:
[f(x) = \exp(-x)]
对于(x \ge 0)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体来说,expon.pdf(x, loc, scale)
与expon.pdf(y) / scale
完全等价,其中y = (x - loc) / scale
。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
expon
的一个常见参数化是用速率参数lambda
表示,使得pdf = lambda * exp(-lambda * x)
。这种参数化对应于使用scale = 1 / lambda
。
指数分布是伽玛分布的一个特例,伽玛形状参数a = 1
。
示例
>>> import numpy as np
>>> from scipy.stats import expon
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> mean, var, skew, kurt = expon.stats(moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(expon.ppf(0.01),
... expon.ppf(0.99), 100)
>>> ax.plot(x, expon.pdf(x),
... 'r-', lw=5, alpha=0.6, label='expon pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个持有给定参数固定的“冻结”RV 对象。
冻结分布并显示冻结的pdf
:
>>> rv = expon()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = expon.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], expon.cdf(vals))
True
生成随机数:
>>> r = expon.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.exponnorm
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.exponnorm.html#scipy.stats.exponnorm
scipy.stats.exponnorm = <scipy.stats._continuous_distns.exponnorm_gen object>
一个指数修改的正态连续随机变量。
也被称为指数修改的高斯分布[1]。
作为rv_continuous
类的一个实例,exponnorm
的对象继承了一系列通用方法(详见下文完整列表),并根据这个特定分布的细节进行了补充。
注意事项
exponnorm
的概率密度函数为:
[f(x, K) = \frac{1}{2K} \exp\left(\frac{1}{2 K²} - x / K \right) \text{erfc}\left(-\frac{x - 1/K}{\sqrt{2}}\right)]
其中(x)是实数,而(K > 0)。
它可以被看作是一个标准正态随机变量和独立的速率为1/K
的指数分布随机变量的和。
上面的概率密度定义了“标准化”形式。要进行位移和/或缩放分布,请使用loc
和scale
参数。具体而言,exponnorm.pdf(x, K, loc, scale)
等同于exponnorm.pdf(y, K) / scale
,其中y = (x - loc) / scale
。请注意,对分布的位置进行位移并不会使它成为“非中心”分布;一些分布的非中心推广在单独的类中可用。
该分布的另一种参数化形式(例如,在维基百科文章[1]中)涉及三个参数,(\mu)、(\lambda)和(\sigma)。
在当前参数化中,这相当于使得loc
和scale
等于(\mu)和(\sigma),而形状参数(K = 1/(\sigma\lambda))。
自版本 0.16.0 新增。
参考文献
[1] (1,2)
指数修改的高斯分布,维基百科,en.wikipedia.org/wiki/Exponentially_modified_Gaussian_distribution
示例
>>> import numpy as np
>>> from scipy.stats import exponnorm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> K = 1.5
>>> mean, var, skew, kurt = exponnorm.stats(K, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(exponnorm.ppf(0.01, K),
... exponnorm.ppf(0.99, K), 100)
>>> ax.plot(x, exponnorm.pdf(x, K),
... 'r-', lw=5, alpha=0.6, label='exponnorm pdf')
或者,可以将分布对象作为函数调用,以固定形状、位置和比例参数。这将返回一个包含给定参数的“冻结”RV 对象。
冻结分布并显示冻结的pdf
:
>>> rv = exponnorm(K)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = exponnorm.ppf([0.001, 0.5, 0.999], K)
>>> np.allclose([0.001, 0.5, 0.999], exponnorm.cdf(vals, K))
True
生成随机数:
>>> r = exponnorm.rvs(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(K, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, K, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, K, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, K, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, K, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, K, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但 sf 有时更精确)。 |
logsf(x, K, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, K, loc=0, scale=1) | 百分位点函数(cdf 的反函数 — 百分位数)。 |
isf(q, K, loc=0, scale=1) | 逆生存函数(sf 的反函数)。 |
moment(order, K, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(K, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
entropy(K, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 适用于一般数据的参数估计。详细文档请参阅 scipy.stats.rv_continuous.fit。 |
**expect(func, args=(K,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(单参数)的期望值。 |
median(K, loc=0, scale=1) | 分布的中位数。 |
mean(K, loc=0, scale=1) | 分布的均值。 |
var(K, loc=0, scale=1) | 分布的方差。 |
std(K, loc=0, scale=1) | 分布的标准偏差。 |
interval(confidence, K, loc=0, scale=1) | 围绕中位数的等面积置信区间。 |
scipy.stats.exponweib
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.exponweib.html#scipy.stats.exponweib
scipy.stats.exponweib = <scipy.stats._continuous_distns.exponweib_gen object>
一个指数威布尔连续随机变量。
作为rv_continuous
类的一个实例,exponweib
对象从中继承了一些通用方法(请参阅下文的完整列表),并完成了对这一特定分布的详细描述。
另请参阅
weibull_min
,numpy.random.Generator.weibull
注意
exponweib
的概率密度函数为:
[f(x, a, c) = a c [1-\exp(-xc)] \exp(-x^c) x^{c-1}]
其累积分布函数为:
[F(x, a, c) = [1-\exp(-xc)]a]
对于 (x > 0),(a > 0),(c > 0)。
exponweib
以 (a) 和 (c) 作为形状参数:
-
(a) 是指数化参数,特殊情况 (a=1) 对应于(非指数化)威布尔分布
weibull_min
。 -
(c) 是非指数化威布尔定律的形状参数。
上述概率密度以“标准化”形式定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,exponweib.pdf(x, a, c, loc, scale)
等效于exponweib.pdf(y, a, c) / scale
,其中y = (x - loc) / scale
。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广在单独的类中提供。
参考资料
en.wikipedia.org/wiki/Exponentiated_Weibull_distribution
示例
>>> import numpy as np
>>> from scipy.stats import exponweib
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> a, c = 2.89, 1.95
>>> mean, var, skew, kurt = exponweib.stats(a, c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(exponweib.ppf(0.01, a, c),
... exponweib.ppf(0.99, a, c), 100)
>>> ax.plot(x, exponweib.pdf(x, a, c),
... 'r-', lw=5, alpha=0.6, label='exponweib pdf')
或者,可以将分布对象(作为函数)调用以固定形状、位置和比例参数。这将返回一个“冻结”RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = exponweib(a, c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = exponweib.ppf([0.001, 0.5, 0.999], a, c)
>>> np.allclose([0.001, 0.5, 0.999], exponweib.cdf(vals, a, c))
True
生成随机数:
>>> r = exponweib.rvs(a, 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(a, c, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, a, c, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, a, c, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, a, c, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, a, c, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, a, c, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但有时sf更准确)。 |
logsf(x, a, c, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, a, c, loc=0, scale=1) | 百分位点函数(cdf 的逆函数 — 百分位数)。 |
isf(q, a, c, loc=0, scale=1) | 逆生存函数(sf 的逆函数)。 |
moment(order, a, c, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(a, c, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、峰度(‘k’)。 |
entropy(a, c, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。详细文档请参阅 scipy.stats.rv_continuous.fit。 |
**expect(func, args=(a, c), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数的期望值(一个参数)。 |
median(a, c, loc=0, scale=1) | 分布的中位数。 |
mean(a, c, loc=0, scale=1) | 分布的均值。 |
var(a, c, loc=0, scale=1) | 分布的方差。 |
std(a, c, loc=0, scale=1) | 分布的标准偏差。 |
interval(confidence, a, c, loc=0, scale=1) | 置信区间,围绕中位数具有相等的面积。 |
scipy.stats.exponpow
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.exponpow.html#scipy.stats.exponpow
scipy.stats.exponpow = <scipy.stats._continuous_distns.exponpow_gen object>
一个指数幂连续随机变量。
作为rv_continuous
类的一个实例,exponpow
对象继承了其中一系列通用方法(下面有完整列表),并使用特定于这个特定分布的细节完成它们。
注意
对于exponpow
的概率密度函数为:
[f(x, b) = b x^{b-1} \exp(1 + x^b - \exp(x^b))]
对于(x \ge 0),(b > 0)。注意,这是与指数幂分布不同的另一种分布,该分布也以“广义正态”或“广义高斯”而闻名。
exponpow
将 b
作为形状参数。
上述概率密度以“标准化”形式定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,exponpow.pdf(x, b, loc, scale)
等同于 exponpow.pdf(y, b) / scale
,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
参考文献
www.math.wm.edu/~leemis/chart/UDR/PDFs/Exponentialpower.pdf
示例
>>> import numpy as np
>>> from scipy.stats import exponpow
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> b = 2.7
>>> mean, var, skew, kurt = exponpow.stats(b, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(exponpow.ppf(0.01, b),
... exponpow.ppf(0.99, b), 100)
>>> ax.plot(x, exponpow.pdf(x, b),
... 'r-', lw=5, alpha=0.6, label='exponpow pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这会返回一个“冻结”RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = exponpow(b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = exponpow.ppf([0.001, 0.5, 0.999], b)
>>> np.allclose([0.001, 0.5, 0.999], exponpow.cdf(vals, b))
True
生成随机数:
>>> r = exponpow.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.f
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.f.html#scipy.stats.f
scipy.stats.f = <scipy.stats._continuous_distns.f_gen object>
一个连续 F 随机变量。
非中心 F 分布,请参见 ncf
。
作为 rv_continuous
类的一个实例,f
对象从该类继承了一系列通用方法(详见下文的完整列表),并以特定于该特定分布的细节完成它们。
另请参阅
ncf
注意
具有(df_1 > 0) 和 (df_2 > 0) 自由度的 F 分布是两个独立的卡方分布(自由度分别为 (df_1) 和 (df_2))比值的分布,通过 (df_2 / df_1) 重新缩放后得到。
f
的概率密度函数为:
[f(x, df_1, df_2) = \frac{df_2^{df_2/2} df_1^{df_1/2} x^{df_1 / 2-1}} {(df_2+df_1 x)^{(df_1+df_2)/2} B(df_1/2, df_2/2)}]
对于 (x > 0)。
f
接受形状参数 dfn
和 dfd
作为 (df_1),分子中的卡方分布自由度,以及 (df_2),分母中的卡方分布自由度。
上述的概率密度在“标准化”形式中定义。要改变分布的位置和/或比例,请使用 loc
和 scale
参数。具体而言,f.pdf(x, dfn, dfd, loc, scale)
在 y = (x - loc) / scale
时等价于 f.pdf(y, dfn, dfd) / scale
。请注意,将分布的位置偏移并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import f
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> dfn, dfd = 29, 18
>>> mean, var, skew, kurt = f.stats(dfn, dfd, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(f.ppf(0.01, dfn, dfd),
... f.ppf(0.99, dfn, dfd), 100)
>>> ax.plot(x, f.pdf(x, dfn, dfd),
... 'r-', lw=5, alpha=0.6, label='f pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保持给定参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = f(dfn, dfd)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和 ppf
的准确性:
>>> vals = f.ppf([0.001, 0.5, 0.999], dfn, dfd)
>>> np.allclose([0.001, 0.5, 0.999], f.cdf(vals, dfn, dfd))
True
生成随机数:
>>> r = f.rvs(dfn, dfd, 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(dfn, dfd, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, dfn, dfd, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, dfn, dfd, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, dfn, dfd, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, dfn, dfd, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, dfn, dfd, loc=0, scale=1) | 生存函数(也被定义为1 - cdf ,但sf有时更准确)。 |
logsf(x, dfn, dfd, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, dfn, dfd, loc=0, scale=1) | 百分点函数(cdf 的反函数 — 百分位数)。 |
isf(q, dfn, dfd, loc=0, scale=1) | 逆生存函数(sf 的反函数)。 |
moment(order, dfn, dfd, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(dfn, dfd, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、以及/或峰度(‘k’)。 |
entropy(dfn, dfd, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 适用于通用数据的参数估计。详细文档请参阅scipy.stats.rv_continuous.fit。 |
**expect(func, args=(dfn, dfd), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数期望值(一个参数的函数)。 |
median(dfn, dfd, loc=0, scale=1) | 分布的中位数。 |
mean(dfn, dfd, loc=0, scale=1) | 分布的均值。 |
var(dfn, dfd, loc=0, scale=1) | 分布的方差。 |
std(dfn, dfd, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, dfn, dfd, loc=0, scale=1) | 中位数周围面积相等的置信区间。 |
scipy.stats.fatiguelife
scipy.stats.fatiguelife = <scipy.stats._continuous_distns.fatiguelife_gen object>
一个疲劳寿命(Birnbaum-Saunders)连续随机变量。
作为 rv_continuous
类的一个实例,fatiguelife
对象继承了一组通用方法(下面列出了完整列表),并使用特定于该特定分布的细节来完成它们。
注意事项
对于 fatiguelife
的概率密度函数如下:
[f(x, c) = \frac{x+1}{2c\sqrt{2\pi x³}} \exp(-\frac{(x-1)²}{2x c²})]
对于 (x \geq 0) 和 (c > 0)。
fatiguelife
将 c
作为形状参数(c)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,fatiguelife.pdf(x, c, loc, scale)
与 fatiguelife.pdf(y, c) / scale
是等价的,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心泛化在单独的类中可用。
参考文献
[1]
“Birnbaum-Saunders 分布”,en.wikipedia.org/wiki/Birnbaum-Saunders_distribution
示例
>>> import numpy as np
>>> from scipy.stats import fatiguelife
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> c = 29
>>> mean, var, skew, kurt = fatiguelife.stats(c, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(fatiguelife.ppf(0.01, c),
... fatiguelife.ppf(0.99, c), 100)
>>> ax.plot(x, fatiguelife.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='fatiguelife pdf')
或者,可以通过调用分布对象(作为函数)来固定形状、位置和比例参数。这会返回一个“冻结”的随机变量对象,保持给定的参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = fatiguelife(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = fatiguelife.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], fatiguelife.cdf(vals, c))
True
生成随机数:
>>> r = fatiguelife.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.fisk
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.fisk.html#scipy.stats.fisk
scipy.stats.fisk = <scipy.stats._continuous_distns.fisk_gen object>
Fisk 连续随机变量。
Fisk 分布也称为对数逻辑分布。
作为rv_continuous
类的一个实例,fisk
对象继承了一组通用方法(请参见下面的完整列表),并补充了特定于此特定分布的详细信息。
另见
burr
注释
fisk
的概率密度函数为:
[f(x, c) = \frac{c x^{c-1}} {(1 + x^c)²}]
对于(x \geq 0)和(c > 0)。
请注意,上述表达式可以转换为以下常用形式:
[f(x, c) = \frac{c x^{-c-1}} {(1 + x^{-c})²}]
fisk
将c
作为形状参数(c)。
fisk
是具有d=1
的burr
或burr12
的特例。
假设X
是具有位置l
和比例s
的逻辑随机变量。那么Y = exp(X)
是一个 Fisk(对数逻辑)随机变量,其scale = exp(l)
和形状c = 1/s
。
上述概率密度在“标准化”形式下定义。使用loc
和scale
参数来进行分布的移位和/或缩放。具体而言,fisk.pdf(x, c, loc, scale)
与fisk.pdf(y, c) / scale
等价,其中y = (x - loc) / scale
。请注意,改变分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import fisk
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> c = 3.09
>>> mean, var, skew, kurt = fisk.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(fisk.ppf(0.01, c),
... fisk.ppf(0.99, c), 100)
>>> ax.plot(x, fisk.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='fisk pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中给定的参数被固定。
冻结分布并显示冻结的pdf
:
>>> rv = fisk(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = fisk.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], fisk.cdf(vals, c))
True
生成随机数:
>>> r = fisk.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.foldcauchy
scipy.stats.foldcauchy = <scipy.stats._continuous_distns.foldcauchy_gen object>
一个折叠的柯西连续随机变量。
作为rv_continuous
类的实例,foldcauchy
对象继承了一组通用方法(详见下文的完整列表),并通过特定于此特定分布的细节来补充它们。
注意
foldcauchy
的概率密度函数为:
[f(x, c) = \frac{1}{\pi (1+(x-c)²)} + \frac{1}{\pi (1+(x+c)²)}]
对于 (x \ge 0) 和 (c \ge 0)。
foldcauchy
将 c
作为 (c) 的形状参数。
示例
>>> import numpy as np
>>> from scipy.stats import foldcauchy
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = 4.72
>>> mean, var, skew, kurt = foldcauchy.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(foldcauchy.ppf(0.01, c),
... foldcauchy.ppf(0.99, c), 100)
>>> ax.plot(x, foldcauchy.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='foldcauchy pdf')
或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,保持给定参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = foldcauchy(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = foldcauchy.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], foldcauchy.cdf(vals, c))
True
生成随机数:
>>> r = foldcauchy.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.foldnorm
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.foldnorm.html#scipy.stats.foldnorm
scipy.stats.foldnorm = <scipy.stats._continuous_distns.foldnorm_gen object>
折叠正态连续随机变量。
作为rv_continuous
类的一个实例,foldnorm
对象继承了一系列通用方法(下面列出了完整列表),并用特定于这个特定分布的详细信息来完成它们。
注意事项
foldnorm
的概率密度函数为:
[f(x, c) = \sqrt{2/\pi} cosh(c x) \exp(-\frac{x²+c²}{2})]
对于(x \ge 0)和(c \ge 0)。
foldnorm
将c
作为形状参数(c)。
上述概率密度以“标准化”形式定义。使用loc
和scale
参数来进行分布的位移和/或缩放。具体来说,foldnorm.pdf(x, c, loc, scale)
与foldnorm.pdf(y, c) / scale
等价,其中y = (x - loc) / scale
。注意,改变分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。
示例
>>> import numpy as np
>>> from scipy.stats import foldnorm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> c = 1.95
>>> mean, var, skew, kurt = foldnorm.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(foldnorm.ppf(0.01, c),
... foldnorm.ppf(0.99, c), 100)
>>> ax.plot(x, foldnorm.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='foldnorm pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这会返回一个“冻结”的 RV 对象,保存给定的参数。
冻结分布并显示冻结的pdf
:
>>> rv = foldnorm(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = foldnorm.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], foldnorm.cdf(vals, c))
True
生成随机数:
>>> r = foldnorm.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) | RV 的(微分)熵。 |
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.genlogistic
scipy.stats.genlogistic = <scipy.stats._continuous_distns.genlogistic_gen object>
一个广义逻辑连续随机变量。
作为rv_continuous
类的一个实例,genlogistic
对象从中继承了一系列通用方法(请参见下文的完整列表),并为该特定分布补充了具体的细节。
注
genlogistic
的概率密度函数是:
[f(x, c) = c \frac{\exp(-x)} {(1 + \exp(-x))^{c+1}}]
用于实数(x)和(c > 0)。在文献中,可以找到逻辑分布的不同泛化形式。这是根据[1]的类型 1 广义逻辑分布。它也被称为偏态逻辑分布[2]。
genlogistic
将c
作为形状参数(c)。
上述概率密度以“标准化”形式定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,genlogistic.pdf(x, c, loc, scale)
与genlogistic.pdf(y, c) / scale
完全等效,其中y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
参考文献
[1]
Johnson 等人,“Continuous Univariate Distributions”,第 2 卷,Wiley 出版社,1995 年。
[2]
“广义逻辑分布”,维基百科,en.wikipedia.org/wiki/Generalized_logistic_distribution
示例
>>> import numpy as np
>>> from scipy.stats import genlogistic
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = 0.412
>>> mean, var, skew, kurt = genlogistic.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(genlogistic.ppf(0.01, c),
... genlogistic.ppf(0.99, c), 100)
>>> ax.plot(x, genlogistic.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='genlogistic pdf')
或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,保持给定参数不变。
冻结分布并显示冻结的pdf
:
>>> rv = genlogistic(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = genlogistic.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], genlogistic.cdf(vals, c))
True
生成随机数:
>>> r = genlogistic.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.gennorm
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gennorm.html#scipy.stats.gennorm
scipy.stats.gennorm = <scipy.stats._continuous_distns.gennorm_gen object>
一个广义正态连续随机变量。
作为 rv_continuous
类的一个实例,gennorm
对象继承了一组通用方法(下面是完整列表),并用于这个特定分布的详细信息。
另请参阅
laplace
拉普拉斯分布
[
norm`
正态分布
注释
gennorm
的概率密度函数是 [1]:
[f(x, \beta) = \frac{\beta}{2 \Gamma(1/\beta)} \exp(-|x|^\beta),]
其中 (x) 是实数,(\beta > 0),(\Gamma) 是伽马函数(scipy.special.gamma
)。
gennorm
以 beta
为形状参数。当 (\beta = 1) 时,等同于拉普拉斯分布。当 (\beta = 2) 时,等同于正态分布(scale=1/sqrt(2)
)。
参考文献
[1]
“广义正态分布,第 1 版”,en.wikipedia.org/wiki/Generalized_normal_distribution#Version_1
[2]
Nardon, Martina, and Paolo Pianca. “广义高斯密度的模拟技术。” 统计计算与模拟杂志 79.11 (2009): 1317-1329
[3]
Wicklin, Rick. “从广义高斯分布模拟数据” in The DO Loop 博客, 2016 年 9 月 21 日, blogs.sas.com/content/iml/2016/09/21/simulate-generalized-gaussian-sas.html
示例
>>> import numpy as np
>>> from scipy.stats import gennorm
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四阶矩:
>>> beta = 1.3
>>> mean, var, skew, kurt = gennorm.stats(beta, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(gennorm.ppf(0.01, beta),
... gennorm.ppf(0.99, beta), 100)
>>> ax.plot(x, gennorm.pdf(x, beta),
... 'r-', lw=5, alpha=0.6, label='gennorm pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这会返回一个“冻结”的 RV 对象,固定给定的参数。
冻结分布并显示冻结的 pdf
:
>>> rv = gennorm(beta)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gennorm.ppf([0.001, 0.5, 0.999], beta)
>>> np.allclose([0.001, 0.5, 0.999], gennorm.cdf(vals, beta))
True
生成随机数:
>>> r = gennorm.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.genpareto
原文:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.genpareto.html#scipy.stats.genpareto
scipy.stats.genpareto = <scipy.stats._continuous_distns.genpareto_gen object>
一个广义 Pareto 连续随机变量。
作为rv_continuous
类的一个实例,genpareto
对象继承了一系列通用方法(详见下文),并针对特定分布补充了具体细节。
注意
genpareto
的概率密度函数为:
[f(x, c) = (1 + c x)^{-1 - 1/c}]
如果 (c \ge 0),定义为 (x \ge 0),如果 (c < 0),定义为 (0 \le x \le -1/c)。
genpareto
将 c
作为形状参数。
对于 (c=0),genpareto
缩减为指数分布,expon
:
[f(x, 0) = \exp(-x)]
对于 (c=-1),genpareto
在 [0, 1]
上是均匀分布的:
[f(x, -1) = 1]
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体地,genpareto.pdf(x, c, loc, scale)
等价于 genpareto.pdf(y, c) / scale
,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import genpareto
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = 0.1
>>> mean, var, skew, kurt = genpareto.stats(c, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(genpareto.ppf(0.01, c),
... genpareto.ppf(0.99, c), 100)
>>> ax.plot(x, genpareto.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='genpareto pdf')
或者,可以通过调用(作为函数)分布对象来固定形状、位置和比例参数。这将返回一个“冻结的”RV 对象,其中包含给定的固定参数。
冻结分布并显示冻结的 pdf
:
>>> rv = genpareto(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = genpareto.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], genpareto.cdf(vals, c))
True
生成随机数:
>>> r = genpareto.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.genexpon
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.genexpon.html#scipy.stats.genexpon
scipy.stats.genexpon = <scipy.stats._continuous_distns.genexpon_gen object>
一个广义的指数连续随机变量。
作为rv_continuous
类的一个实例,genexpon
对象继承了一组通用方法(请参阅下面的完整列表),并完成了这些方法的特定细节,适用于这个特定的分布。
注释
genexpon
的概率密度函数为:
[f(x, a, b, c) = (a + b (1 - \exp(-c x))) \exp(-a x - b x + \frac{b}{c} (1-\exp(-c x)))]
对于 (x \ge 0), (a, b, c > 0).
genexpon
以 (a)、(b) 和 (c) 作为形状参数。
上述概率密度函数定义为“标准化”形式。要移动和/或缩放分布,请使用loc
和scale
参数。具体来说,genexpon.pdf(x, a, b, c, loc, scale)
与genexpon.pdf(y, a, b, c) / scale
等价,其中y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广在单独的类别中可用。
参考文献
H.K. Ryu,“Marshall 和 Olkin 双变量指数分布的扩展”,美国统计协会杂志,1993 年。
N. Balakrishnan, Asit P. Basu(编辑),指数分布:理论、方法与应用,Gordon and Breach,1995 年。ISBN 10: 2884491929
示例
>>> import numpy as np
>>> from scipy.stats import genexpon
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> a, b, c = 9.13, 16.2, 3.28
>>> mean, var, skew, kurt = genexpon.stats(a, b, c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(genexpon.ppf(0.01, a, b, c),
... genexpon.ppf(0.99, a, b, c), 100)
>>> ax.plot(x, genexpon.pdf(x, a, b, c),
... 'r-', lw=5, alpha=0.6, label='genexpon pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和缩放参数。这将返回一个“冻结的”RV 对象,保持给定参数不变。
冻结分布并显示冻结的pdf
:
>>> rv = genexpon(a, b, c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = genexpon.ppf([0.001, 0.5, 0.999], a, b, c)
>>> np.allclose([0.001, 0.5, 0.999], genexpon.cdf(vals, a, b, c))
True
生成随机数:
>>> r = genexpon.rvs(a, b, c, size=1000)
并且比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
rvs(a, b, c, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, a, b, c, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, a, b, c, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, a, b, c, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, a, b, c, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, a, b, c, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但有时sf更准确)。 |
logsf(x, a, b, c, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, a, b, c, loc=0, scale=1) | 百分点函数(cdf 的逆 — 百分位数)。 |
isf(q, a, b, c, loc=0, scale=1) | 逆生存函数(sf 的逆)。 |
moment(order, a, b, c, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(a, b, c, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、及/或峰度(‘k’)。 |
entropy(a, b, c, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。参见scipy.stats.rv_continuous.fit以获取关键字参数的详细文档。 |
**expect(func, args=(a, b, c), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 相对于分布的一个参数的函数的期望值。 |
median(a, b, c, loc=0, scale=1) | 分布的中位数。 |
mean(a, b, c, loc=0, scale=1) | 分布的均值。 |
var(a, b, c, loc=0, scale=1) | 分布的方差。 |
std(a, b, c, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, a, b, c, loc=0, scale=1) | 置信区间,围绕中位数具有相等面积。 |
scipy.stats.genextreme
scipy.stats.genextreme = <scipy.stats._continuous_distns.genextreme_gen object>
一个广义极值连续随机变量。
作为 rv_continuous
类的一个实例,genextreme
对象从中继承了一组通用方法(请参阅下文的完整列表),并使用特定于此特定分布的细节进行补充。
另请参见
gumbel_r
注释
对于 (c=0) ,genextreme
等同于具有概率密度函数的 gumbel_r
[f(x) = \exp(-\exp(-x)) \exp(-x),]
其中 (-\infty < x < \infty)。
对于 (c \ne 0),genextreme
的概率密度函数为:
[f(x, c) = \exp(-(1-c x)^{1/c}) (1-c x)^{1/c-1},]
当 (c > 0) 时,其中 (-\infty < x \le 1/c) ,当 (c < 0) 时,其中 (1/c \le x < \infty) 。
请注意,几个来源和软件包对于形状参数 (c) 的符号使用相反的约定。
genextreme
将 c
作为形状参数。
上述概率密度定义为“标准化”形式。使用loc
和scale
参数来进行分布的移动和/或缩放。具体来说,genextreme.pdf(x, c, loc, scale)
与genextreme.pdf(y, c) / scale
完全等效,其中y = (x - loc) / scale
。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import genextreme
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = -0.1
>>> mean, var, skew, kurt = genextreme.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(genextreme.ppf(0.01, c),
... genextreme.ppf(0.99, c), 100)
>>> ax.plot(x, genextreme.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='genextreme pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和尺度参数。这会返回一个“冻结”的随机变量对象,其中包含给定的参数固定。
冻结分布并显示冻结的 pdf
:
>>> rv = genextreme(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = genextreme.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], genextreme.cdf(vals, c))
True
生成随机数:
>>> r = genextreme.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.gausshyper
scipy.stats.gausshyper = <scipy.stats._continuous_distns.gausshyper_gen object>
高斯超几何连续随机变量。
作为 rv_continuous
类的一个实例,gausshyper
对象继承了一组通用方法(请参见下面的完整列表),并为此特定分布提供了详细信息。
注释
gausshyper
的概率密度函数是:
[f(x, a, b, c, z) = C x^{a-1} (1-x)^{b-1} (1+zx)^{-c}]
对于 (0 \le x \le 1), (a,b > 0), (c) 是实数, (z > -1), 且 (C = \frac{1}{B(a, b) F2, 1}). (F[2, 1]) 是高斯超几何函数 scipy.special.hyp2f1
。
gausshyper
使用 (a), (b), (c) 和 (z) 作为形状参数。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体来说,gausshyper.pdf(x, a, b, c, z, loc, scale)
等同于 gausshyper.pdf(y, a, b, c, z) / scale
,其中 y = (x - loc) / scale
。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。
参考文献
[1]
Armero, C., and M. J. Bayarri. “Prior Assessments for Prediction in Queues.” Journal of the Royal Statistical Society. Series D (The Statistician) 43, no. 1 (1994): 139-53. doi:10.2307/2348939
示例
>>> import numpy as np
>>> from scipy.stats import gausshyper
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> a, b, c, z = 13.8, 3.12, 2.51, 5.18
>>> mean, var, skew, kurt = gausshyper.stats(a, b, c, z, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(gausshyper.ppf(0.01, a, b, c, z),
... gausshyper.ppf(0.99, a, b, c, z), 100)
>>> ax.plot(x, gausshyper.pdf(x, a, b, c, z),
... 'r-', lw=5, alpha=0.6, label='gausshyper pdf')
或者,分布对象可以被调用(作为一个函数)以固定形状、位置和比例参数。这将返回一个固定给定参数的“冻结”随机变量对象。
冻结分布并显示冻结的 pdf
:
>>> rv = gausshyper(a, b, c, z)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gausshyper.ppf([0.001, 0.5, 0.999], a, b, c, z)
>>> np.allclose([0.001, 0.5, 0.999], gausshyper.cdf(vals, a, b, c, z))
True
生成随机数:
>>> r = gausshyper.rvs(a, b, c, z, 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, c, z, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, a, b, c, z, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, a, b, c, z, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, a, b, c, z, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, a, b, c, z, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, a, b, c, z, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但 sf 有时更准确)。 |
logsf(x, a, b, c, z, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, a, b, c, z, loc=0, scale=1) | 百分点函数(cdf 的反函数 — 百分位数)。 |
isf(q, a, b, c, z, loc=0, scale=1) | 逆生存函数(sf 的反函数)。 |
moment(order, a, b, c, z, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(a, b, c, z, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、及/或峰度(‘k’)。 |
entropy(a, b, c, z, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。详细文档参见 scipy.stats.rv_continuous.fit。 |
**expect(func, args=(a, b, c, z), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(一元函数)的期望值。 |
median(a, b, c, z, loc=0, scale=1) | 分布的中位数。 |
mean(a, b, c, z, loc=0, scale=1) | 分布的均值。 |
var(a, b, c, z, loc=0, scale=1) | 分布的方差。 |
std(a, b, c, z, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, a, b, c, z, loc=0, scale=1) | 围绕中位数的等面积置信区间。 |
scipy.stats.gamma
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gamma.html#scipy.stats.gamma
scipy.stats.gamma = <scipy.stats._continuous_distns.gamma_gen object>
一个伽玛连续随机变量。
作为rv_continuous
类的一个实例,gamma
对象继承了一系列通用方法(下面有完整列表),并根据这个特定分布补充了细节。
另见
注释
gamma
的概率密度函数为:
[f(x, a) = \frac{x^{a-1} e^{-x}}{\Gamma(a)}]
对于 (x \ge 0), (a > 0)。这里 (\Gamma(a)) 是伽玛函数。
gamma
将 a
作为形状参数。
当 (a) 是整数时,gamma
缩减为 Erlang 分布;当 (a=1) 时,缩减为指数分布。
有时用两个变量来参数化伽玛分布,其概率密度函数为:
[f(x, \alpha, \beta) = \frac{\beta^\alpha x^{\alpha - 1} e^{-\beta x }}{\Gamma(\alpha)}]
注意,此参数化与上述等价,其中scale = 1 / beta
。
上述概率密度定义为“标准化”形式。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,gamma.pdf(x, a, loc, scale)
与 gamma.pdf(y, a) / scale
等效,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import gamma
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> a = 1.99
>>> mean, var, skew, kurt = gamma.stats(a, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(gamma.ppf(0.01, a),
... gamma.ppf(0.99, a), 100)
>>> ax.plot(x, gamma.pdf(x, a),
... 'r-', lw=5, alpha=0.6, label='gamma pdf')
或者,可以通过调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个固定给定参数的“冻结”随机变量对象。
冻结分布并显示冻结的pdf
:
>>> rv = gamma(a)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gamma.ppf([0.001, 0.5, 0.999], a)
>>> np.allclose([0.001, 0.5, 0.999], gamma.cdf(vals, a))
True
生成随机数:
>>> r = gamma.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) | 生存函数(有时比 cdf 更准确)。 |
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.gengamma
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gengamma.html#scipy.stats.gengamma
scipy.stats.gengamma = <scipy.stats._continuous_distns.gengamma_gen object>
广义伽玛连续随机变量。
作为 rv_continuous
类的一个实例,gengamma
对象继承了一组通用方法(下面有完整列表),并通过这些方法完成了针对特定分布的详细设置。
另请参阅
gamma
, invgamma
, weibull_min
注意
gengamma
的概率密度函数为 ([1]):
[f(x, a, c) = \frac{|c| x^{c a-1} \exp(-x^c)}{\Gamma(a)}]
对于 (x \ge 0), (a > 0), 和 (c \ne 0)。 (\Gamma) 是伽玛函数(scipy.special.gamma
)。
gengamma
以 (a) 和 (c) 作为形状参数。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体地,gengamma.pdf(x, a, c, loc, scale)
等同于 gengamma.pdf(y, a, c) / scale
,其中 y = (x - loc) / scale
。注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
参考文献
[1]
E.W. Stacy,“伽玛分布的推广”,《数理统计学年鉴》,第 33 卷(3),pp. 1187–1192。
示例
>>> import numpy as np
>>> from scipy.stats import gengamma
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> a, c = 4.42, -3.12
>>> mean, var, skew, kurt = gengamma.stats(a, c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(gengamma.ppf(0.01, a, c),
... gengamma.ppf(0.99, a, c), 100)
>>> ax.plot(x, gengamma.pdf(x, a, c),
... 'r-', lw=5, alpha=0.6, label='gengamma pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中包含给定的固定参数。
冻结分布并显示冻结的 pdf
:
>>> rv = gengamma(a, c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gengamma.ppf([0.001, 0.5, 0.999], a, c)
>>> np.allclose([0.001, 0.5, 0.999], gengamma.cdf(vals, a, c))
True
生成随机数:
>>> r = gengamma.rvs(a, 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(a, c, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, a, c, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, a, c, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, a, c, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, a, c, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, a, c, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但sf有时更准确)。 |
logsf(x, a, c, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, a, c, loc=0, scale=1) | 百分点函数(cdf 的反函数 — 百分位数)。 |
isf(q, a, c, loc=0, scale=1) | 逆生存函数(sf 的反函数)。 |
moment(order, a, c, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(a, c, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
entropy(a, c, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 适用于通用数据的参数估计。详细文档请参阅 scipy.stats.rv_continuous.fit。 |
**expect(func, args=(a, c), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 关于分布的函数(一个参数)的期望值。 |
median(a, c, loc=0, scale=1) | 分布的中位数。 |
mean(a, c, loc=0, scale=1) | 分布的均值。 |
var(a, c, loc=0, scale=1) | 分布的方差。 |
std(a, c, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, a, c, loc=0, scale=1) | 中位数周围面积相等的置信区间。 |
scipy.stats.genhalflogistic
scipy.stats.genhalflogistic = <scipy.stats._continuous_distns.genhalflogistic_gen object>
一个广义半正态连续随机变量。
作为 rv_continuous
类的一个实例,genhalflogistic
对象从中继承了一组通用方法(完整列表见下文),并使用特定于此特定分布的详细信息完成它们。
Notes
genhalflogistic
的概率密度函数为:
[f(x, c) = \frac{2 (1 - c x)^{1/(c-1)}}{[1 + (1 - c x)^{1/c}]²}]
对于 (0 \le x \le 1/c),且 (c > 0)。
genhalflogistic
将 c
视为形状参数 (c)。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,genhalflogistic.pdf(x, c, loc, scale)
与 genhalflogistic.pdf(y, c) / scale
完全等效,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不会使其成为“非中心”分布;某些分布的非中心泛化是通过单独的类实现的。
Examples
>>> import numpy as np
>>> from scipy.stats import genhalflogistic
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> c = 0.773
>>> mean, var, skew, kurt = genhalflogistic.stats(c, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(genhalflogistic.ppf(0.01, c),
... genhalflogistic.ppf(0.99, c), 100)
>>> ax.plot(x, genhalflogistic.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='genhalflogistic pdf')
或者,可以像调用函数一样调用分布对象来固定形状、位置和比例参数。这将返回一个“冻结的”RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = genhalflogistic(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = genhalflogistic.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], genhalflogistic.cdf(vals, c))
True
生成随机数:
>>> r = genhalflogistic.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()
Methods
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.genhyperbolic
scipy.stats.genhyperbolic = <scipy.stats._continuous_distns.genhyperbolic_gen object>
一个广义的双曲连续随机变量。
作为rv_continuous
类的一个实例,genhyperbolic
对象从中继承了一组通用方法(下面详细列出),并针对这种特定分布完成了具体的细节。
另见
t
, norminvgauss
, geninvgauss
, laplace
, cauchy
注意事项
genhyperbolic
的概率密度函数为:
[f(x, p, a, b) = \frac{(a² - b²)^{p/2}} {\sqrt{2\pi}a^{p-1/2} K_p\Big(\sqrt{a² - b²}\Big)} e^{bx} \times \frac{K_{p - 1/2} (a \sqrt{1 + x²})} {(\sqrt{1 + x²})^{1/2 - p}}]
对于 (x, p \in (-\infty; \infty)), 若 (p \ge 0), 则 (|b| < a), 若 (p < 0), 则 (|b| \le a). (K_{p}(.)) 表示第二类修正贝塞尔函数及其阶数 (p) (scipy.special.kv
)
genhyperbolic
以尾参数p
,形状参数a
,偏斜参数b
为输入。
上述概率密度在“标准化”形式下定义。要改变分布的位置和/或尺度,请使用loc
和scale
参数。具体而言,genhyperbolic.pdf(x, p, a, b, loc, scale)
与genhyperbolic.pdf(y, p, a, b) / scale
完全等效,其中y = (x - loc) / scale
。请注意,改变分布的位置并不会使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
广义双曲分布的原始参数化在[1]中如下所示:
[f(x, \lambda, \alpha, \beta, \delta, \mu) = \frac{(\gamma/\delta)^\lambda}{\sqrt{2\pi}K_\lambda(\delta \gamma)} e^{\beta (x - \mu)} \times \frac{K_{\lambda - 1/2} (\alpha \sqrt{\delta² + (x - \mu)²})} {(\sqrt{\delta² + (x - \mu)²} / \alpha)^{1/2 - \lambda}}]
对于 (x \in (-\infty; \infty)), (\gamma := \sqrt{\alpha² - \beta²}), (\lambda, \mu \in (-\infty; \infty)), (\delta \ge 0, |\beta| < \alpha) 若 (\lambda \ge 0), (\delta > 0, |\beta| \le \alpha) 若 (\lambda < 0)。
SciPy 中实施的基于位置-尺度的参数化是基于[2],其中 (a = \alpha\delta),(b = \beta\delta),(p = \lambda),scale=\delta
和 loc=\mu
。
对于像学生 t 分布这样的特殊情况,不建议依赖于 genhyperbolic 的实现。为了避免潜在的数值问题并出于性能考虑,应当使用特定分布的方法。
参考文献
[1]
O. Barndorff-Nielsen,“双曲分布和双曲线上的分布”,斯堪的纳维亚统计杂志,Vol. 5(3),pp. 151-157,1978 年。www.jstor.org/stable/4615705
[2]
Eberlein E., Prause K. (2002) 广义双曲模型:金融衍生品和风险测量。在:Geman H., Madan D., Pliska S.R., Vorst T.(eds)数学金融 - 巴舍利尔大会 2000 年。Springer Finance. Springer, Berlin, Heidelberg. DOI:10.1007/978-3-662-12429-1_12
[3]
Scott, David J, Würtz, Diethelm, Dong, Christine 和 Tran, Thanh Tam,(2009),广义双曲分布的矩,MPRA Paper,慕尼黑大学图书馆,德国,EconPapers.repec.org/RePEc:pra:mprapa:19081
。
[4]
E. Eberlein 和 E. A. von Hammerstein。广义双曲和逆高斯分布:极限情况和过程近似。FDM Preprint 80, 2003 年 4 月。弗莱堡大学。freidok.uni-freiburg.de/fedora/objects/freidok:7974/datastreams/FILE1/content
示例
>>> import numpy as np
>>> from scipy.stats import genhyperbolic
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> p, a, b = 0.5, 1.5, -0.5
>>> mean, var, skew, kurt = genhyperbolic.stats(p, a, b, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(genhyperbolic.ppf(0.01, p, a, b),
... genhyperbolic.ppf(0.99, p, a, b), 100)
>>> ax.plot(x, genhyperbolic.pdf(x, p, a, b),
... 'r-', lw=5, alpha=0.6, label='genhyperbolic pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和尺度参数。这将返回一个固定给定参数的“冻结”RV 对象。
冻结分布并显示冻结的pdf
:
>>> rv = genhyperbolic(p, a, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = genhyperbolic.ppf([0.001, 0.5, 0.999], p, a, b)
>>> np.allclose([0.001, 0.5, 0.999], genhyperbolic.cdf(vals, p, a, b))
True
生成随机数:
>>> r = genhyperbolic.rvs(p, 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(p, a, b, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, p, a, b, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, p, a, b, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, p, a, b, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, p, a, b, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, p, a, b, loc=0, scale=1) | 生存函数(也定义为1 - cdf ,但sf有时更精确)。 |
logsf(x, p, a, b, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, p, a, b, loc=0, scale=1) | 百分位点函数(cdf 的反函数 — 百分位数)。 |
isf(q, p, a, b, loc=0, scale=1) | 逆生存函数(sf 的反函数)。 |
moment(order, p, a, b, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(p, a, b, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
entropy(p, a, b, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。详细文档请参见 scipy.stats.rv_continuous.fit。 |
**expect(func, args=(p, a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 对分布的函数期望值(一个参数)。 |
median(p, a, b, loc=0, scale=1) | 分布的中位数。 |
mean(p, a, b, loc=0, scale=1) | 分布的均值。 |
var(p, a, b, loc=0, scale=1) | 分布的方差。 |
std(p, a, b, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, p, a, b, loc=0, scale=1) | 等面积置信区间,围绕中位数。 |
scipy.stats.geninvgauss
scipy.stats.geninvgauss = <scipy.stats._continuous_distns.geninvgauss_gen object>
一个广义逆高斯连续随机变量。
作为 rv_continuous
类的一个实例,geninvgauss
对象继承了一组通用方法(请参见下文的完整列表),并为这个特定分布补充了细节。
注释
geninvgauss
的概率密度函数是:
[f(x, p, b) = x^{p-1} \exp(-b (x + 1/x) / 2) / (2 K_p(b))]
其中 x > 0,p 是一个实数,b > 0([1])。(K_p) 是二阶修正贝塞尔函数,阶数为 p(scipy.special.kv
)。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,geninvgauss.pdf(x, p, b, loc, scale)
等同于 geninvgauss.pdf(y, p, b) / scale
,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心泛化版本可在单独的类中找到。
逆高斯分布 stats.invgauss(mu) 是 geninvgauss
的一个特例,其中 p = -1/2,b = 1 / mu,scale = mu。
为该分布生成随机变量是具有挑战性的。该实现基于[2]。
参考文献
[1]
O. Barndorff-Nielsen, P. Blaesild, C. Halgreen,“广义逆高斯分布的第一次击中时间模型”,《随机过程及其应用》7,pp. 49–54,1978 年。
[2]
W. Hoermann 和 J. Leydold,“生成广义逆高斯随机变量”,《统计与计算》,24(4),p. 547–557,2014 年。
示例
>>> import numpy as np
>>> from scipy.stats import geninvgauss
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> p, b = 2.3, 1.5
>>> mean, var, skew, kurt = geninvgauss.stats(p, b, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(geninvgauss.ppf(0.01, p, b),
... geninvgauss.ppf(0.99, p, b), 100)
>>> ax.plot(x, geninvgauss.pdf(x, p, b),
... 'r-', lw=5, alpha=0.6, label='geninvgauss pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中给定参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = geninvgauss(p, b)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = geninvgauss.ppf([0.001, 0.5, 0.999], p, b)
>>> np.allclose([0.001, 0.5, 0.999], geninvgauss.cdf(vals, p, b))
True
生成随机数:
>>> r = geninvgauss.rvs(p, 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(p, b, loc=0, scale=1, size=1, random_state=None):随机变量。 |
---|
- pdf(x, p, b, loc=0, scale=1):概率密度函数。 |
- logpdf(x, p, b, loc=0, scale=1):概率密度函数的对数。 |
cdf(x, p, b, loc=0, scale=1) |
logcdf(x, p, b, loc=0, scale=1) |
sf(x, p, b, loc=0, scale=1) |
logsf(x, p, b, loc=0, scale=1) |
ppf(q, p, b, loc=0, scale=1) |
isf(q, p, b, loc=0, scale=1) |
moment(order, p, b, loc=0, scale=1) |
stats(p, b, loc=0, scale=1, moments=’mv’) |
entropy(p, b, loc=0, scale=1) |
fit(data) |
**expect(func, args=(p, b), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) |
median(p, b, loc=0, scale=1) |
mean(p, b, loc=0, scale=1) |
var(p, b, loc=0, scale=1) |
std(p, b, loc=0, scale=1) |
interval(confidence, p, b, loc=0, scale=1) |
scipy.stats.gibrat
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gibrat.html#scipy.stats.gibrat
scipy.stats.gibrat = <scipy.stats._continuous_distns.gibrat_gen object>
一个 Gibrat 连续随机变量。
作为 rv_continuous
类的一个实例,gibrat
对象继承了一组通用方法(请参阅下面的完整列表),并使用特定于这种特定分布的详细信息补充它们。
注释
gibrat
的概率密度函数为:
[f(x) = \frac{1}{x \sqrt{2\pi}} \exp(-\frac{1}{2} (\log(x))²)]
gibrat
是具有 s=1
的 lognorm
的特例。
上述概率密度在“标准化”形式中定义。使用 loc
和 scale
参数来移动和/或缩放分布。具体来说,gibrat.pdf(x, loc, scale)
等同于 gibrat.pdf(y) / scale
,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广在单独的类中可用。
示例
>>> import numpy as np
>>> from scipy.stats import gibrat
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> mean, var, skew, kurt = gibrat.stats(moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(gibrat.ppf(0.01),
... gibrat.ppf(0.99), 100)
>>> ax.plot(x, gibrat.pdf(x),
... 'r-', lw=5, alpha=0.6, label='gibrat pdf')
或者,可以调用分布对象(作为函数),以固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,其中固定了给定的参数。
冻结分布并显示冻结的 pdf
:
>>> rv = gibrat()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gibrat.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], gibrat.cdf(vals))
True
生成随机数:
>>> r = gibrat.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.gompertz
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gompertz.html#scipy.stats.gompertz
scipy.stats.gompertz = <scipy.stats._continuous_distns.gompertz_gen object>
Gompertz(或截尾 Gumbel)连续随机变量。
作为 rv_continuous
类的一个实例,gompertz
对象从中继承了一组通用方法(请参见下文的完整列表),并以此特定分布的细节补充完整。
注:
gompertz
的概率密度函数为:
[f(x, c) = c \exp(x) \exp(-c (e^x-1))]
对于 (x \ge 0), (c > 0)。
gompertz
以参数 (c) 作为形状参数。
上述的概率密度在“标准化”形式中定义。要进行分布的移位和/或缩放,请使用 loc
和 scale
参数。具体而言,gompertz.pdf(x, c, loc, scale)
与 y = (x - loc) / scale
等效。请注意,将分布的位置移动并不会使其成为“非中心”分布;某些分布的非中心泛化在单独的类中可用。
示例
>>> import numpy as np
>>> from scipy.stats import gompertz
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> c = 0.947
>>> mean, var, skew, kurt = gompertz.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(gompertz.ppf(0.01, c),
... gompertz.ppf(0.99, c), 100)
>>> ax.plot(x, gompertz.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='gompertz pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和缩放参数。这会返回一个“冻结”的 RV 对象,保持给定的参数固定。
冻结分布并显示冻结的 pdf
:
>>> rv = gompertz(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gompertz.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], gompertz.cdf(vals, c))
True
生成随机数:
>>> r = gompertz.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.gumbel_r
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gumbel_r.html#scipy.stats.gumbel_r
scipy.stats.gumbel_r = <scipy.stats._continuous_distns.gumbel_r_gen object>
一个右偏的 Gumbel 连续随机变量。
作为 rv_continuous
类的一个实例,gumbel_r
对象从中继承了一组通用方法(下面详细列出),并使用了特定于该特定分布的细节来完成它们。
另请参阅
gumbel_l
, gompertz
, genextreme
注意事项
gumbel_r
的概率密度函数为:
[f(x) = \exp(-(x + e^{-x}))]
Gumbel 分布有时被称为第一类 Fisher-Tippett 分布。它还与极值分布、对数威布尔分布和 Gompertz 分布有关。
上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,gumbel_r.pdf(x, loc, scale)
与 gumbel_r.pdf(y) / scale
是等价的,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import gumbel_r
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> mean, var, skew, kurt = gumbel_r.stats(moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(gumbel_r.ppf(0.01),
... gumbel_r.ppf(0.99), 100)
>>> ax.plot(x, gumbel_r.pdf(x),
... 'r-', lw=5, alpha=0.6, label='gumbel_r pdf')
或者,可以通过调用分布对象(作为函数)来固定形状、位置和尺度参数。这将返回一个“冻结”的随机变量对象,保持给定的参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = gumbel_r()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gumbel_r.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], gumbel_r.cdf(vals))
True
生成随机数:
>>> r = gumbel_r.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.gumbel_l
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gumbel_l.html#scipy.stats.gumbel_l
scipy.stats.gumbel_l = <scipy.stats._continuous_distns.gumbel_l_gen object>
一个左偏的 Gumbel 连续随机变量。
作为 rv_continuous
类的实例,gumbel_l
对象继承了一系列通用方法(下文详见),并为此特定分布添加了具体细节。
另请参阅
gumbel_r
, gompertz
, genextreme
注意事项
gumbel_l
的概率密度函数为:
[f(x) = \exp(x - e^x)]
Gumbel 分布有时被称为一型 Fisher-Tippett 分布。它也与极值分布、对数威布尔分布和 Gompertz 分布有关。
上述概率密度定义为“标准化”形式。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,gumbel_l.pdf(x, loc, scale)
与 gumbel_l.pdf(y) / scale
等价,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import gumbel_l
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四阶矩:
>>> mean, var, skew, kurt = gumbel_l.stats(moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(gumbel_l.ppf(0.01),
... gumbel_l.ppf(0.99), 100)
>>> ax.plot(x, gumbel_l.pdf(x),
... 'r-', lw=5, alpha=0.6, label='gumbel_l pdf')
或者,分布对象可以被调用(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,保持给定参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = gumbel_l()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = gumbel_l.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], gumbel_l.cdf(vals))
True
生成随机数:
>>> r = gumbel_l.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.halfcauchy
scipy.stats.halfcauchy = <scipy.stats._continuous_distns.halfcauchy_gen object>
一个半柯西连续随机变量。
作为 rv_continuous
类的一个实例,halfcauchy
对象继承了该类的一系列通用方法(详见下文),并以特定于该分布的细节进行补充。
注意
halfcauchy
的概率密度函数为:
[f(x) = \frac{2}{\pi (1 + x²)}]
对于 (x \ge 0)。
上述概率密度函数定义为“标准化”形式。使用 loc
和 scale
参数进行平移和/或缩放分布。具体而言,halfcauchy.pdf(x, loc, scale)
等价于 halfcauchy.pdf(y) / scale
,其中 y = (x - loc) / scale
。请注意,平移分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import halfcauchy
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四阶矩:
>>> mean, var, skew, kurt = halfcauchy.stats(moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(halfcauchy.ppf(0.01),
... halfcauchy.ppf(0.99), 100)
>>> ax.plot(x, halfcauchy.pdf(x),
... 'r-', lw=5, alpha=0.6, label='halfcauchy pdf')
或者,可以将分布对象调用(作为函数)以固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = halfcauchy()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = halfcauchy.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], halfcauchy.cdf(vals))
True
生成随机数:
>>> r = halfcauchy.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.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) \left(1-\frac{x}{\left(a+b+x²\right){1/2}}\right)]
对于实数 (a>0) 和 (b>0),其中 (C_{a,b} = 2{a+b-1}B(a,b)(a+b)),而 (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})]
如果(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_distribution
www.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 + xa)]
对于(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) | 置信区间,围绕中位数有相等面积的区间。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~