【问题标题】:How to generate bootstrapped confidence intervals for categorical data in R?如何为 R 中的分类数据生成自举置信区间?
【发布时间】:2020-10-21 15:00:52
【问题描述】:

我正在尝试为 R 中的分类数据的正态分布数据构建简单的 95% 自举置信区间。常规的Bootstrap Confidence Intervals in Rboot.ci 似乎不适用于分类变量

df <- data.frame(
  dose = rep(c("10","20","30","40","50"),times= 10),
  count = rnorm(50, 1, 0.1)
)    

df$dose <- as.factor(df$dose)

【问题讨论】:

  • 不清楚您要查找的置信区间是什么统计数据。
  • 我正在尝试运行一般线性模型,即正态分布。这有帮助吗?
  • 是“计数”你的因变量和“剂量”你的自变量吗?您是否正在运行泊松回归并希望引导预测值?为什么您的示例中有一个变量 count 是从正态分布中采样的?计数不是正态分布的。
  • 我正在使用这个虚拟示例。是的,自变量中的剂量和计数相关。你能给我看一个泊松分布的例子吗?
  • 你想用dose预测count?那你不应该有dose的分发来做一个引导程序吗?

标签: r confidence-interval


【解决方案1】:
df <- data.frame(
  dose = rep(c(10,20,30,40,50),times= 10)
)    
df$count <- rpois(50, df$dose)


df$dose <- factor(df$dose)
#I would consider if I can keep dose as numeric


fit <- glm(count ~ dose, data = df, family = "poisson")
summary(fit)

#bootstrap predictions
library(boot)
set.seed(42)
myboot <- boot(df, function(df, i) {
  fit <- glm(count ~ dose, data = df[i,])
  predict(fit, newdata = data.frame(dose = unique(df$dose)), type = "response")
}, 1e3)

lapply(seq_along(myboot$t0), function(i) boot.ci(myboot, index = i))
# [[1]]
# BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
# Based on 1000 bootstrap replicates
# 
# CALL : 
#   boot.ci(boot.out = myboot, index = i)
# 
# Intervals : 
#   Level      Normal              Basic         
# 95%   ( 9.57, 13.93 )   ( 9.40, 13.90 )  
# 
# Level     Percentile            BCa          
# 95%   ( 9.50, 14.00 )   ( 9.54, 14.00 )  
# Calculations and Intervals on Original Scale
#
# ...

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 2016-04-21
    • 1970-01-01
    • 2015-12-13
    • 2020-01-14
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多