2017-03-10 43 views
0

我有一个预测量化变量的混合数据(包括定量和分类)。在将模型数据转化为因子之前,我已将其转换为因子。我的数据具有分类变量,其中大多数变量具有超过150个级别。当我尝试将它们提供给glm模型时,由于这些因素具有更多级别,因此它会因内存问题而失败。我们可以设置一个阈值,只接受一定数量的变量。但是,我需要将这些具有更多层次的因素嵌入到模型中。是否有任何方法可以解决这个问题。回归模型表现失败,具有更多级别的因子

编辑:数据集有120000行和50列。当数据用model.matrix展开时,有4772列。

+1

你能发布错误信息吗?我不清楚这是否与内存有关。 – Fernando

+0

我尝试了不放阈值,RStudio会话被中止。然后,当我探索将阈值拒绝到具有更多级别(> 150)的模型中时,它运行良好。 –

+0

如果您的数据稀疏,使用稀疏矩阵可能会解决问题(例如,软件包'glmnet')。 – Fernando

回答

0

如果您有大量数据,最简单的方法是从您的矩阵/数据框中抽样,然后运行回归。给定采样理论,我们知道比例p的标准误差等于sqrt((p(1-p))/ n)。因此,如果您有150个关卡,假设关卡中的观察次数是均匀分布的,那么我们希望能够从您的数据集中找到小至0.005的比例。因此,如果我们采取了10,000行的样品,这些因子水平的一个标准误差大致是:

sqrt((.005*.995)/10000) = 0.0007053368 

这真的不是那么多,你添加到您的回归估计额外的差异。特别是在进行探索性分析时,从数据中的行中抽样(例如12,000行样本),仍然应该为您提供大量数据以估计数量,同时进行估计。将行减少10倍也应该有助于R在不耗尽内存的情况下进行估算。双赢。

相关问题