逻辑回归:将 NA 编码为 0 是否有效?

机器算法验证 物流 缺失数据
2022-03-16 14:14:49

您好我有以下问题:

我计划对网络流量数据进行逻辑回归。我的属性之一是自上次访问以来的天数(在 R 中键入数字)。现在很多访客都是第一时间,我没有这个属性的数据。我应该将它们编码为 NA,还是将它们编码为 0 是否有效?

谢谢你们

4个回答

我会说“不”。如果您将此作为数字变量,则 0 将小于 1,表示访问者更频繁;事实上,0 有一个合理的解释为“今天访问了该站点”。

要回答直接问题,不。正如@PeterFlom 指出的那样, 0 具有“今天已访问”的解释。您的数据中可能已经有很多来自这样做的人的 0。

我不知道我会称这些数据为“缺失”。数据都在那里,只是解释有点困难。为了清楚起见,想想如果你估算丢失的数据会发生什么——你会将它估算为什么?你遇到了同样的问题。您知道数据是什么,但您不知道如何对其建模。

同样,如果将其编码为 NA,这对模型意味着什么?您仍然必须选择如何对其进行建模。逐行删除会起作用,但会改变您要回答的问题,“在以前的访问者中......”

一些潜在的建模方法:

  • 让它成为一个非常高的数字(接近)
  • 创建一个由两部分组成的模型,其中模型的第一阶段决定成为网站的“客户”,第二阶段是您现在拥有的
  • 为首次访问者创建一个虚拟first变量 ( ),并将其与自上次访问变量 ( ) 以来的天数进行交互visit例如包括firstfirst*visit不包括visit

其中,两部分模型似乎是最合适的,但工作量更大。其他人可能会在紧要关头给你一些合理的东西。您甚至可以比较这三种方法并通过这种方式获得粗略的敏感性分析。

如果感兴趣的结果是自上次访问以来的天数,那么首次访问者不会提供有关该结果的任何信息,因此似乎唯一要做的就是忽略首次访问者。

无论如何,将首次访问用户编码为0反映了一种信念,即首次访问用户等同于以前访问过该网站的人,而其最后一次访问是在 0 天前,这没有多大意义。因此,我强烈建议不要以这种方式编码,因为它会严重损害结果的可解释性。

我的回答都不是。您应该将它们编码为缺失,如果您使用 SAS,则为缺失数字数据的简单点。使用 0 是不好的,因为当数据点实际缺失时,软件会将 0 视为数字。NA 的使用不好,因为您有一个数值变量,并且您正在为同一个变量混合字符和数值。它可能在 SAS 中工作,因为我认为 SAS 会将它无法识别的值转换为缺失值。但请谨慎行事,将这些情况确定为缺少数字数据。建模过程应该知道如何处理它。