基于学习者权重的学校层面抽样偏差问题求助
学校抽样问题:匹配学习者层面平均校规模的解决方案
我有一个包含1200万学习者的全量数据集,受计算资源限制,必须在学校层面抽样,且要保留完整学校来计算校级统计指标(比如学校女生占比)。如果用简单随机抽样,小型学校在学习者层面会被过度代表。我希望抽样后,学习者层面的平均学校规模(learner_count)能和全量数据的对应值在抽样误差范围内,但目前代码跑出来的结果是:抽样校级数据经学习者权重加权后的平均校规模和全量学习者层面的均值一致,但抽样后学习者层面的平均校规模远高于全量值。我试过用学校规模权重(该校学习者数/总学习者数)作为抽样权重,结果还是没改善。当前使用的抽样代码如下:
# 创建学校层面数据 unique_schools <- all_learners %>% filter(!is.na(school_id), !is.na(learner_count)) %>% group_by(school_id) %>% summarise(school_id = first(school_id), learner_count = first(learner_count)) # %>% # mutate(learners_tot = sum(learners_master, na.rm = T), # learner_weight = learner_count/learners_tot) %>% # select(school_id, learner_weight) # 随机抽取1000所学校 selected_schools <- unique_schools %>% sample_n(1000, weight = learner_count, replace = FALSE) # 或 weight = learner_weight # 创建`sample`列并筛选数据集 sample <- all_learners %>% mutate(sample = if_else(school_id %in% selected_schools$school_id, 1, 0)) %>% filter(sample == 1)
内容的提问来源于stack exchange,提问作者Peter Courtney
相关产品推荐
相关产品推荐

