scipy.stats.bradford
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.bradford.html#scipy.stats.bradford
scipy.stats.bradford = <scipy.stats._continuous_distns.bradford_gen object>
一个布拉德福特连续随机变量。
作为 rv_continuous
类的一个实例,bradford
对象从中继承了一系列通用方法(请参见下文的完整列表),并通过特定于此特定分布的细节来完成它们。
注意事项
bradford
的概率密度函数为:
[f(x, c) = \frac{c}{\log(1+c) (1+cx)}]
对于 (0 <= x <= 1) 和 (c > 0)。
bradford
以 c
作为形状参数为 (c)。
上述概率密度在“标准化”形式下定义。使用 loc
和 scale
参数来移动和/或缩放分布。具体而言,bradford.pdf(x, c, loc, scale)
等效于 bradford.pdf(y, c) / scale
,其中 y = (x - loc) / scale
。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可以在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import bradford
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c = 0.299
>>> mean, var, skew, kurt = bradford.stats(c, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(bradford.ppf(0.01, c),
... bradford.ppf(0.99, c), 100)
>>> ax.plot(x, bradford.pdf(x, c),
... 'r-', lw=5, alpha=0.6, label='bradford pdf')
或者,可以通过调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的随机变量对象,保持给定的参数不变。
冻结分布并显示冻结的pdf
:
>>> rv = bradford(c)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = bradford.ppf([0.001, 0.5, 0.999], c)
>>> np.allclose([0.001, 0.5, 0.999], bradford.cdf(vals, c))
True
生成随机数:
>>> r = bradford.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.burr
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.burr.html#scipy.stats.burr
scipy.stats.burr = <scipy.stats._continuous_distns.burr_gen object>
一个 Burr(Type III)连续随机变量。
作为 rv_continuous
类的一个实例,burr
对象从中继承了一系列通用方法(下面列出完整列表),并根据这一特定分布补充了细节。
另见
fisk
这是 d=1
的 burr
或 burr12
的特例。
burr12
Burr Type XII 分布
mielke
Mielke Beta-Kappa / Dagum 分布
注意
burr
的概率密度函数为:
[f(x; c, d) = c d \frac{x^{-c - 1}} {{(1 + x{-c})}{d + 1}}]
对于 (x >= 0) 和 (c, d > 0)。
burr
使用 c
和 d
作为形状参数,其中 (c) 和 (d)。
这是对应于 Burr 列表中第三个 CDF 的 PDF;具体来说,它是 Burr 论文中的方程(11)[1]。该分布通常也被称为 Dagum 分布[2]。如果参数 (c < 1),则分布的均值不存在;如果 (c < 2),则方差不存在[2]。如果 (c * d >= 1),则 PDF 在左端点 (x = 0) 处是有限的。
上述概率密度在“标准化”形式下定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体而言,burr.pdf(x, c, d, loc, scale)
在 y = (x - loc) / scale
的情况下与 burr.pdf(y, c, d) / scale
是完全等价的。请注意,移动分布的位置不会使其成为“非中心”分布;一些分布的非中心泛化可以在其他类中找到。
参考文献
[1]
Burr, I. W. “累积频率函数”, 数学统计年鉴, 13(2), pp 215-232 (1942).
[2] (1,2)
en.wikipedia.org/wiki/Dagum_distribution
[3]
Kleiber, Christian. “Dagum 分布指南。” 建模收入分布和洛伦兹曲线 pp 97-117 (2008).
示例
>>> import numpy as np
>>> from scipy.stats import burr
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c, d = 10.5, 4.3
>>> mean, var, skew, kurt = burr.stats(c, d, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(burr.ppf(0.01, c, d),
... burr.ppf(0.99, c, d), 100)
>>> ax.plot(x, burr.pdf(x, c, d),
... 'r-', lw=5, alpha=0.6, label='burr pdf')
或者,可以调用(作为函数)分布对象来固定形状、位置和尺度参数。这将返回一个“冻结”的 RV 对象,保持给定参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = burr(c, d)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = burr.ppf([0.001, 0.5, 0.999], c, d)
>>> np.allclose([0.001, 0.5, 0.999], burr.cdf(vals, c, d))
True
生成随机数:
>>> r = burr.rvs(c, d, size=1000)
并比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
rvs(c, d, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, c, d, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, c, d, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, c, d, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, c, d, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, c, d, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但 sf 有时更精确)。 |
logsf(x, c, d, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, c, d, loc=0, scale=1) | 百分点函数(cdf 的逆函数 — 百分位数)。 |
isf(q, c, d, loc=0, scale=1) | 逆生存函数(sf 的逆函数)。 |
moment(order, c, d, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(c, d, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)、及/或峰度(‘k’)。 |
entropy(c, d, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。详见 scipy.stats.rv_continuous.fit 获取关键字参数的详细文档。 |
**expect(func, args=(c, d), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 相对于分布的函数(一个参数)的期望值。 |
median(c, d, loc=0, scale=1) | 分布的中位数。 |
mean(c, d, loc=0, scale=1) | 分布的均值。 |
var(c, d, loc=0, scale=1) | 分布的方差。 |
std(c, d, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, c, d, loc=0, scale=1) | 置信区间,围绕中位数具有相等的区域。 |
scipy.stats.burr12
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.burr12.html#scipy.stats.burr12
scipy.stats.burr12 = <scipy.stats._continuous_distns.burr12_gen object>
一个 Burr(Type XII)连续随机变量。
作为 rv_continuous
类的一个实例,burr12
对象从中继承了一组通用方法(下面列出了完整清单),并补充了特定于该特定分布的细节。
另请参见
fisk
无论是 burr
还是 burr12
的特例,其中 d=1
burr
Burr Type III 分布
注意事项
burr12
的概率密度函数为:
[f(x; c, d) = c d \frac{x^{c-1}} {(1 + xc){d + 1}}]
对于 (x >= 0) 和 (c, d > 0)。
burr12
以 c
和 d
作为形状参数。
这是对应于 Burr 名单中第十二 CDF 的 PDF;具体而言,这是 Burr 论文中的方程式(20)[1]。
上述概率密度以“标准化”形式定义。要移动和/或缩放分布,请使用 loc
和 scale
参数。具体来说,burr12.pdf(x, c, d, loc, scale)
与 y = (x - loc) / scale
的 burr12.pdf(y, c, d) / scale
完全等价。请注意,移动分布的位置并不使其成为“非中心”分布;某些分布的非中心推广可在单独的类中找到。
Burr 12 型分布有时也称为来自 NIST 的 Singh-Maddala 分布[2]。
参考资料
[1]
Burr, I. W. “累积频率函数”,数理统计学杂志,13(2),第 215-232 页(1942 年)。
[2]
www.itl.nist.gov/div898/software/dataplot/refman2/auxillar/b12pdf.htm
[3]
“Burr 分布”,en.wikipedia.org/wiki/Burr_distribution
例子
>>> import numpy as np
>>> from scipy.stats import burr12
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> c, d = 10, 4
>>> mean, var, skew, kurt = burr12.stats(c, d, moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(burr12.ppf(0.01, c, d),
... burr12.ppf(0.99, c, d), 100)
>>> ax.plot(x, burr12.pdf(x, c, d),
... 'r-', lw=5, alpha=0.6, label='burr12 pdf')
或者,可以调用分布对象(作为函数)以固定形状、位置和比例参数。这将返回一个“冻结”RV 对象,其中给定参数固定。
冻结分布并显示冻结的 pdf
:
>>> rv = burr12(c, d)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = burr12.ppf([0.001, 0.5, 0.999], c, d)
>>> np.allclose([0.001, 0.5, 0.999], burr12.cdf(vals, c, d))
True
生成随机数:
>>> r = burr12.rvs(c, d, size=1000)
并比较直方图:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
方法
rvs(c, d, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, c, d, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, c, d, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, c, d, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, c, d, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, c, d, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但 sf 有时更精确)。 |
logsf(x, c, d, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, c, d, loc=0, scale=1) | 百分位点函数(cdf 的逆函数 — 百分位数)。 |
isf(q, c, d, loc=0, scale=1) | 生存函数的逆函数(sf 的逆函数)。 |
moment(order, c, d, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(c, d, loc=0, scale=1, moments=’mv’) | 平均值(‘m’), 方差(‘v’), 偏度(‘s’), 和/或峰度(‘k’)。 |
entropy(c, d, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计值。详细文档请参见 scipy.stats.rv_continuous.fit。 |
**expect(func, args=(c, d), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 对于分布的函数(一个参数)的期望值。 |
median(c, d, loc=0, scale=1) | 分布的中位数。 |
mean(c, d, loc=0, scale=1) | 分布的均值。 |
var(c, d, loc=0, scale=1) | 分布的方差。 |
std(c, d, loc=0, scale=1) | 分布的标准差。 |
interval(confidence, c, d, loc=0, scale=1) | 中位数周围面积相等的置信区间。 |
scipy.stats.cauchy
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.cauchy.html#scipy.stats.cauchy
scipy.stats.cauchy = <scipy.stats._continuous_distns.cauchy_gen object>
一个柯西连续随机变量。
作为 rv_continuous
类的实例,cauchy
对象从中继承了一系列通用方法(完整列表见下文),并以特定于该分布的细节补充其功能。
注意事项
cauchy
的概率密度函数为
[f(x) = \frac{1}{\pi (1 + x²)}]
对于实数 (x)。
上述的概率密度在“标准化”形式中定义。使用 loc
和 scale
参数可以进行分布的平移和/或缩放。具体来说,cauchy.pdf(x, loc, scale)
在数学上等同于 cauchy.pdf(y) / scale
,其中 y = (x - loc) / scale
。请注意,改变分布的位置并不会使其成为“非中心”分布;某些分布的非中心泛化在单独的类中可用。
示例
>>> import numpy as np
>>> from scipy.stats import cauchy
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个矩:
>>> mean, var, skew, kurt = cauchy.stats(moments='mvsk')
显示概率密度函数 (pdf
):
>>> x = np.linspace(cauchy.ppf(0.01),
... cauchy.ppf(0.99), 100)
>>> ax.plot(x, cauchy.pdf(x),
... 'r-', lw=5, alpha=0.6, label='cauchy pdf')
另外,可以通过调用分布对象(作为函数)来固定形状、位置和尺度参数。这将返回一个“冻结”的 RV 对象,保持给定的参数不变。
冻结分布并显示冻结的 pdf
:
>>> rv = cauchy()
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = cauchy.ppf([0.001, 0.5, 0.999])
>>> np.allclose([0.001, 0.5, 0.999], cauchy.cdf(vals))
True
生成随机数:
>>> r = cauchy.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.chi
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.chi.html#scipy.stats.chi
scipy.stats.chi = <scipy.stats._continuous_distns.chi_gen object>
一个卡方连续随机变量。
作为 rv_continuous
类的一个实例,chi
对象从中继承了一组通用方法(完整列表见下文),并且使用本特定分布的细节完成它们。
注意
chi
的概率密度函数为:
[f(x, k) = \frac{1}{2^{k/2-1} \Gamma \left( k/2 \right)} x^{k-1} \exp \left( -x²/2 \right)]
对于 (x \geq 0) 和 (k > 0)(在实现中称为自由度 df
)。(\Gamma) 是 gamma 函数(scipy.special.gamma
)。
chi
的特殊情况包括:
chi
将 df
作为形状参数。
上述概率密度在“标准化”形式下定义。使用 loc
和 scale
参数来移位和/或缩放分布。具体地说,chi.pdf(x, df, loc, scale)
与 chi.pdf(y, df) / scale
完全等效,其中 y = (x - loc) / scale
。请注意,将分布的位置移动并不使其成为“非中心”分布;一些分布的非中心推广可以在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import chi
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> df = 78
>>> mean, var, skew, kurt = chi.stats(df, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(chi.ppf(0.01, df),
... chi.ppf(0.99, df), 100)
>>> ax.plot(x, chi.pdf(x, df),
... 'r-', lw=5, alpha=0.6, label='chi pdf')
或者,可以像调用函数一样调用分布对象,以修正形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = chi(df)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查cdf
和ppf
的准确性:
>>> vals = chi.ppf([0.001, 0.5, 0.999], df)
>>> np.allclose([0.001, 0.5, 0.999], chi.cdf(vals, df))
True
生成随机数:
>>> r = chi.rvs(df, 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(df, loc=0, scale=1, size=1, random_state=None) | 随机变量。 |
---|---|
pdf(x, df, loc=0, scale=1) | 概率密度函数。 |
logpdf(x, df, loc=0, scale=1) | 概率密度函数的对数。 |
cdf(x, df, loc=0, scale=1) | 累积分布函数。 |
logcdf(x, df, loc=0, scale=1) | 累积分布函数的对数。 |
sf(x, df, loc=0, scale=1) | 生存函数(也定义为 1 - cdf ,但 sf 有时更精确)。 |
logsf(x, df, loc=0, scale=1) | 生存函数的对数。 |
ppf(q, df, loc=0, scale=1) | 百分位点函数(cdf 的逆 — 百分位数)。 |
isf(q, df, loc=0, scale=1) | 逆生存函数(sf 的逆)。 |
moment(order, df, loc=0, scale=1) | 指定阶数的非中心矩。 |
stats(df, loc=0, scale=1, moments=’mv’) | 均值(‘m’)、方差(‘v’)、偏度(‘s’)和/或峰度(‘k’)。 |
entropy(df, loc=0, scale=1) | 随机变量的(微分)熵。 |
fit(data) | 通用数据的参数估计。详细文档请参见scipy.stats.rv_continuous.fit。 |
**expect(func, args=(df,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) | 函数(一个参数的)对分布的期望值。 |
median(df, loc=0, scale=1) | 分布的中位数。 |
mean(df, loc=0, scale=1) | 分布的均值。 |
var(df, loc=0, scale=1) | 分布的方差。 |
std(df, loc=0, scale=1) | 分布的标准偏差。 |
interval(confidence, df, loc=0, scale=1) | 置信区间,围绕中位数具有相等面积。 |
scipy.stats.chi2
原文链接:
docs.scipy.org/doc/scipy-1.12.0/reference/generated/scipy.stats.chi2.html#scipy.stats.chi2
scipy.stats.chi2 = <scipy.stats._continuous_distns.chi2_gen object>
一个卡方连续随机变量。
对于非中心卡方分布,请参见 ncx2
。
作为 rv_continuous
类的一个实例,chi2
对象继承了一组通用方法(详见下文的完整列表),并通过特定于该特定分布的细节完善了它们。
另请参阅
ncx2
注意事项
chi2
的概率密度函数为:
[f(x, k) = \frac{1}{2^{k/2} \Gamma \left( k/2 \right)} x^{k/2-1} \exp \left( -x/2 \right)]
对于 (x > 0) 和 (k > 0)(自由度,在实现中称为 df
)。
chi2
将 df
作为形状参数。
卡方分布是伽马分布的一种特殊情况,其伽马参数为 a = df/2
,loc = 0
和 scale = 2
。
上述概率密度函数以“标准化”形式定义。要移动和/或缩放分布,请使用loc
和scale
参数。具体而言,chi2.pdf(x, df, loc, scale)
与chi2.pdf(y, df) / scale
等价,其中y = (x - loc) / scale
。请注意,移动分布的位置不会使其成为“非中心”分布;某些分布的非中心泛化可在单独的类中找到。
示例
>>> import numpy as np
>>> from scipy.stats import chi2
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)
计算前四个时刻:
>>> df = 55
>>> mean, var, skew, kurt = chi2.stats(df, moments='mvsk')
显示概率密度函数(pdf
):
>>> x = np.linspace(chi2.ppf(0.01, df),
... chi2.ppf(0.99, df), 100)
>>> ax.plot(x, chi2.pdf(x, df),
... 'r-', lw=5, alpha=0.6, label='chi2 pdf')
或者,可以调用分布对象(作为函数)来固定形状、位置和比例参数。这将返回一个“冻结”的 RV 对象,其中给定的参数被固定。
冻结分布并显示冻结的 pdf
:
>>> rv = chi2(df)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
检查 cdf
和 ppf
的准确性:
>>> vals = chi2.ppf([0.001, 0.5, 0.999], df)
>>> np.allclose([0.001, 0.5, 0.999], chi2.cdf(vals, df))
True
生成随机数:
>>> r = chi2.rvs(df, 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(df, loc=0, scale=1, size=1, random_state=None) - 随机变量。 |
---|
- pdf(x, df, loc=0, scale=1) - 概率密度函数。 |
- logpdf(x, df, loc=0, scale=1) - 概率密度函数的对数。 |
- cdf(x, df, loc=0, scale=1) - 累积分布函数。 |
- logcdf(x, df, loc=0, scale=1) - 累积分布函数的对数。 |
- sf(x, df, loc=0, scale=1) - 生存函数(也被定义为 1 - cdf ,但 sf 有时更精确)。 |
- logsf(x, df, loc=0, scale=1) - 生存函数的对数。 |
- ppf(q, df, loc=0, scale=1) - 百分点函数(cdf 的反函数 — 百分位数)。 |
isf(q, df, loc=0, scale=1) |
moment(order, df, loc=0, scale=1) |
stats(df, loc=0, scale=1, moments=’mv’) |
entropy(df, loc=0, scale=1) |
fit(data) |
**expect(func, args=(df,), loc=0, scale=1, lb=None, ub=None, conditional=False, kwds) |
median(df, loc=0, scale=1) |
mean(df, loc=0, scale=1) |
var(df, loc=0, scale=1) |
std(df, loc=0, scale=1) |
interval(confidence, df, loc=0, scale=1) |
scipy.stats.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
的概率密度函数为:
[\begin{split}f(x, \beta, m) = \begin{cases} N \exp(-x² / 2), &\text{for } x > -\beta\ N A (B - x)^{-m} &\text{for } x \le -\beta \end{cases}\end{split}]
其中(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)]{a-1} \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) | 置信区间,围绕中位数的面积相等。 |
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`:
```py
>>> 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()
[外链图片转存中…(img-gPXXnJqN-1719715321256)]
方法
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) | 置信区间,围绕中位数的面积相等。 |