相关疑难解决方法(0)

通过boot.ci函数获取多个统计信息的Bootstrap Confidence Intervals

我希望通过boot.ci函数获得多个统计信息的bootstrap置信区间.这是我的MWE.

我有两个统计信息,out并希望找到这两个统计信息的bootstrap置信区间.但是,boot.ci函数仅为第一个统计量(t1*)提供自举置信区间,但不为第二个统计量(t2*)提供自举置信区间.

set.seed(12345)
df <- rnorm(n=10, mean = 0, sd = 1)


Boot.fun <- 
  function(data, idx) {
    data1 <- sample(data[idx], replace=TRUE)
    m1 <- mean(data1)
    sd1 <- sd(data1)
    out <- cbind(m1, sd1)
    return(out)
  }

Boot.fun(data = df)

library(boot)
boot.out <- boot(df, Boot.fun, R = 20)
boot.out

RDINARY NONPARAMETRIC BOOTSTRAP


Call:
  boot(data = df, statistic = Boot.fun, R = 20)


Bootstrap Statistics :
  original     bias    std. error
t1* -0.4815861  0.3190424   0.2309631
t2*  0.9189246 -0.1998455   0.2499412

boot.ci(boot.out=boot.out, …
Run Code Online (Sandbox Code Playgroud)

r statistics-bootstrap

3
推荐指数
1
解决办法
1884
查看次数

用dplyr引导置信区间

这里查看答案 如何估计自举间隔?ggplot2列表上也提出了这个问题。

library(dplyr)
mtcars %>%
group_by(vs) %>%
summarise(mean.mpg = mean(mpg, na.rm = TRUE),
    sd.mpg = sd(mpg, na.rm = TRUE),
    n.mpg = n()) %>%
mutate(se.mpg = sd.mpg / sqrt(n.mpg),
 lower.ci.mpg = mean.mpg - qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg,
 upper.ci.mpg = mean.mpg + qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg)
Run Code Online (Sandbox Code Playgroud)

r confidence-interval dplyr

1
推荐指数
1
解决办法
1509
查看次数

在dplyr summarise()中按组计算上下置信区间

我正在尝试制作一个表格,显示N(观察次数)、百分比频率(答案 > 0)以及百分比频率的上下置信区间,我想按类型对其进行分组。

数据示例

dat <- data.frame(
  "type" = c("B","B","A","B","A","A","B","A","A","B","A","A","A","B","B","B"),
  "num" = c(3,0,0,9,6,0,4,1,1,5,6,1,3,0,0,0)
)
Run Code Online (Sandbox Code Playgroud)

预期输出(已填充值):

Type   N   Percent   Lower 95% CI   Upper 95% CI
A
B
Run Code Online (Sandbox Code Playgroud)

试图

library(dplyr)
library(qwraps2)

table<-dat %>%
  group_by(type) %>%
  summarise(N=n(),
            mean.ci = mean_ci(dat$num),
            "Percent"=n_perc(num > 0))
Run Code Online (Sandbox Code Playgroud)

这有助于获得 N 和百分比频率,但在我添加 mean_ci 时返回错误:“列的长度必须为 1(汇总值),而不是 3”

我试过的第二个代码,在这里找到:

table2<-dat %>%
  group_by(type) %>%
  summarise(N.num=n(),
            mean.num = mean(dat$num),
            sd.num = sd(dat$num),
            "Percent"=n_perc(num > 0)) %>%
  mutate(se.num = sd.num / sqrt(N.num),
         lower.ci = 100*(mean.num - qt(1 - (0.05 …
Run Code Online (Sandbox Code Playgroud)

r group-summaries dplyr summarize qwraps2

1
推荐指数
1
解决办法
1361
查看次数