成分统计 (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] 可用于用小的伪计数代替这些零点,而不会对数据造成重大失真。
功能¶
|
状态:从0.4.0开始实验。 |
|
将所有零替换为小的非零值 |
|
执行扰动操作。 |
|
执行逆摄动操作。 |
|
执行电源操作。 |
|
计算Aitchson内积。 |
|
执行中心对数比转换。 |
|
执行反中心对数比变换。 |
|
执行等轴测井比变换。 |
|
执行等轴测井比反变换。 |
|
执行加法对数比率转换。 |
|
执行逆加性对数比变换。 |
|
将数据集中在几何平均值附近。 |
|
使用ANCOM进行差异丰度测试。 |
|
状态:从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 ])