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

元回归中当yi=1时如何估算95%预测区间上限(pi.ub)

计算metafor元回归中预测yi=1时的95%预测区间上限

你的需求核心是找到对应预测均值yi=1的协变量ablat取值,再计算该取值下yi的95%预测区间上限。具体步骤如下:

  1. 推导对应ablat值
    根据你的元回归模型公式 yi = β₀ + β₁*ablat,令预测均值yi=1,反解得到ablat的取值:
ablat_target <- (1 - res$beta[1]) / res$beta[2]

代入你的模型参数(β₀=0.2515,β₁=-0.0291),计算得到ablat_target约为(1-0.2515)/(-0.0291) ≈ -25.72。

  1. 计算该ablat值下的95%预测区间上限
    使用metafor包的predict.rma()函数,传入目标ablat值并指定计算预测区间:
# 生成预测结果,包含预测区间
pred_result <- predict(res, newmods = ablat_target, interval = "prediction")

# 提取95%预测区间上限
pi_ub <- pred_result$pi.ub
pi_ub

补充说明

  • 这里的预测区间同时考虑了模型参数估计的不确定性,以及研究间的异质性(τ²)。
  • 如果你的需求是已知yi=1,反推ablat的预测区间上限(逆预测),可以用以下代码计算:
# 提取模型关键参数
beta0 <- res$beta[1]
beta1 <- res$beta[2]
tau2 <- res$tau2
vcov_mat <- vcov(res)
target_yi <- 1

# 计算ablat的点估计
ablat_pred <- (beta0 - target_yi) / beta1

# 计算逆预测的标准误(包含参数估计误差和随机误差)
se_param <- sqrt( (vcov_mat[1,1] + target_yi^2*vcov_mat[2,2] - 2*target_yi*vcov_mat[1,2]) / beta1^2 )
se_random <- sqrt( (tau2 + mean(dat$vi)) / beta1^2 )
se_total <- sqrt(se_param^2 + se_random^2)

# 95%预测区间上限
pi_ub_ablat <- ablat_pred + qnorm(0.975)*se_total

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:50:05