异常值检测与剔除

在分子技术与组学研究中,数据矩阵往往包含成千上万个特征和数十至数百个样本。异常值可能来自真实的生物学异质性,也可能来自技术误差。异常值检测与剔除的目标不是“让数据好看”,而是识别并妥善处理那些会扭曲统计推断、聚类结构或预测模型的数据点。
异常值指与大多数观测明显不一致的观测。在组学数据中,常见来源包括:

  • 生物学真实极端:稀有细胞亚群、疾病亚型、治疗响应者。
  • 技术噪声:文库质量差、测序深度低、质谱信号漂移。
  • 样本处理:降解、批次效应、试剂差异。
  • 数据生成:归一化失败、缺失值填充、录入错误。

因此,核心问题不是“是否偏离”,而是“偏离是否代表错误”。错误异常值应处理,真实极端值则可能包含重要生物学信号。

检测前的准备

在运行任何检测算法前,应先完成以下步骤:

  • 明确分析单位:样本级、特征级还是细胞级。
  • 检查数据分布:组学数据常呈偏态,必要时进行 log 转换。
  • 标准化或归一化:避免技术因素主导距离计算。
  • 保留元数据:批次、分组、QC 指标等。
  • 先可视化:箱线图、PCA、相关性热图可快速暴露问题。

常用检测方法

单变量方法

  • Z-score:通常以 |z| > 3 为阈值,但假设近似正态,且易受异常值影响。
  • 稳健 Z-score:基于中位数和 MAD,适合偏态数据。
  • IQR 规则:低于 Q1 - 1.5×IQR 或高于 Q3 + 1.5×IQR。
  • 箱线图:适合快速筛查单个基因或蛋白的极端值。

多变量方法

  • 马氏距离:考虑变量间协方差,适合样本级异常检测。
  • PCA:观察投影空间中的离群点,可结合 Hotelling T²。
  • 聚类或 kNN:距离密度明显偏低者视为异常。
  • 隔离森林、LOF:非参数方法,适合高维数据。
  • 稳健协方差:避免协方差矩阵被异常值污染。

组学场景中的分层

  • 样本级:整体表达谱偏离、样本间相关性低、PCA 离群。
  • 特征级:某基因或蛋白在少数样本中极端高表达。
  • 细胞级:单细胞中线粒体比例高、检测基因数异常。

具体平台的 QC 指标会在测序技术与组学分析、基因工程与 CRISPR 技术等专门文章中展开,本文只讨论通用框架。

剔除还是保留

检测到异常值后,不应默认删除。可参考以下策略:

  • 明确错误且无法修复:剔除并记录原因。
  • 真实生物学极端:保留,使用稳健统计或分层分析。
  • 不确定:标记为可疑,进行敏感性分析。
  • 替代方案:缩尾、截断、稳健回归、混合模型。
  • 禁止:仅因影响显著性而删除数据点。

示例:样本级异常值筛查

假设表达矩阵 X 的样本为行、基因为列。先进行 log2 转换,再结合样本间相关性、PCA 和稳健马氏距离。

import numpy as np
from scipy.stats import chi2
from sklearn.decomposition import PCA

X = np.log2(expr + 1)

# 样本间平均相关性
corr = np.corrcoef(X)
mean_corr = (corr.sum(axis=1) - 1) / (X.shape[0] - 1)

# PCA 投影
pca = PCA(n_components=2)
scores = pca.fit_transform(X)

# 稳健马氏距离
med = np.median(X, axis=0)
mad = np.median(np.abs(X - med), axis=0) + 1e-9
Z = (X - med) / mad
cov = np.cov(Z, rowvar=False)
inv_cov = np.linalg.pinv(cov)
d2 = np.einsum('ij,jk,ik->i', Z, inv_cov, Z)
p = 1 - chi2.cdf(d2, df=X.shape[1])

outliers = np.where(p < 0.001)[0]

实际判断应综合 mean_corr 偏低、PCA 远离主体、马氏距离 p 值较小等多个证据,避免依赖单一方法。

常见陷阱与最佳实践

  • 数据泄漏:划分训练集与测试集后,仅用训练集确定阈值。
  • 批次混杂:异常值可能全部来自某一批次,应先校正或分层。
  • 多重检验:特征级检测需进行 FDR 校正。
  • 记录透明:报告方法、阈值、剔除数量和原因。
  • 可重复:保留代码、版本和随机种子。
  • 稳健优先:能用稳健统计时,不轻易删除数据。

小结

异常值检测与剔除是组学数据质控的关键环节。通用流程是:理解来源、预处理、单变量与多变量结合、区分错误与真实极端、选择剔除或稳健建模,并完成敏感性分析。该框架可跨转录组、蛋白组、代谢组和单细胞组学复用,为后续专门技术文章中的具体 QC 与算法讨论提供基础。