我正在使用missForest函数(在R中的missForest包中)进行数据插补,一切似乎都很好。该函数易于使用,乍一看,估算的数据看起来是合理的。
但是,我对如何解释不同的袋外错误(OOBerror)感到困惑。
当我使用默认函数时,我得到 0.1574 的 OOBerror(归一化均方根误差或 NRMSE):
> mf_test4 = missForest(test.mf4)
> mf_test4$OOBerror
NRMSE
0.1574
这表明,对于整个数据集,数据的估算误差为 15.74%。
当我想查看与每个插补变量相关的错误时,我得到的错误要小得多(前两个变量不包含 NA,因此 MSE = 0,因为不需要插补):
> mf_test42 = missForest(test.mf4, variablewise = TRUE)
> mf_test42$OOBerror
MSE MSE MSE MSE MSE
0.00000000 0.00000000 0.00040559 0.00005102 0.00027467
我知道在第二种情况下,我们得到了 MSE(均方误差......我猜)。但即使在计算这些 MSE 的平方根时,我得到的值也比整个估算数据集的 0.1574 小得多:
> sqrt(mf_test42$OOBerror)
MSE MSE MSE MSE MSE
0.000000 0.000000 0.020139 0.007143 0.016573
这是否意味着变量 3、4 和 5 的数据分别具有 2.0%、0.07% 和 1.6% 的误差?为什么它比为整个数据集找到的 15.74% 小得多?我想这与标准化有关吗?
任何人都可以帮助我解释或理解其中的区别吗?
谢谢