R语言MissMech包TestMCARNormality函数非参数MCAR测试报错求助
解决MissMech包TestMCARNormality函数报错及非参数MCAR测试方案
报错原因
你的数据集仅5行,每个缺失模式仅对应1个案例。设置del.lesscases=2会删除所有缺失模式对应的样本,剩余样本量不足以支撑检验计算,因此触发报错。另外需要注意:TestMCARNormality是基于正态分布假设的MCAR检验方法,并非你需要的非参数测试。
临时修复(若坚持使用该函数)
将del.lesscases参数调整为1,或者扩充数据集让至少一种缺失模式对应2个及以上样本:
MissMech::TestMCARNormality(df[naVars], del.lesscases = 1)
非参数MCAR测试的替代方案
以下是两种常用的非参数MCAR检验方法:
1. 基于缺失模式的卡方独立性检验(naniar包)
library(naniar) # 生成各变量的缺失指示矩阵 miss_ind <- as.data.frame(is.na(df[naVars])) # 检验缺失模式的独立性(判断是否符合MCAR) chisq.test(table(miss_ind))
2. mice包的非参数MCAR检验
library(mice) # 直接运行非参数MCAR检验 mcar_test(df[naVars])
内容的提问来源于stack exchange,提问作者Marie
相关产品推荐
相关产品推荐

