【问题标题】:R infer and group_by - generate only one summary statistic for bootstrapping without any levelsR infer 和 group_by - 只为引导生成一个汇总统计数据,没有任何级别
【发布时间】:2021-07-18 12:39:14
【问题描述】:

我的 group_by 似乎没有使用 infer 包有什么原因吗?我正在尝试使用引导生成置信区间。

这段代码运行良好:

library(infer)

mtcars %>%
  specify(response = wt) %>%
  generate(reps = 1000, type = 'bootstrap') %>%
  calculate(stat = 'mean') %>%
  get_ci(level = 0.95)
  

lower_ci
<dbl>
upper_ci
<dbl>
2.897742    3.535187    

但是当我将 mtcar 组合成一个长数据框,然后尝试使用 group_by 进行推断时,我只得到一组摘要行(没有任何分组)。

remove(mtcars)

mtcars <- mtcars %>%
  mutate(am = as_factor(am), cyl = as_factor(cyl), gear = as_factor(gear), vs = as_factor(vs),  carb = as_factor(carb))

mtcars_long_numeric <- mtcars %>%
  select_if(is.numeric) %>%
  pivot_longer(everything(), names_to = 'names', values_to = 'values')

mtcars_long_numeric %>%
  group_by(names) %>%
  specify(response = values) %>%
  generate(reps = 1000, type = 'bootstrap') %>%
  calculate(stat = 'mean') %>%
  get_ci(level = 0.95)


lower_ci
<dbl>
upper_ci
<dbl>
56.24676    84.73951    

作为最后的小测试,我按名称 == wt 过滤我的新数据框,并获得与我第一次运行时相同的值。所以看起来除了 group_by 不起作用之外没有任何明显的错误?

mtcars_long_numeric_filtered <- mtcars_long_numeric %>%
  filter(names == "wt")

mtcars_long_numeric_filtered %>%
  specify(response = values) %>%
  generate(reps = 1000, type = 'bootstrap') %>%
  calculate(stat = 'mean') %>%
  get_ci(level = 0.95)

lower_ci
<dbl>
upper_ci
<dbl>
2.91292 3.542712            

我很惊讶这给我带来了麻烦 - 我认为 infer 是使用这些 dplyr 类型动词/语法设计的,我认为我在这里的示例可能在其他情况下通常有用,尽管我可能遗漏了一些明显的东西.

【问题讨论】:

    标签: r bootstrap-4 confidence-interval


    【解决方案1】:

    我认为infer 包中的函数无法识别小标题的分组属性。您可以将数据集拆分为较小的数据集列表,应用函数并组合结果。

    library(tidyverse)
    library(infer)
    
    mtcars_long_numeric %>%
      split(.$names) %>%
      map_df(~.x %>% 
      specify(response = values) %>%
      generate(reps = 1000, type = 'bootstrap') %>%
      calculate(stat = 'mean') %>%
      get_ci(level = 0.95), .id = 'name')
    
    #  name  lower_ci upper_ci
    #  <chr>    <dbl>    <dbl>
    #1 disp    190.     274.  
    #2 drat      3.42     3.79
    #3 hp      123.     172.  
    #4 mpg      18.0     22.3 
    #5 qsec     17.2     18.5 
    #6 wt        2.88     3.57
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2021-12-13
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多