回归模型性能因具有更多级别的因素而失败

时间:2017-03-10 20:01:24

标签: r machine-learning regression glm data-science

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

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

1 个答案:

答案 0 :(得分:0)

如果您有大量数据,最简单的方法是从矩阵/数据框中进行采样,然后运行回归。

鉴于抽样理论,我们知道比例p的标准误差等于sqrt((p(1-p))/ n)。因此,如果您有150个级别,假设级别中的观察数量均匀分布,那么我们希望能够从您的数据集中找到小到.005左右的比例。因此,如果我们采用10,000行样本,其中一个因子水平的标准误差大致为:

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

您在回归估算中添加的额外差异实际上并非如此。特别是当您进行探索性分析时,从数据中的行(例如12,000行样本)中采样,仍然可以为您提供大量数据来估算数量,同时使估算成为可能。将行减少10倍也应该有助于R在不耗尽内存的情况下进行估算。双赢。