计算数据帧内的置信区间(二项式)

时间:2019-07-05 00:56:45

标签: r dplyr purrr confidence-interval broom

我想获得小插曲中各个部分的置信区间。有办法吗?

library(tidyverse)
library(Hmisc)
library(broom)


df <- tibble(id = c(1, 2, 3, 4, 5, 6),
  count = c(4, 1, 22, 4545, 33, 23),
           n = c(22, 65, 34, 6323, 35, 45))

看起来像这样:

# A tibble: 6 x 3
     id count     n
  <dbl> <dbl> <dbl>
1     1     4    22
2     2     1    65
3     3    22    34
4     4  4545  6323
5     5    33    35
6     6    23    45

使用binconf中的Hmisctidy中的broom,解决方案可以来自任何软件包:

第一行的时间间隔:

tidy(binconf(4, 22))

# A tibble: 1 x 4
  .rownames PointEst  Lower Upper
  <chr>        <dbl>  <dbl> <dbl>
1 ""           0.182 0.0731 0.385

我尝试在map中使用purrr,但收到错误消息:

map(df, tidy(binconf(count, n)))
  

x [i]中的错误:“关闭”类型的对象不可子集化

我可以使用dplyr来计算它们,但是我得到的值小于零(例如,第2行)或大于1(例如,第5行),这是我不想要的。例如

df %>% 
  mutate(prop = count / n) %>%
  mutate(se = (sqrt(prop * (1-prop)/n))) %>% 
  mutate(lower = prop - (se*1.96)) %>% 
  mutate(upper = prop + (se*1.96))

# A tibble: 6 x 7
     id count     n   prop      se   lower  upper
  <dbl> <dbl> <dbl>  <dbl>   <dbl>   <dbl>  <dbl>
1     1     4    22 0.182  0.0822   0.0206 0.343 
2     2     1    65 0.0154 0.0153  -0.0145 0.0453
3     3    22    34 0.647  0.0820   0.486  0.808 
4     4  4545  6323 0.719  0.00565  0.708  0.730 
5     5    33    35 0.943  0.0392   0.866  1.02  
6     6    23    45 0.511  0.0745   0.365  0.657 

是否有一个好的方法?我确实看过confint_tidy()函数,但无法正常工作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

可能不是很整洁,但

capabilities: {
    browserName: "chrome",
    chromeOptions: {
        args: ["--disable-gpu"],
        prefs: {
            download: {
                prompt_for_download: false,
                directory_upgrade: true,
                default_directory: `${__dirname}\\src\\json.file\\`
            }
        }
    }
}

似乎可以工作