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

37 阅读43分钟

SciPy 1.12 中文文档(五十三)

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

scipy.stats.foldcauchy

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.foldcauchy.html#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)。

foldcauchyc 作为 (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') 

检查 cdfppf 的准确性:

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

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

方法

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

scipy.stats.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)。

foldnormc作为形状参数(c)。

上述概率密度以“标准化”形式定义。使用locscale参数来进行分布的位移和/或缩放。具体来说,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') 

检查cdfppf的准确性:

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

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

方法

rvs(c, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, c, loc=0, scale=1)概率密度函数。
logpdf(x, c, loc=0, scale=1)概率密度函数的对数。
cdf(x, c, loc=0, scale=1)累积分布函数。
logcdf(x, c, loc=0, scale=1)累积分布函数的对数。
sf(x, c, loc=0, scale=1)生存函数(也定义为1 - cdf,但sf有时更准确)。
logsf(x, c, loc=0, scale=1)生存函数的对数。
ppf(q, c, loc=0, scale=1)百分位点函数(cdf的反函数——百分位数)。
isf(q, c, loc=0, scale=1)生存函数的反函数(sf的反函数)。
moment(order, c, loc=0, scale=1)指定阶数的非中心矩。
stats(c, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。
entropy(c, loc=0, scale=1)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

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.genlogistic.html#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]

genlogisticc作为形状参数(c)。

上述概率密度以“标准化”形式定义。要移动和/或缩放分布,请使用locscale参数。具体而言,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') 

检查cdfppf的准确性:

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

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

方法

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

scipy.stats.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)。

gennormbeta 为形状参数。当 (\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') 

检查 cdfppf 的准确性:

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

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

方法

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

genparetoc 作为形状参数。

对于 (c=0),genpareto 缩减为指数分布,expon

[f(x, 0) = \exp(-x)]

对于 (c=-1),genpareto[0, 1] 上是均匀分布的:

[f(x, -1) = 1]

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 locscale 参数。具体地,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') 

检查 cdfppf 的准确性:

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

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

方法

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

scipy.stats.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) 作为形状参数。

上述概率密度函数定义为“标准化”形式。要移动和/或缩放分布,请使用locscale参数。具体来说,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') 

检查 cdfppf 的准确性:

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

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

方法

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

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.genextreme.html#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) 的符号使用相反的约定。

genextremec 作为形状参数。

上述概率密度定义为“标准化”形式。使用locscale参数来进行分布的移动和/或缩放。具体来说,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') 

检查cdfppf的准确性:

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

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

方法

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

scipy.stats.gausshyper

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.gausshyper.html#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) 作为形状参数。

上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 locscale 参数。具体来说,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') 

检查 cdfppf 的准确性:

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

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

方法

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对象继承了一系列通用方法(下面有完整列表),并根据这个特定分布补充了细节。

另见

erlang, expon

注释

gamma 的概率密度函数为:

[f(x, a) = \frac{x^{a-1} e^{-x}}{\Gamma(a)}]

对于 (x \ge 0), (a > 0)。这里 (\Gamma(a)) 是伽玛函数。

gammaa 作为形状参数。

当 (a) 是整数时,gamma 缩减为 Erlang 分布;当 (a=1) 时,缩减为指数分布。

有时用两个变量来参数化伽玛分布,其概率密度函数为:

[f(x, \alpha, \beta) = \frac{\beta^\alpha x^{\alpha - 1} e^{-\beta x }}{\Gamma(\alpha)}]

注意,此参数化与上述等价,其中scale = 1 / beta

上述概率密度定义为“标准化”形式。要移动和/或缩放分布,请使用 locscale 参数。具体而言,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') 

检查 cdfppf 的准确性:

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

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

方法

rvs(a, loc=0, scale=1, size=1, random_state=None)随机变量。
pdf(x, a, loc=0, scale=1)概率密度函数。
logpdf(x, a, loc=0, scale=1)概率密度函数的对数。
cdf(x, a, loc=0, scale=1)累积分布函数。
logcdf(x, a, loc=0, scale=1)累积分布函数的对数。
sf(x, a, loc=0, scale=1)生存函数(有时比 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) 作为形状参数。

上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 locscale 参数。具体地,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') 

检查 cdfppf 的准确性:

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

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

方法

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

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.genhalflogistic.html#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)。

genhalflogisticc 视为形状参数 (c)。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 locscale 参数。具体而言,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') 

检查 cdfppf 的准确性:

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

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

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

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.genhyperbolic.html#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为输入。

上述概率密度在“标准化”形式下定义。要改变分布的位置和/或尺度,请使用locscale参数。具体而言,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=\deltaloc=\mu

基于[3][4]实现矩。

对于像学生 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') 

检查cdfppf的准确性:

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

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

方法

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

原文:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.geninvgauss.html#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 > 0p 是一个实数,b > 0([1])。(K_p) 是二阶修正贝塞尔函数,阶数为 pscipy.special.kv)。

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

逆高斯分布 stats.invgauss(mu)geninvgauss 的一个特例,其中 p = -1/2b = 1 / muscale = 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') 

检查 cdfppf 的准确性:

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

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

方法

- 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)生存函数(也定义为1 - cdf,但sf有时更精确)。
logsf(x, p, b, loc=0, scale=1)生存函数的对数。
ppf(q, p, b, loc=0, scale=1)百分位点函数(cdf的逆函数 — 百分位数)。
isf(q, p, b, loc=0, scale=1)逆生存函数(sf的逆函数)。
moment(order, p, b, loc=0, scale=1)指定阶数的非中心矩。
stats(p, b, loc=0, scale=1, moments=’mv’)均值(‘m’)、方差(‘v’)、偏度(‘s’)、以及/或峰度(‘k’)。
entropy(p, b, loc=0, scale=1)随机变量的(微分)熵。
fit(data)通用数据的参数估计。详细文档请参见scipy.stats.rv_continuous.fit
**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=1lognorm 的特例。

上述概率密度在“标准化”形式中定义。使用 locscale 参数来移动和/或缩放分布。具体来说,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') 

检查 cdfppf 的准确性:

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

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

方法

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

scipy.stats.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) 作为形状参数。

上述的概率密度在“标准化”形式中定义。要进行分布的移位和/或缩放,请使用 locscale 参数。具体而言,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') 

检查 cdfppf 的准确性:

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

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

方法

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

scipy.stats.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 分布有关。

上述概率密度在“标准化”形式中定义。要移动和/或缩放分布,请使用 locscale 参数。具体而言,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') 

检查 cdfppf 的准确性:

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

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

方法

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

scipy.stats.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 分布有关。

上述概率密度定义为“标准化”形式。要移动和/或缩放分布,请使用 locscale 参数。具体而言,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') 

检查 cdfppf 的准确性:

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

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

方法

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

scipy.stats.halfcauchy

原文链接:docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.halfcauchy.html#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)。

上述概率密度函数定义为“标准化”形式。使用 locscale 参数进行平移和/或缩放分布。具体而言,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') 

检查 cdfppf 的准确性:

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

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

方法

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