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

运行rethinking包quap模型报错:non-finite value supplied by optim

问题分析与解决

你的代码里有两个关键错误导致了这个报错:

  • 模型里用了ID作为分组变量,但你的数据框里的分组列叫GID,变量名不匹配,程序找不到ID,进而引发优化过程中的非有限值错误。
  • Total <- Total[ID]这行完全多余,你的数据里已经有Total列,直接调用即可,这行代码不仅没用,还会因为ID不存在而加重错误。

修正后的代码

library(rethinking)

G <- c("D","ND")
Purple <- c(670, 601)
Pink <- c(315,604)
Total <- c(985, 1205)
GID <- c(1,2)
Data <- data.frame(G, Purple, Pink, Total, GID)

model_1a <- quap(
  alist(
    Purple ~ dbinom(Total, p), 
    p <- a[GID],  # 替换ID为GID,匹配数据列名
    a[GID] ~ dbeta(10,10)    
  ), data = Data)
precis(model_1a, depth=2)

运行修正后的代码就能正常得到模型结果了。教授的代码能运行,大概率是他的数据里分组变量叫ID,或者你抄录时不小心写错了变量名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:07:35