||
在理想的状态下,我们希望数据是完美的,信号清晰,噪声尽可能小,最重要的是没有缺失值。不幸的是,由于各种原因,缺失值会时有发生。这会带来问题。无法在不完整的数据矩阵上计算PCA。如果有缺失值怎么办呢?是删除缺失值所在行和列,把珍贵的同行或列数据丢弃不用?或者,为了避免这种情况,用一些方法找到有意义替代值进行运算(统计语言中称为“插值(imput)”)。例如:利用相应变量的平均值或通过其他相关变量的回归分析获得的估计插值?当这两种解决方案出现时,他们不会考虑估计缺失值不确定性及其在进一步分析中的用途。结果,补充后的变量的标准误被低估,导致接下来的运算一些假设统计检验失效。
为了解决这些缺点,Josse和Husson(2012)提出了“一个正则化(regularized)的迭代PCA算法,为主坐标分析和主成分分析提供点估计(…)”。 这个算法与vegan包里的算法不一样,PCA是一轴一轴逐步迭代出来。当碰到缺失值的时候,会以该变量的平均值来替代。但不断迭代过程,缺失值会根据新的计算结果不断获得新的估计值,直到收敛为止,也就是让缺失值获得稳定的补充值。实施复杂程序目的在于(1)以避免过度拟合估算模型(即当数据里面有比较多的缺失值的时候,有太多参数需要调整的问题)以及(2)克服低估内插值方差的问题。
Husson和Josse写了一个称为missMDA的包,汇总了PCA分析所有可能通过迭代方式插值缺失值的方法。imputePCA()函数可以进行缺失值的内插。请查看此函数的帮助。
Josse, J., Husson, F.: Handling missing values in exploratory multivariate data analysis methods.
Journal de la Société Française de Statistique. 153, 79–99 (2012)
出自《数量生态学-R语言应用》第二版(待出版) 第5.3.6节 PCA中缺失值的估算
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 07:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社