scipy.stats.Binomial.

moment#

Binomial.moment(order=1, kind='raw', *, method=None)[source]#

正整数阶的原点矩、中心矩或标准化矩。

用概率密度函数 \(f(x)\) 和支持集 \(\chi\) 表示,连续随机变量 \(X\)\(n\) 阶“原点”矩(关于原点)为

\[\mu'_n(X) = \int_{\chi} x^n f(x) dx\]

“中心”矩是关于均值的原点矩,\(\mu = \mu'_1\)

\[\mu_n(X) = \int_{\chi} (x - \mu) ^n f(x) dx\]

“标准化”矩是中心矩除以标准差 \(\sigma = \sqrt{\mu_2}\)\(n^\text{th}\) 次方,以产生尺度不变的量

\[\tilde{\mu}_n(X) = \frac{\mu_n(X)} {\sigma^n}\]

离散随机变量的定义类似,用支持集上的和代替积分。

参数:
orderint

矩的整数阶;即上述公式中的 \(n\)

kind{‘raw’, ‘central’, ‘standardized’}

是否返回上述定义的原始(默认)、中心或标准化矩。

method{None, ‘formula’, ‘general’, ‘transform’, ‘normalize’, ‘quadrature’, ‘cache’}

用于评估矩的策略。 默认情况下 (None),基础结构在以下选项之间进行选择,按优先级顺序列出。

  • 'cache':使用最近通过另一种方法计算的矩的值

  • 'formula':使用矩本身的公式

  • 'general':使用对于具有有限矩的所有分布都成立的一般结果; 例如,第零阶原点矩恒等于 1

  • 'transform':将原点矩转换为中心矩,反之亦然(参见 Notes)

  • 'normalize':标准化中心矩以获得标准化矩,反之亦然

  • 'quadrature':根据定义进行数值积分(或者,在离散情况下,求和)

并非所有 method 选项都适用于所有阶数、种类和分布。 如果所选 method 不可用,则会引发 NotImplementedError

返回:
outarray

指定阶数和种类的随机变量的矩。

注释

并非所有分布都具有所有阶数的有限矩; 某些阶数的矩可能未定义或无穷大。 如果没有专门为所选分布实现矩的公式,SciPy 将尝试通过通用方法计算矩,这可能会产生不存在的有限结果。 这不是一个严重的错误,而是一个增强的机会。

摘要中原点矩的定义特定于关于原点的原点矩。 关于任何点 \(a\) 的原点矩为

\[E[(X-a)^n] = \int_{\chi} (x-a)^n f(x) dx\]

在此表示法中,关于原点的原点矩为 \(\mu'_n = E[x^n]\),中心矩为 \(\mu_n = E[(x-\mu)^n]\),其中 \(\mu\) 是第一阶原点矩; 即均值。

'transform' 方法利用了关于不同点 \(a\)\(b\) 获取的矩之间的以下关系。

\[E[(X-b)^n] = \sum_{i=0}^n E[(X-a)^i] {n \choose i} (a - b)^{n-i}\]

例如,要将原点矩转换为中心矩,我们令 \(b = \mu\)\(a = 0\)

分布基础结构为分布作者提供了灵活性,可以为任何阶数的原点矩、中心矩和标准化矩实现单独的公式。 默认情况下,如果存在公式,则从公式评估所需阶数和种类的矩; 如果不存在,则基础结构使用任何可用的公式,而不是直接求助于数值积分。 例如,如果前三个原点矩的公式可用,并且需要第三个标准化矩,则基础结构将评估原点矩并执行所需的变换和标准化。 决策树有点复杂,但获得给定阶数和种类的矩的策略(可能作为上述变换公式的递归性质的中间步骤)大致遵循此优先级顺序

  1. 使用缓存(如果已计算相同矩和种类的阶数)

  2. 使用公式(如果可用)

  3. 在原点矩和中心矩之间变换,和/或标准化以在中心矩和标准化矩之间转换(如果有效)

  4. 使用适用于大多数分布的通用结果(如果可用)

  5. 使用正交积分

参考资料

[1]

Moment(矩), Wikipedia, https://en.wikipedia.org/wiki/Moment_(mathematics)

示例

使用所需参数实例化分布

>>> from scipy import stats
>>> X = stats.Normal(mu=1., sigma=2.)

评估第一阶原点矩

>>> X.moment(order=1, kind='raw')
1.0
>>> X.moment(order=1, kind='raw') == X.mean() == X.mu
True

评估第二阶中心矩

>>> X.moment(order=2, kind='central')
4.0
>>> X.moment(order=2, kind='central') == X.variance() == X.sigma**2
True

评估第四阶标准化矩

>>> X.moment(order=4, kind='standardized')
3.0
>>> X.moment(order=4, kind='standardized') == X.kurtosis(convention='non-excess')
True