成分统计 (skbio.stats.composition

本模块提供成分数据分析功能。

许多“经济学”数据集本质上是成分的,这意味着它们最好被解释为比例或百分比,而不是绝对计数。

正式地, \(x\) 如果 \(\sum_{{i=0}}^D x_{{i}} = c\)\(x_{{i}} > 0\)\(1 \leq i \leq D\)\(c\) 是一个实值常量 \(D\) 每种成分的成分。在本模块中 \(c=1\) . 成分数据可以用艾奇森几何来分析。 [1]

然而,在这个框架中,标准的实欧几里德运算(如加法和乘法)不再适用。只有诸如扰动和功率之类的操作才能用来操作这些数据。

此模块允许两种样式的组合数据操作。成分数据可以用微扰和功率运算进行分析,这对模拟研究很有用。另一种策略是将合成数据转换为真实空间。现在,中心对数比变换(clr)和等距对数比变换(ilr) [2] 可以用来完成这个任务。这种转换可用于执行标准统计工具,如参数假设检验、回归等。

使用这个框架的主要警告是处理零。在Aitchison几何中,只能考虑含有非零成分的成分。乘法替换技术 [3] 可用于用小的伪计数代替这些零点,而不会对数据造成重大失真。

功能

closure \(垫)

状态:从0.4.0开始实验。

multiplicative_replacement(mat[, delta])

将所有零替换为小的非零值

perturb(x, y)

执行扰动操作。

perturb_inv(x, y)

执行逆摄动操作。

power(x, a)

执行电源操作。

inner(x, y)

计算Aitchson内积。

clr \(垫)

执行中心对数比转换。

clr_inv \(垫)

执行反中心对数比变换。

ilr(mat[, basis, check])

执行等轴测井比变换。

ilr_inv(mat[, basis, check])

执行等轴测井比反变换。

alr(mat[, denominator_idx])

执行加法对数比率转换。

alr_inv(mat[, denominator_idx])

执行逆加性对数比变换。

centralize \(垫)

将数据集中在几何平均值附近。

ancom(table, grouping[, alpha, tau, theta, ...])

使用ANCOM进行差异丰度测试。

sbp_basis \(SBP)

状态:从0.5.5开始实验。

引用

示例

>>> import numpy as np

考虑一个只有3个物种的非常简单的环境。环境中的物种分布均匀,比例相等:

>>> otus = np.array([1./3, 1./3., 1./3])

假设抗生素杀死了前两个物种一半的种群,但不伤害第三个物种。那么扰动向量如下

>>> antibiotic = np.array([1./2, 1./2, 1])

由此产生的扰动

>>> perturb(otus, antibiotic)
array([ 0.25,  0.25,  0.5 ])