具有缺失值的分类数据中的维度减少

时间:2010-05-14 21:50:22

标签: python r statistics

我有一个回归模型,其中因变量是连续的,但百分之九十的自变量是分类的(有序和无序),并且大约百分之三十的记录都有缺失值(更糟糕的是它们随机丢失而没有任何模式,即超过百分之四十五的数据至少有一个缺失值)。没有先验理论来选择模型的规范,因此关键任务之一是在运行回归之前降维。虽然我知道连续变量降维的几种方法,但我不知道有关分类数据的类似静态文献(可能除了作为对应分析的一部分,基本上是频率表上主成分分析的变化)。我还要补充一点,该数据集具有200个变量的中等大小500000个观测值。我有两个问题。

  1. 是否有一个很好的统计参考可用于分类数据的降维以及强有力的估算(我认为第一个问题是插补然后降维)?
  2. 这与上述问题的实施有关。我之前已广泛使用过R,并且倾向于对连续变量使用transcan和impute函数,并使用树方法的变体来估算分类值。我有一个Python的工作知识,所以如果有一个很好的目的,那么我将使用它。 python或R中的任何实现指针都会有很大的帮助。 谢谢。

2 个答案:

答案 0 :(得分:20)

关于分类数据的估算,我建议检查mice包。另请参阅此presentation,其中解释了它如何影响多变量分类数据。多不完全多变量数据的多重插补的另一个包是Amelia。 Amelia包括处理序数和名义变量的有限能力。

至于分类数据的降维(即将变量排列成均匀聚类的方法),我建议使用Multiple Correspondence Analysis的方法,它将为您提供最大化聚类同质性的潜在变量。与主成分分析(PCA)和因子分析相似,MCA解决方案也可以旋转,以提高组件的简单性。轮换背后的想法是找到与旋转的组件更清楚地重合的变量子集。这意味着最大化组件简单性有助于因子解释和变量聚类。在R MCA中,方法包含在包ade4MASSFactoMineRca中(至少)。至于FactoMineR,你可以通过图形界面使用它,如果你把它作为一个额外的菜单添加到Rcmdr包已经提出的那个,安装RcmdrPlugin.FactoMineR

答案 1 :(得分:0)

您说,

45%的数据至少有一个缺失值。这令人印象深刻。我先看看是否没有模式。您说他们随机丢失。您是否对MAR进行了测试?您是否对MAR进行了分组测试?

不知道您的数据,我将首先查看是否存在缺少许多缺失值的案例,并查看是否有理论或实际原因将它们排除在外。实际原因是数据的产生。可能是因为他们没有得到很好的观察,产生数据的机器没有一直转动,调查没有一直覆盖所有国家,等等。例如,您拥有有关当前职业的调查数据,但是其中一部分受访者已退休。因此,它们必须(系统)缺失。您不能将这些数据替换为某些计算值。

也许您可以完全切开案例,寻找数据产生的条件。