统计函数 (scipy.stats)#

此模块包含大量的概率分布、摘要和频率统计、相关函数和统计检验、掩码统计、核密度估计、拟蒙特卡罗功能等。

统计学是一个非常庞大的领域,有些主题超出了 SciPy 的范围,由其他软件包涵盖。其中一些最主要的是

  • statsmodels:回归、线性模型、时间序列分析,以及对 scipy.stats 所涵盖主题的扩展。

  • Pandas:表格数据、时间序列功能、与其他统计语言的接口。

  • PyMC:贝叶斯统计建模、概率机器学习。

  • scikit-learn:分类、回归、模型选择。

  • Seaborn:统计数据可视化。

  • rpy2:Python 到 R 的桥梁。

概率分布#

每个单变量分布都是 rv_continuous 的子类实例(离散分布为 rv_discrete

rv_continuous([momtype, a, b, xtol, ...])

通用的连续随机变量类,旨在用于子类化。

rv_discrete([a, b, name, badvalue, ...])

通用的离散随机变量类,旨在用于子类化。

rv_histogram(histogram, *args[, density])

生成由直方图给出的分布。

连续分布#

alpha

Alpha 连续随机变量。

anglit

Anglit 连续随机变量。

arcsine

反正弦 (Arcsine) 连续随机变量。

argus

Argus 分布

beta

Beta 连续随机变量。

betaprime

Beta Prime 连续随机变量。

bradford

Bradford 连续随机变量。

burr

Burr (Type III) 连续随机变量。

burr12

Burr (Type XII) 连续随机变量。

cauchy

柯西 (Cauchy) 连续随机变量。

chi

Chi 连续随机变量。

chi2

卡方 (Chi-squared) 连续随机变量。

cosine

余弦连续随机变量。

crystalball

Crystalball 分布

dgamma

双伽马 (Double gamma) 连续随机变量。

dpareto_lognorm

双帕累托对数正态 (Double Pareto lognormal) 连续随机变量。

dweibull

双 Weibull 连续随机变量。

erlang

Erlang 连续随机变量。

expon

指数 (Exponential) 连续随机变量。

exponnorm

指数修正正态 (Exponentially modified Normal) 连续随机变量。

exponweib

指数化 Weibull 连续随机变量。

exponpow

指数幂 (Exponential power) 连续随机变量。

f

F 连续随机变量。

fatiguelife

疲劳寿命 (Birnbaum-Saunders) 连续随机变量。

fisk

Fisk 连续随机变量。

foldcauchy

折叠柯西 (Folded Cauchy) 连续随机变量。

foldnorm

折叠正态 (Folded normal) 连续随机变量。

genlogistic

广义逻辑 (Generalized logistic) 连续随机变量。

gennorm

广义正态 (Generalized normal) 连续随机变量。

genpareto

广义帕累托 (Generalized Pareto) 连续随机变量。

genexpon

广义指数连续随机变量。

genextreme

广义极值连续随机变量。

gausshyper

高斯超几何 (Gauss hypergeometric) 连续随机变量。

gamma

伽马 (Gamma) 连续随机变量。

gengamma

广义伽马连续随机变量。

genhalflogistic

广义半逻辑 (Generalized half-logistic) 连续随机变量。

genhyperbolic

广义双曲 (Generalized hyperbolic) 连续随机变量。

geninvgauss

广义逆高斯 (Generalized Inverse Gaussian) 连续随机变量。

gibrat

Gibrat 连续随机变量。

gompertz

Gompertz(或截断 Gumbel)连续随机变量。

gumbel_r

右偏 Gumbel 连续随机变量。

gumbel_l

左偏 Gumbel 连续随机变量。

halfcauchy

半柯西 (Half-Cauchy) 连续随机变量。

halflogistic

半逻辑 (Half-logistic) 连续随机变量。

halfnorm

半正态 (Half-normal) 连续随机变量。

halfgennorm

广义正态连续随机变量的上半部分。

hypsecant

双曲正割 (Hyperbolic secant) 连续随机变量。

invgamma

逆伽马 (Inverted gamma) 连续随机变量。

invgauss

逆高斯 (Inverse Gaussian) 连续随机变量。

invweibull

逆 Weibull 连续随机变量。

irwinhall

Irwin-Hall (均匀和) 连续随机变量。

jf_skew_t

Jones 和 Faddy 偏 t 分布。

johnsonsb

Johnson SB 连续随机变量。

johnsonsu

Johnson SU 连续随机变量。

kappa4

Kappa 4 参数分布。

kappa3

Kappa 3 参数分布。

ksone

柯尔莫哥洛夫-斯米尔诺夫 (Kolmogorov-Smirnov) 单侧检验统计量分布。

kstwo

柯尔莫哥洛夫-斯米尔诺夫 (Kolmogorov-Smirnov) 双侧检验统计量分布。

kstwobign

缩放的柯尔莫哥洛夫-斯米尔诺夫双侧检验统计量的极限分布。

landau

Landau 连续随机变量。

laplace

拉普拉斯 (Laplace) 连续随机变量。

laplace_asymmetric

非对称拉普拉斯连续随机变量。

levy

Levy 连续随机变量。

levy_l

左偏 Levy 连续随机变量。

levy_stable

Levy 稳定连续随机变量。

logistic

逻辑(或 Sech 平方)连续随机变量。

loggamma

对数伽马 (Log gamma) 连续随机变量。

loglaplace

对数拉普拉斯 (Log-Laplace) 连续随机变量。

lognorm

对数正态 (Lognormal) 连续随机变量。

loguniform

对数均匀或倒数 (Reciprocal) 连续随机变量。

lomax

Lomax(第二类帕累托)连续随机变量。

maxwell

麦克斯韦 (Maxwell) 连续随机变量。

mielke

Mielke Beta-Kappa / Dagum 连续随机变量。

moyal

Moyal 连续随机变量。

nakagami

Nakagami 连续随机变量。

ncx2

非中心卡方 (Non-central chi-squared) 连续随机变量。

ncf

非中心 F 分布连续随机变量。

nct

非中心学生 t 连续随机变量。

norm

正态 (Normal) 连续随机变量。

norminvgauss

正态逆高斯 (Normal Inverse Gaussian) 连续随机变量。

pareto

帕累托 (Pareto) 连续随机变量。

pearson3

皮尔逊 III 型 (Pearson type III) 连续随机变量。

powerlaw

幂函数 (Power-function) 连续随机变量。

powerlognorm

幂对数正态 (Power log-normal) 连续随机变量。

powernorm

幂正态 (Power normal) 连续随机变量。

rdist

R 分布(对称 beta)连续随机变量。

rayleigh

瑞利 (Rayleigh) 连续随机变量。

rel_breitwigner

相对论 Breit-Wigner 随机变量。

rice

莱斯 (Rice) 连续随机变量。

recipinvgauss

倒数逆高斯 (Reciprocal inverse Gaussian) 连续随机变量。

semicircular

半圆 (Semicircular) 连续随机变量。

skewcauchy

偏柯西 (Skewed Cauchy) 随机变量。

skewnorm

偏正态 (Skew-normal) 随机变量。

studentized_range

学生化全距 (Studentized range) 连续随机变量。

t

学生 t 连续随机变量。

trapezoid

梯形 (Trapezoidal) 连续随机变量。

triang

三角形 (Triangular) 连续随机变量。

truncexpon

截断指数 (Truncated exponential) 连续随机变量。

truncnorm

截断正态 (Truncated normal) 连续随机变量。

truncpareto

上截断帕累托 (Upper truncated Pareto) 连续随机变量。

truncweibull_min

双截断 Weibull 最小值连续随机变量。

tukeylambda

Tukey-Lamdba 连续随机变量。

uniform

均匀 (Uniform) 连续随机变量。

vonmises

Von Mises 连续随机变量。

vonmises_line

Von Mises 连续随机变量。

wald

Wald 连续随机变量。

weibull_min

Weibull 最小值连续随机变量。

weibull_max

Weibull 最大值连续随机变量。

wrapcauchy

卷曲柯西 (Wrapped Cauchy) 连续随机变量。

单变量连续分布的 fit 方法使用极大似然估计将分布拟合到数据集。fit 方法可以接受常规数据或删失数据 (censored data)。删失数据由 CensoredData 类的实例表示。

CensoredData([uncensored, left, right, interval])

此类的实例表示删失数据。

多元分布#

multivariate_normal

多元正态随机变量。

matrix_normal

矩阵正态随机变量。

dirichlet

狄利克雷 (Dirichlet) 随机变量。

dirichlet_multinomial

狄利克雷多项 (Dirichlet multinomial) 随机变量。

wishart

Wishart 随机变量。

invwishart

逆 Wishart 随机变量。

multinomial

多项 (Multinomial) 随机变量。

special_ortho_group

特殊正交矩阵 (SO(N)) 随机变量。

ortho_group

正交矩阵 (O(N)) 随机变量。

unitary_group

矩阵值 U(N) 随机变量。

random_correlation

随机相关矩阵。

multivariate_t

多元 t 分布随机变量。

multivariate_hypergeom

多元超几何随机变量。

normal_inverse_gamma

正态-逆伽马分布。

random_table

来自具有固定边际和的独立样本的列联表。

uniform_direction

向量值均匀方向。

vonmises_fisher

Von Mises-Fisher 变量。

matrix_t

矩阵 t 随机变量。

scipy.stats.multivariate_normal 的方法接受以下类的实例来表示协方差。

Covariance()

协方差矩阵的表示

离散分布#

bernoulli

伯努利 (Bernoulli) 离散随机变量。

betabinom

Beta-二项离散随机变量。

betanbinom

Beta-负二项离散随机变量。

binom

二项 (Binomial) 离散随机变量。

boltzmann

玻尔兹曼(截断离散指数)随机变量。

dlaplace

拉普拉斯离散随机变量。

geom

几何 (Geometric) 离散随机变量。

hypergeom

超几何 (Hypergeometric) 离散随机变量。

logser

对数级数 (Logarithmic, Log-Series) 离散随机变量。

nbinom

负二项 (Negative binomial) 离散随机变量。

nchypergeom_fisher

费舍尔 (Fisher) 非中心超几何离散随机变量。

nchypergeom_wallenius

瓦伦纽斯 (Wallenius) 非中心超几何离散随机变量。

nhypergeom

负超几何离散随机变量。

planck

普朗克 (Planck) 离散指数随机变量。

poisson

泊松 (Poisson) 离散随机变量。

poisson_binom

泊松二项离散随机变量。

randint

均匀离散随机变量。

skellam

Skellam 离散随机变量。

yulesimon

Yule-Simon 离散随机变量。

zipf

Zipf (Zeta) 离散随机变量。

zipfian

Zipfian 离散随机变量。

下面给出了统计函数的概述。这些函数中的许多在 scipy.stats.mstats 中都有一个类似的版本,适用于掩码数组。

摘要统计#

describe(a[, axis, ddof, bias, nan_policy])

计算所传递数组的多个描述性统计量。

gmean(a[, axis, dtype, weights, nan_policy, ...])

沿指定轴计算加权几何平均值。

hmean(a[, axis, dtype, weights, nan_policy, ...])

沿指定轴计算加权调和平均值。

pmean(a, p, *[, axis, dtype, weights, ...])

沿指定轴计算加权幂平均值。

kurtosis(a[, axis, fisher, bias, ...])

计算数据集的峰度 (Fisher 或 Pearson)。

mode(a[, axis, nan_policy, keepdims])

返回所传递数组中众数(最常见值)的数组。

moment(a[, order, axis, nan_policy, center, ...])

计算样本关于平均值的第 n 阶矩。

lmoment(sample[, order, axis, sorted, ...])

计算连续分布样本的 L-矩

expectile(a[, alpha, weights])

在指定水平下计算期待分位数 (expectile)。

skew(a[, axis, bias, nan_policy, keepdims])

计算数据集的样本偏度。

kstat(data[, n, axis, nan_policy, keepdims])

返回第 n 个 k-统计量(目前 1<=n<=4)。

kstatvar(data[, n, axis, nan_policy, keepdims])

返回 k-统计量方差的无偏估计量。

tmean(a[, limits, inclusive, axis, ...])

计算修整平均值 (trimmed mean)。

tvar(a[, limits, inclusive, axis, ddof, ...])

计算修整方差。

tmin(a[, lowerlimit, axis, inclusive, ...])

计算修整最小值。

tmax(a[, upperlimit, axis, inclusive, ...])

计算修整最大值。

tstd(a[, limits, inclusive, axis, ddof, ...])

计算修整样本标准差。

tsem(a[, limits, inclusive, axis, ddof, ...])

计算修整均值标准误差。

variation(a[, axis, nan_policy, ddof, keepdims])

计算变异系数。

rankdata(a[, method, axis, nan_policy])

为数据分配排名,并妥善处理并列情况。

tiecorrect(rankvals)

用于 Mann-Whitney U 检验和 Kruskal-Wallis H 检验的并列修正因子。

trim_mean(a, proportiontocut[, axis, ...])

在修整指定比例的极端值后返回数组的平均值

gstd(a[, axis, ddof, keepdims, nan_policy])

计算数组的几何标准差。

iqr(x[, axis, rng, scale, nan_policy, ...])

计算数据沿指定轴的四分位距 (IQR)。

sem(a[, axis, ddof, nan_policy, keepdims])

计算均值标准误差。

bayes_mvs(data[, alpha])

均值、方差和标准差的贝叶斯置信区间。

mvsdist(data)

数据均值、方差和标准差的“冻结”分布。

entropy(pk[, qk, base, axis, nan_policy, ...])

计算给定分布的香农熵/相对熵。

differential_entropy(values, *[, ...])

给定分布的样本,估计微分熵。

median_abs_deviation(x[, axis, center, ...])

计算数据沿给定轴的中位数绝对偏差 (MAD)。

频率统计#

cumfreq(a[, numbins, defaultreallimits, weights])

使用直方图函数返回累积频率直方图。

quantile(x, p, *[, method, axis, ...])

计算数据沿指定轴的第 p 个分位数。

percentileofscore(a, score[, kind, nan_policy])

计算得分相对于得分列表的百分位排名。

scoreatpercentile(a, per[, limit, ...])

计算输入序列中给定百分位数处的得分。

relfreq(a[, numbins, defaultreallimits, weights])

使用直方图函数返回相对频率直方图。

binned_statistic(x, values[, statistic, ...])

为一组或多组数据计算分箱统计量 (binned statistic)。

binned_statistic_2d(x, y, values[, ...])

为一组或多组数据计算二维分箱统计量。

binned_statistic_dd(sample, values[, ...])

为一组数据计算多维分箱统计量。

随机变量#

make_distribution(dist)

从兼容对象生成 UnivariateDistribution

Normal([mu, sigma])

具有指定均值和标准差的正态分布。

Logistic(*[, tol, validation_policy, ...])

标准逻辑分布。

Uniform(*[, a, b])

均匀分布。

Binomial(*, n, p, **kwargs)

具有指定成功概率和试验次数的二项分布

Mixture(components, *[, weights])

混合分布的表示。

order_statistic(X, /, *, r, n)

次序统计量的概率分布

truncate(X[, lb, ub])

截断随机变量的支撑集 (support)。

abs(X, /)

随机变量的绝对值

exp(X, /)

随机变量的自然指数

log(X, /)

非负随机变量的自然对数

拟蒙特卡罗#

列联表#

掩码统计函数#

其他统计功能#

转换#

boxcox(x[, lmbda, alpha, optimizer])

返回经 Box-Cox 幂转换后的数据集。

boxcox_normmax(x[, brack, method, ...])

为输入数据计算最佳 Box-Cox 转换参数。

boxcox_llf(lmb, data, *[, axis, keepdims, ...])

Box-Cox 对数似然函数。

yeojohnson(x[, lmbda])

返回经 Yeo-Johnson 幂转换后的数据集。

yeojohnson_normmax(x[, brack])

计算最佳 Yeo-Johnson 转换参数。

yeojohnson_llf(lmb, data, *[, axis, ...])

Yeo-Johnson 对数似然函数。

obrientransform(*samples)

对输入数据(任意数量的数组)计算 O'Brien 转换。

sigmaclip(a[, low, high])

对数组元素执行迭代 Sigma 裁剪 (sigma-clipping)。

trimboth(a, proportiontocut[, axis])

从数组的两端切除一定比例的项目。

trim1(a, proportiontocut[, tail, axis])

从传递的数组分布的其中一端切除一定比例。

zmap(scores, compare[, axis, ddof, nan_policy])

计算相对 Z 分数。

zscore(a[, axis, ddof, nan_policy])

计算 Z 分数。

gzscore(a, *[, axis, ddof, nan_policy])

计算几何标准分数。

统计距离#

wasserstein_distance(u_values, v_values[, ...])

计算两个一维离散分布之间的 Wasserstein-1 距离。

wasserstein_distance_nd(u_values, v_values)

计算两个多维离散分布之间的 Wasserstein-1 距离。

energy_distance(u_values, v_values[, ...])

计算两个一维分布之间的能量距离。

抽样 (Sampling)#

拟合 / 生存分析#

fit(dist, data[, bounds, guess, method, ...])

将离散或连续分布拟合到数据

ecdf(sample)

样本的经验累积分布函数。

logrank(x, y[, alternative])

通过对数秩检验 (logrank test) 比较两个样本的生存分布。

方向统计函数#

directional_stats(samples, *[, axis, normalize])

计算方向数据的样本统计量。

circmean(samples[, high, low, axis, ...])

计算角度观测值样本的循环平均值 (circular mean)。

circvar(samples[, high, low, axis, ...])

计算角度观测值样本的循环方差。

circstd(samples[, high, low, axis, ...])

计算角度观测值样本的循环标准差。

敏感性分析#

sobol_indices(*, func, n[, dists, method, ...])

Sobol' 全局敏感性指数。

图检验 (Plot-tests)#

ppcc_max(x[, brack, dist])

计算使 PPCC 最大化的形状参数。

ppcc_plot(x, a, b[, dist, plot, N])

计算并可选地绘制概率图相关系数。

probplot(x[, sparams, dist, fit, plot, rvalue])

计算概率图的分位数,并可选地显示图形。

boxcox_normplot(x, la, lb[, plot, N])

计算 Box-Cox 正态图的参数,并可选地显示图形。

yeojohnson_normplot(x, la, lb[, plot, N])

计算 Yeo-Johnson 正态性检验图的参数,并可选择性地显示该图。

单变量和多变量核密度估计#

gaussian_kde(dataset[, bw_method, weights])

使用高斯核进行的核密度估计表示。

scipy.stats 中使用的警告 / 错误#

DegenerateDataWarning([msg])

当数据出现退化且结果可能不可靠时发出警告。

ConstantInputWarning([msg])

当数据中的所有值都完全相等时发出警告。

NearConstantInputWarning([msg])

当数据中的所有值都几乎相等时发出警告。

FitError([msg])

表示将分布拟合到数据时出现的错误情况。

scipy.stats 中使用的结果类#

警告

这些类是私有的,但包含在此处是因为其他统计函数会返回它们的实例。不支持用户导入和实例化。