我正在尝试创建一个正常回归模型和一个逻辑回归模型来预测真实状态数据中的欺诈行为。我使用混合数据集(分类变量和数值变量),在其中进行了预处理和重新编码,以便每个分类变量的每个级别的权重保持平衡(避免包含仅具有 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
这似乎与库克的距离有关 - 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) 时,该函数的输出在某些情况下等于 0。向对数函数的参数添加最小数量解决了该问题:log(response_variable + 0.0001234)。感谢@LyzandeR 的反馈。
关于r - 使用 R 绘制线性模型 (lm) 时产生 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329751/