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

GEE逻辑回归模型报错:NA/NaN/Inf in foreign function call求助

GEE逻辑回归模型报错排查求助

我在用广义估计方程(GEE)实现逻辑回归时,遇到了报错问题:使用gee包时持续提示NA/NaN/Inf in foreign function call (arg 2),切换至geepack包也出现类似报错。已确认数据集无NA、Inf值,所有变量均为因子类型且无缺失,调整变量结构也无法解决,但标准逻辑回归(glm)可正常收敛。以下是可复现的最小数据、代码及排查细节,请求帮忙找出报错原因。

数据

df <- structure(list(id = structure(c(7L, 1L, 20L, 15L, 14L, 6L, 8L,  24L, 21L, 19L, 5L, 4L, 18L, 
                                13L, 23L, 16L, 25L, 12L, 10L, 9L,  22L, 17L, 11L, 3L, 2L, 2L), 
                              levels = c("ALWA28M", "BOMA13M", "BOMA41M",  "DAYA35M", "DEMB72M", "EDAB3WM", "EFCH52M", 
                                         "FASI6M", "FRRO35M",  "GRAS35F", "GRKA48M", "JARA35M", "KABA27M", "KECH4WM", 
                                         "MAAD60M",  "MACH33M", "MEBA29F", "MIGU42M", "MTSA10M", "NTMA22F", "RACA2M",  
                                         "STMA35M", "TOKE39M", "TRMA12M", "YOLU29M"), class = "factor"),      
               testres = structure(c(1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
                                         1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L), 
                                       levels = c("POS", "NEG"), class = "factor"), 
               agegrp = structure(c(5L, 3L, 3L, 5L, 1L, 1L, 2L, 2L, 1L, 2L, 6L, 4L, 4L, 
                                    3L, 4L, 4L, 3L, 4L, 4L, 4L, 4L, 3L, 5L, 4L, 2L, 2L), 
                                  levels = c("0", "1", "2", "3", "4", "5"), class = "factor")), 
          row.names = c(NA,  26L), 
          class = "data.frame")

gee包模型代码与报错

代码

gee::gee(testres ~ agegrp, data = df, 
         id = id, 
         family = binomial, 
         corstr = "exchangeable")

报错信息

Error in gee::gee(testres ~ agegrp, data = df, id = id, family = binomial, :
NA/NaN/Inf in foreign function call (arg 2)
In addition: Warning message:
In gee::gee(testres ~ agegrp, data = df, id = id, family = binomial, :
NAs introduced by coercion

数据检查结果

检查代码

# 所有变量均为因子类型
str(df)

# 无NA或Inf值
lapply(df, table, useNA = "always")
lapply(df, \(x) table(is.infinite(x)))

结果

  • str(df)输出显示3个变量均为因子类型,共26条观测:
    'data.frame':   26 obs. of  3 variables:
    $ id     : Factor w/ 25 levels "ALWA28M","BOMA13M",..: 7 1 20 15 14 6 8 24 21 19 ...
    $ testres: Factor w/ 2 levels "POS","NEG": 1 1 1 2 1 1 1 1 1 1 ...
    $ agegrp : Factor w/ 6 levels "0","1","2","3",..: 5 3 3 5 1 1 2 2 1 2 ...
    
  • lapply(df, table, useNA = "always")显示无NA值;lapply(df, \(x) table(is.infinite(x)))显示无Inf值。

geepack包模型代码与报错

代码

geepack::geeglm(testres ~ agegrp,
                data = df, id = id,
                corstr = "exchangeable",
                family = "binomial")

报错信息

Error in lm.fit(zsca, qlf(pr2), offset = soffset) : NA/NaN/Inf in 'y'
In addition: Warning messages:
1: In model.response(mf, "numeric") :
using type = "numeric" with a factor response will be ignored
2: In Ops.factor(y, mu) : ‘-’ not meaningful for factors

标准逻辑回归可正常收敛

summary(glm(testres ~ agegrp, data = df, family = binomial(link = logit)))

已尝试但无效的方法

  • 解决randomForest预测时的"NA/NaN/Inf in foreign function call (arg 7)"错误
  • R中"NA/NaN/Inf in foreign function call (arg 1)"问题排查
  • gee()模型拟合报错"NA/NaN/Inf in foreign function call (arg 3)"的解决
  • 解决"NA/NaN/Inf in foreign function call (arg 2)"错误
  • "NA/NaN/Inf in foreign function call (arg 5)"问题处理
  • lme报错"NA/NaN/Inf in foreign function call (arg 3)"的排查
  • 运行PGLS(Pagel's lambda)时出现"NA/NaN/Inf in foreign function call (arg 1)"错误的解决
  • bigglm中"NA/NaN/Inf in foreign function call (arg 3)"错误的消除
  • glmnet报错"NA/NaN/Inf in foreign function call"的处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:56:01