首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R自举重采样,每个id有多个观测值,并返回重采样数据作为结果

R自举重采样,每个id有多个观测值,并返回重采样数据作为结果
EN

Stack Overflow用户
提问于 2019-11-08 17:32:16
回答 1查看 751关注 0票数 2

我正在尝试对我的数据进行引导。我的数据(df)具有以下形状。

代码语言:javascript
复制
id    v1    v2
1    1    1
1    0    1
1    0    1
2    2    0
2    1    1
2    0    0

据我所知,在R中初始化bootstrap时,重采样(使用reoplacement)是在行级别进行的,对吗?

所以设置某物。像这样:

代码语言:javascript
复制
boot_function <- function(data, i)
{boot_data <- data[i,]}

然而,我的第一个问题是,在每个id都有几个观察值需要保存在bootstrap中的情况下,我该如何设置它?因此,在我的示例中,当执行bootstrap时,我不能简单地在行之间采样,但我需要在ids中采样。因此,不是像上面那样

我用的是这个:

代码语言:javascript
复制
boot_function2 <- function(data, i)
{boot_data <- data[data$id %in% i,]}

这是正确的方式吗?

关于上面的场景,我想检查我的方法是否正确,所以我想我只是检查重采样是什么样子的,但我不知道如何返回单个引导样本数据帧。有什么想法吗?(我知道,如果我的原始数据很大,并且我正在进行2000次复制,那么返回的对象可能会相当大,所以我可能只想用R=10检查一下)。

EN

回答 1

Stack Overflow用户

发布于 2019-11-08 19:16:08

这是一种方法。我将首先生成一些假数据:

代码语言:javascript
复制
ids <- rep(1:3, times = 10)
values <- rnorm(30)

dat <- data.frame(ids, values)

现在我们有了数据,我们可以生成集群引导函数。这将从每个集群中采样并返回一个新的数据帧。然后,您可以应用您的测试统计数据:

代码语言:javascript
复制
library(tidyverse)

cluster_boot_function <- function(x){

  clusted_boot <- dat %>% 
    group_by(ids) %>% 
    nest() %>%
    mutate(samps = map(data, ~sample(.$values, size = 5, replace = T))) %>% 
    select(ids, samps) %>% 
    unnest(cols = samps)


  results <- clusted_boot %>% 
    group_by(ids) %>% 
    summarise(mu = mean(values))

  results
}

现在您只需要重复应用它(还要注意,函数中的"x“不做任何事情,我只是在下一步需要它)。

在这里,我使用map_dfr返回每次迭代的汇总统计信息:

代码语言:javascript
复制
out <- map_df(1:100, cluster_boot_function, .id = "iteration")

这将为您提供每次bootstrap迭代的统计信息:

代码语言:javascript
复制
# A tibble: 300 x 3
   iteration   ids    mu
   <chr>     <int> <dbl>
 1 1             1 0.150
 2 1             2 0.150
 3 1             3 0.150
 4 2             1 0.150
 5 2             2 0.150
 6 2             3 0.150
 7 3             1 0.150
 8 3             2 0.150

由此,您可以将其扩展到您需要执行的任何类型的建模。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58763866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档