如何处理单数据集含缺失值的Wilcoxon符号秩检验及配对观测数不匹配问题
配对数据分析观测数不匹配问题解决
配对分析的核心前提是两组观测为一一对应的配对关系(如同一受试者的两次检测结果、1:1匹配的病例对照样本),观测数不一致可按以下步骤处理:
- 第一步核对两组样本的唯一匹配标识(如样本ID、配对编号),定位41条冗余观测的所属分组,排查是否为数据导入、录入环节的遗漏/重复问题
- 若为匹配逻辑错误,可基于匹配标识做内连接筛选共有的配对样本:
- R语言可使用
merge(数据集1, 数据集2, by = "匹配ID列名")实现 - Python可使用
pandas.merge(数据集1, 数据集2, on = "匹配ID列名", how = "inner")实现
- R语言可使用
- 若确认冗余观测为无法完成匹配的有效样本,需将该部分样本排除后再做配对分析,或改用非配对的统计检验方法
注意:调整样本范围后需在分析报告中明确说明筛选规则,避免结果出现选择性偏倚
含缺失值的Wilcoxon符号秩检验实现
Wilcoxon符号秩检验为配对检验方法,你提到的「单个数据集」通常指单数据集内存储了配对的两组变量,或是单组样本与指定总体中位数做检验的场景,针对缺失值的处理方案如下:
- 优先做缺失值排查:若单条配对观测的任意一个值存在缺失,默认采用行删除法排除该观测,避免干扰秩次计算;若缺失值占比超过10%,需先验证缺失是否为随机缺失,盲目删除可能导致结果偏差
- 不同分析工具的实现代码:
- R语言:调用基础函数即可自动处理缺失值,配对检验代码为
wilcox.test(分组1变量, 分组2变量, paired = TRUE, na.rm = TRUE),单样本与指定中位数检验代码为wilcox.test(目标变量, mu = 总体中位数, na.rm = TRUE) - Python:使用scipy库实现,配对检验代码为
scipy.stats.wilcoxon(分组1序列, 分组2序列, nan_policy='omit'),单样本与指定中位数检验代码为scipy.stats.wilcoxon(目标序列 - 总体中位数, nan_policy='omit')
- R语言:调用基础函数即可自动处理缺失值,配对检验代码为
内容的提问来源于stack exchange,提问作者Nicole Hernandez
相关产品推荐
相关产品推荐

