Python统计分析与结果核验 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

Python统计分析与结果核验

更新:2026-10-13;状态:可用;验证范围:两个Python教学程序已运行;Welch与BH经独立实现核对,其他接口按各页说明。

用明确的数组、方向和参数调用SciPy,并通过手算关系与独立实现检查输出。

环境与入口

教学依赖建议Python 3.10+、SciPy 1.15+(使用rng接口),可在项目运行python -m pip install -r requirements-teaching.txt。本轮实测Python 3.14、NumPy 2.5.4、SciPy 1.18.1、Matplotlib 3.11.2。官方网页显示的版本可能与安装版本不同,保留实际环境记录;不要靠默认值记忆方法。

python3 -m venv .venv
.venv/bin/python -m pip install numpy scipy matplotlib
.venv/bin/python examples/statistics_demo.py
.venv/bin/python examples/basic_algorithms_demo.py

在项目根目录运行;安装当前版本不保证将来与本轮逐位一致。教学输出写入 examples/output/statistics/ 和 examples/output/basic-algorithms/,重复运行覆盖同名文件。

常用接口与需写明的选项

问题 SciPy入口 不能省略的解释
独立均值差 stats.ttest_ind equal_var=False表示Welch,参数顺序决定方向
配对均值差 stats.ttest_rel 数组必须按同一配对ID排序
秩和/符号秩 mannwhitneyu / wilcoxon 独立或配对、并列、精确/渐近方式
分类计数 fisher_exact / chi2_contingency 行列含义、单双侧、校正和期望计数
区间重采样 bootstrap 方法、配对规则、次数与随机数
置换 permutation_test 交换规则、统计量、精确/随机
BH/BY false_discovery_control 有效P值、检验家族与依赖条件

表内列出的接口不代表本项目全部执行过。实测范围见合成数据贯通统计推断,其他方法的具体假设在对应概念页。

最低限度的核验

核对有限值、缺失、样本长度和ID;检查默认axis是否把预期的样本维度当成特征维度。对均值差统一写为B−A;统计量符号、区间和绘图必须一致。

本项目独立实现Welch效应/自由度/区间与BH排序校正,再与SciPy核对;梯度下降与NumPy lstsq比较。数值一致验证实现与目标关系,不能证明真实数据满足假设。

输出保留效应、SE或区间、P、调整值、独立样本数、对比、版本与种子。不要静默nan_policy="omit"后丢掉每个基因实际样本数,也不要将下溢P=0当作无限证据。

依据:SciPy统计模块。真实R/Bioconductor流程继续使用各工具官方接口;本轮没有安装R。