You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用drm()拟合逻辑回归模型时出现Non finite value error错误

问题原因及解决步骤

1. 核心问题:VOT列是字符型,需转为数值型

你的VOT列是带"VOT "前缀的字符串(如"VOT 0"),但drm()要求自变量为数值型,这直接导致优化过程出现非有限值错误。

处理代码:

# 提取VOT中的数字并转换为数值型
d50$VOT_num <- as.numeric(gsub("VOT ", "", d50$VOT))

2. 数据完全分离,需调整模型

观察response分布:

  • 前11行中,VOT≥0时response全为0,VOT<0时全为1
  • 剩余所有行的response均为1

这种完全分离的情况会让四参数逻辑斯蒂模型(LL.4())无法收敛,因为模型无法估计合理的渐近线参数。可尝试以下两种方案:

方案一:改用二参数逻辑斯蒂模型(LL.2())

library(drc)
# 使用转换后的数值型VOT拟合二参数模型
fit <- drm(response ~ VOT_num, data = d50, fct = LL.2())
summary(fit)

方案二:筛选有变异的有效数据

如果前11行是独立的有效观测(比如单个被试的数据),其余行无信息价值,可仅保留这部分数据拟合模型:

# 仅保留前11行存在response变异的数据
d50_sub <- d50[1:11, ]
fit_sub <- drm(response ~ VOT_num, data = d50_sub, fct = LL.4())
summary(fit_sub)

验证效果

完成上述处理后,模型即可正常拟合,不会再出现non-finite value supplied by optim和收敛失败的错误。

内容的提问来源于stack exchange,提问作者firmo23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 06:10:37