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

使用RMediation::medci计算置信区间时出现积分细分次数超限错误

问题描述

拥有以下数据:

exp_med_b <- c(-0.0594832340,-0.0219711830,-0.0418851800,0.0004572729,-0.0011745170)
med_out_b <- c(-0.02325445,-0.03738470,0.12305580,3.40118200,0.88303590)
exp_med_se <- c(0.040328500,0.013646880,0.030657290,0.001533312,0.002025108)
med_out_se <- c(0.01300451,0.08911688,0.07536918,1.21814000,0.54391590)

运行以下代码时出现错误:

library(RMediation)

confidence_intervals <- medci(mu.x=exp_med_b,
                              mu.y=med_out_b,
                              se.x=exp_med_se,
                              se.y=med_out_se,
                              type='dop')

错误信息:

Error in integrate(gx, lower = -Inf, upper = Inf, z = z) :
maximum number of subdivisions reached

解决办法
  • 增加积分细分次数:medci函数的额外参数会传递给底层的integrate函数,设置更高的subdivisions值可解决积分收敛问题:
confidence_intervals <- medci(mu.x=exp_med_b,
                              mu.y=med_out_b,
                              se.x=exp_med_se,
                              se.y=med_out_se,
                              type='dop',
                              subdivisions = 10000)
  • 检查并处理极端值:数据中med_out_b的第四个值(3.401182)远大于其他值,对应标准误也较大,可能干扰积分收敛。先验证该数据点合理性,必要时移除或修正后重新计算。
  • 切换置信区间计算方法:如果dop类型仍无法收敛,改用自助法(type='boot'),该方法对极端值鲁棒性更强:
confidence_intervals <- medci(mu.x=exp_med_b,
                              mu.y=med_out_b,
                              se.x=exp_med_se,
                              se.y=med_out_se,
                              type='boot',
                              R=1000) # 可根据需求调整自助抽样次数R

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:01:04