使用 R 绘制线性模型 (lm) 时产生的 NaN

NaNs produced when plotting a linear model (lm) with R

我正在尝试创建一个正态回归模型和一个逻辑回归模型来预测真实数据中的欺诈行为。我使用混合数据集(分类变量和数值变量),在其中进行了预处理和重新编码,以便我平衡了每个分类变量的每个级别的权重(避免包含仅包含 1 个注册表的级别的变量与包含多个注册表的级别混合的变量观察等)。我添加了一个交互来增加我的 lm 的 R^2。当我想绘制我的线性模型时,我收到此警告:

    Warning messages:
1: In sqrt(crit * p * (1 - hh)/hh) : NaNs produced
2: In sqrt(crit * p * (1 - hh)/hh) : NaNs produced

这似乎与 Cook 的距离有关 -https://bugs.r-project.org/bugzilla3/show_bug.cgi?format=multiple&id=9316-(影响因素,即使我删除了异常值...)。知道是什么导致了这个错误吗?如何绘制线性模型?

我的代码示例:

lm.a3 <- lm(log(response) ~(.-file_status)*file_status, data=data) 
final.lm3 <- stepAIC(lm.a3,direction="both")
summary(final.lm3) #R^2 = 64%
par(mfrow=c(2,2))
plot(final.lm3)

感谢您的宝贵时间,非常感谢您的回答

问题是我在 stepAIC 函数 运行 改进拟合之前做了对数变换。由于我的一些响应变量等于 1,因此在执行 log(response_variable) 时,此函数的输出在某些情况下等于零。向对数函数的参数添加最小数量解决了问题:log(response_variable + 0.0001234)。感谢@LyzandeR 的反馈。