lm() 中如何处理零值?

机器算法验证 r 回归
2022-04-09 02:43:03

我正在使用 R 进行线性回归,并且我的预测变量中有许多 0 值。这些在 R 的lm()函数中是如何处理的?我应该删除这些数据以进行更准确的分析吗?

任何建议表示赞赏。谢谢。

2个回答

您在此处描述的问题称为有限因变量问题,通常由截断或删失数据表示(前者可以视为后者的特例)。在这种情况下,lm()函数应用将不是最佳选择,因为它通常会产生对真实回归线的有偏差和不一致的估计。但是,截断(如您在评论中建议的那样,从样本中删除零)会使这种偏差更大。

可能这个问题是众所周知的,通常有两种常见的选择来解决它,使用Tobit 模型Heckman的两步法,研究任何关于该主题的常见计量经济学教科书都会很有用(此交叉验证链接将有用)。两个模型的不同之处在于,Heckman 方法允许解释变量或参数估计值在影响零点和观察到的非零值大小的估计部分之间存在差异。

要在 R 中实现 Tobit 和 Heckman 模型,您将需要sampleSelectioncensReg包。这些包也有不错的 Vignettes,所以请先阅读它们。

预测变量的百分比为 0,它还具有哪些其他值?

值得关注的是,具有如此小的变化(绝大多数是 0 的值)的预测变量在回归模型中是否有用。

为了解决这个问题,您可以首先对预测变量为 0 的数据子集进行分层并进行一次分析,然后对预测变量为 != 0 的数据进行另一次分析。一旦您了解了数据的结构,您就可以决定是否继续使用整个数据集进行分析,以及预测变量是否应保留在模型中。