[英]Calculate and plot 95% confidence intervals of a generalised nonlinear model
[英]How to calculate 95% confidence intervals using bayesboot()
我需要帮助,根据我的回归coef.def
计算数量qtt.ci
的基于引导程序的 可信间隔 。
到目前为止,我的尝试已导致:
分位数中的错误.default(s,c(0.025,0.25,0.5,0.75,0.975)):如果'na.rm'为FALSE,则缺少值和NaN
之前:
警告消息:在bayesboot(dat,boot_fn)中:bayesboot中的样本包含NA,NaN或NULL。 确保统计函数仅返回实际值。
这是我的示例数据:
dat <- data.frame(
A = c(1, 1, 0, 0), B = c(1, 0, 1, 0),
Pass = c(278, 100, 153, 79), Fail = c(743, 581, 1232, 1731)
以下是我的回归。 我想要获得基于引导的95%可信区间的数量是qtt.ci
:
boot_fn <- function(dat) {
coef.def = unname(coef(glm(cbind(Pass, Fail) ~ A * B, binomial,
dat)))
}
qtt.ci <- exp(sum(coef.def[2:4])) - exp(coef.def[2]) - exp(coef.def[3]) + 1
这是我的尝试:
bb_ci <- bayesboot(dat, boot_fn)
summary(bb_ci)
不确定如何获取qtt.ci
的基于引导的置信区间。
先感谢您。
编辑:
按照@RuiBarradas的回答,我尝试进行引导以获取数量qtt.ci(这是我要获取自举CI的数量)的95%CI,但未成功:
library(bayesboot)
boot_fn <- function(dat) {
coef.def <- unname(coef(glm(cbind(Pass, Fail) ~ A * B, binomial, dat)))
qtt<- (exp(sum(coef.def[2:4])) - exp(coef.def[2]) - exp(coef.def[3]) + 1)
if(all(!is.na(qtt))) qtt else NULL
}
Runs <- 1e2
qtt.ci <- bayesboot(dat, boot_fn, R = Runs, R2 = Runs)
summary(qtt.ci)
Quantiles:
statistic q2.5% q25% median q75% q97.5%
V1 2.705878 2.705878 2.705878 2.705878 2.705878
因此,这不会给出qtt.ci
的配置qtt.ci
。 输出只是qtt
的点估计:
qtt<-(exp(sum(coef.def[2:4])) - exp(coef.def[2]) - exp(coef.def[3]) + 1)
qtt
[1] 2.705878
任何帮助将非常感激。
以下内容解决了警告问题。 我已经用更少的运行次数测试了它,而不是4000的100次测试。
library(bayesboot)
boot_fn <- function(dat) {
fit <- glm(cbind(Pass, Fail) ~ A * B, binomial, dat)
coef.def <- unname(coef(fit))
if(all(!is.na(coef.def))) coef.def else NULL
}
Runs <- 1e2
bb_ci <- bayesboot(dat, boot_fn, R = Runs, R2 = Runs)
summary(bb_ci)
编辑。
根据问题中的公式以及带有OP的注释中的对话框,以运行基于引导程序的CI:
qtt <- exp(sum(bb_ci[2:4])) - exp(bb_ci[2]) - exp(bb_ci[3]) + 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.