R 实现分层抽样教程

您所在的位置:网站首页 分层随机抽样公式平均数 R 实现分层抽样教程

R 实现分层抽样教程

2024-07-10 14:50| 来源: 网络整理| 查看: 265

我们经常需要从总体中抽取样本,并利用样本数据推断有关总体的结论。本文介绍分层抽样的概念以及R的实现过程。

分层抽样

分层抽样是一种常用的抽样方法。它把总体分为多个组,然后从每个组中随机抽取一定数量样本形成分析样本。下面通过两个示例进行说明。

假设高校有400学生,包括大一、大二、大三、大四四个年级组成。我们现在需要采用分层抽样方法从每个年级随机抽取10人组成分析样本。 在这里插入图片描述

下面代码模拟生成100个学生数据:

set.seed(1) df % sample_n(size = 10) # strat_samp % group_by(grade) %>% slice_sample(n = 10) table(strat_samp$grade) # Freshman Junior Senior Sophomore # 10 10 10 10

我们看到每组有10条记录。

按行比例分层抽样

我们实用dplyr包的 group_by() 和 sample_frac()函数,每个年级组抽取15%比例的记录:

library(dplyr) strat_samp % group_by(grade) %>% sample_frac(size = .15) # strat_samp % group_by(grade) %>% slice_sample(prop = .15) table(strat_samp$grade) # Freshman Junior Senior Sophomore # 15 15 15 15

我们看到每组抽取15条,因为每组总数为100,按15%比例进行随机抽样。当每个组总量不同时,按比例抽样会更合理。

函数说明

通过官方文档,sample_n() 和 sample_frac() 已不建议使用,未来会统一使用 slice_sample()函数。使用该函数上面两种方式代码可以统一使用该函数:

# 每组抽取固定数量 strat_samp % group_by(grade) %>% slice_sample(n = 10) # 每组抽取一定比例 strat_samp % group_by(grade) %>% slice_sample(prop = .15)

两种方式的代码仅参数不同。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3