R 中的逻辑回归模型,用于识别应需要安全库存退货警告的库存项目

Logistic regression model in R to identify inventory items that should require safety stock returning warnings

提问人:brossb12 提问时间:6/7/2023 最后编辑:brossb12 更新时间:6/7/2023 访问量:28

问:

我一直致力于在 R 中构建一个逻辑回归模型,目标是使用它来确定新库存项目的任何给定项目数据集是否需要安全库存。

尝试运行此模型时,我收到警告消息: 警告消息: 1:glm.fit:算法未收敛 2:glm.fit:发生数值 0 或 1 的拟合概率

我正在尝试在当前库存项目的数据集上训练模型,其变量包括:交货时间(以天为单位)、单位成本(以美元为单位)和每日使用量(数量/天)。使用物料是否需要安全库存作为模型中的因变量,值 1 表示是,值 0 表示否。

参考型号代码: SafetyStock_model <- glm(公式 = SafetyStock ~ UnitCost + LeadTime + DailyUsage, family = 二项式(link = “logit”), data = SafetyStock_Train)

此代码返回上面列出的警告消息

我知道如果您看到完美的分离,可能会发生这种情况,但我认为我使用的数据不应该发生这种情况。关于为什么会发生这种情况,或者我该如何解决它的任何想法?感谢所有意见

谢谢!

编辑:包括当前状态的数据样本和模型摘要。

structure(list(PartNumber = c("72150", "66K4A3SN-SF", "AN320-4", "67L20423", "72245", "60N29740-CT", "LW-16107", "65990", "LW-349290-1-70", "31M22993"), UnitCost = c(93.45, 752.584, 0.4984, 142.044, 784.24486, 0.16198, 101.12536, 33.642, 610.2285, 784.24486), DailyUsage =c(0.0145833333333333, 1.10833333333333, 0.0229166666666667,0.00416666666666667, 0.06875, 0.00833333333333333,0.0104166666666667, 0.00208333333333333, 0.0166666666666667, 0.0520833333333333), LeadTime = c(35, 180, 40, 30, 130,365, 90, 40, 40, 130), SafetyStock = structure(c(1L, 2L, 1L, 1L, 2L, 1L,1L, 1L, 1L, 2L), levels = c("0", "1"), class = "factor")), row.names =c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"))


Call:
glm(formula = SafetyStock ~ UnitCost + LeadTime + DailyUsage, 
family = binomial(link = "logit"), data = SafetyStock_Train)

Coefficients:
          Estimate Std. Error      z value  Pr(>|z|)
(Intercept) -2.677e+02  3.951e+02  -0.678    0.498
UnitCost     1.284e-03  1.011e-02   0.127    0.899
LeadTime     1.296e-01  3.420e-01   0.379    0.705
DailyUsage   5.122e+03  7.660e+03   0.669    0.504

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 1.1914e+03  on 1026  degrees of freedom
Residual deviance: 7.6262e-03  on 1023  degrees of freedom
AIC: 8.0076

Number of Fisher Scoring iterations: 25
R 警告逻辑 回归 训练数据

评论

0赞 nrennie 6/7/2023
如果您可以使用它共享数据样本,那会容易得多?您至少可以了解这些变量是什么类型的变量吗?dput(0
0赞 brossb12 6/7/2023
@nrennie,我上传了一张图片来显示使用的数据
3赞 nrennie 6/7/2023
请不要将数据作为图像共享(这对我们运行您的代码没有帮助) - 例如,您可以运行吗? 并将内容粘贴到代码块中?dput(head(SafetyStock_Train, 10))
0赞 Ben Bolker 6/7/2023
您能否也发布模型的输出(作为文本,而不是图像)?summary()
0赞 Ben Bolker 6/7/2023
顺便说一句,这些是警告而不是错误(如果它们是错误,你根本不会得到任何结果)——这是一个有用的区别......

答: 暂无答案