skbio.stats.power.paired_subsamples¶
- skbio.stats.power.paired_subsamples(meta, cat, control_cats, order=None, strict_match=True)[源代码]¶
绘制样本列表 cat 与之匹配 control_cats
状态:从0.4.0开始实验。
此功能旨在根据元数据类别提供受控样本。例如,一个人可以在测量运动频率的同时控制年龄、性别、教育水平和饮食类型。
- 参数:
meta (pandas.DataFrame) -- 与样本关联的元数据。
cat (str, list) -- 用于比较的元数据类别(或类别列表)。
control_cats (list) -- 要用作控件的元数据类别。例如,如果您想改变年龄 (cat =“年龄”),您可能希望控制性别和健康状况(即 control_cats = ["SEX", "HEALTHY"] )
order (list, optional) -- 类别中组的顺序。这可用于限制选定的组。例如,如果有一个类别包含A组、B组和C组,而您只想查看A和B, order 将设置为 ['A', 'B'] 。
strict_match (bool, optional) -- 这决定了如何使用将数据分组 control_cats 。如果其中的样本 meta 具有未定义的值 (NaN )中的任何一列 control_cats ,则该样本将不被视为具有匹配项,并且在以下情况下将被忽略 strict_match 是真的。如果 strict_match 为FALSE,则 control_cats 可以被视为匹配。
- 返回:
ids --一组符合条件的ID。这些不是按以下方式分组的 cat 。空数组表示没有满足要求的示例ID。
- 返回类型:
array
示例
如果我们有一组随机个体的映射文件,这些个体查看住房、性别、年龄和抗生素使用情况。
>>> import pandas as pd >>> import numpy as np >>> meta = {'SW': {'HOUSING': '2', 'SEX': 'M', 'AGE': np.nan, 'ABX': 'Y'}, ... 'TS': {'HOUSING': '2', 'SEX': 'M', 'AGE': '40s', 'ABX': 'Y'}, ... 'CB': {'HOUSING': '3', 'SEX': 'M', 'AGE': '40s', 'ABX': 'Y'}, ... 'BB': {'HOUSING': '1', 'SEX': 'M', 'AGE': '40s', 'ABX': 'Y'}} >>> meta = pd.DataFrame.from_dict(meta, orient="index") >>> meta ABX HOUSING AGE SEX BB Y 1 40s M CB Y 3 40s M SW Y 2 NaN M TS Y 2 40s M
我们可能想要改变一个人的住房状况,同时保持他们的年龄、性别和抗生素使用不变,这样我们就可以估计对住房的影响大小,然后将其与其他变量的影响进行比较。
>>> from skbio.stats.power import paired_subsamples >>> ids = paired_subsamples(meta, 'HOUSING', ['SEX', 'AGE', 'ABX']) >>> np.hstack(ids) array(['BB', 'TS', 'CB']...)
因此,对于这组数据,我们可以根据年龄、性别和抗生素使用情况匹配TS、CB和BB。软件在两个组中都无法匹配,因为 strict_match 是真的,并且此样本缺少年龄数据。