R语言—随机抽样

2023-11-13

专题:随机抽样

简单随机抽样

从总体中抽取样本的方法很多,最常用的方法是简单随机抽样。

简单随机抽样:从容量为N的总体中,任意抽取n个单位作为样本,使每个可能的样本被抽中的概率相等的一种抽样方式。

  • 放回抽样(重复抽样):本次从整体中抽取的数据样本,在下一次抽取时同样有机会被抽取。
  • 不放回抽样(不重复抽样):一旦被抽取为样本,下次就不能再被抽取了。

srswr() srswor() sample()

sample函数

sample可以实现放回随机抽样和不放回随机抽样,也可以对数据进行随机分组。

格式:

 sample(x, size, replace=FALS, prob=NULL)

参数说明:

参数 说明
x 为向量,表示抽样的总体,或者是一个正整数,表示样本总体为1~n;
size 为样本容量,即要抽取的样本个数,是一个非负整数;
replace 表示是否为有放回的抽样,是一个逻辑值,默认为FALSE,即默认为无放回抽样;
prob 为权重向量,即x中元素被抽取到的概率,是一个取值0~1的向量,其长度应该与x的长度相同。

从26个大写字母中不放回随机抽取5个

> sample(LETTERS,5)
[1] "E" "W" "L" "X" "Q"

将26个大写字母随机分成2组,第2组和第1组的比例为7:3

> n<-sample(2,26,replace = TRUE,prob=c(0.7,0.3))
> n
 [1] 1 1 2 1 1 2 2 2 1 1 2 1 1 1 2 2 1 2 1 2 1 2 1 1 1 1
> sample1<-LETTERS[n==1]
> sample2<-LETTERS[n==2]
> sample1
 [1] "A" "B" "D" "E" "I" "J" "L" "M" "N" "Q" "S" "U" "W" "X" "Y" "Z"
> sample2
 [1] "C" "F" "G" "H" "K" "O" "P" "R" "T" "V"

将26个大写字母随机分成3组,每组的个数分配比例为0.4,0.4,0.2

> n<-sample(3,26,replace = TRUE,prob = c(0.4,0.4,0.2))
> n
 [1] 2 1 2 1 3 2 3 1 3 1 1 1 1 2 1 1 2 3 3 1 2 3 3 2 2 3
> sample1<-LETTERS[n==1]
> sample1
 [1] "B" "D" "H" "J" "K" "L" "M" "O" "P" "T"
> sample2<-LETTERS[n==2]
> sample2
[1] "A" "C" "F" "N" "Q" "U" "X" "Y"
> sample3<-LETTERS[n==3]
> sample3
[1] "E" "G" "I" "R" "S" "V" "W" "Z"

有10位学生的学号分别为1,2,…,10,现在要进行毕业答辩,答辩顺序要求 随机产生。请给出代码。

> sample(10)
 [1]  7  9 10  6  3  4  1  2  5  8
> x=c(1,3,5,7)
> sample(x,size=20,replace=T, prob=c(0.1,0.2,0.3,0.9))
 [1] 5 3 7 7 5 7 7 7 7 5 7 7 7 1 7 3 1 7 1 7

结论:对每一个元素都可以给定一个概率,且每个概率是独立的,即在参数prob中,不一定所有元素的概率加起来等于1,它只代表某元素被抽取的概率而已。

模拟抛硬币游戏,抛10次,看看出现正面H(Heads)和反面T(Tails)的情况。

将抛硬币视为有放回的实验,即将参数replace设置为TRUE。

> sample(c("H","F"),10,replace = TRUE)
 [1] "H" "F" "H" "F" "F" "F" "F" "H" "H" "H"

某篮球运动员投篮命中率为70%,模拟10次投篮的命中(S)和未命中(F)情况。

> sample(c("S","F"),10,replace = TRUE,prob = c(0.7,0.3))
 [1] "S" "S" "F" "S" "S" "S" "F" "S" "S" "S"

srswor函数

Simple random sampling without replacement

Description:Draws a simple random sampling without replacement of size n (equal probabilities, fixed sample size, without replacement).

Usage:srswor(n,N)

Value:Returns a vector (with elements 0 and 1) of size N, the population size. Each element k of this vector indicates the status of unit k (1, unit k is selected in the sample; 0, otherwise).

> library(sampling)
> s<-srswor(10,26)
> s
 [1] 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0
> obs<-which(s==1)
> obs
 [1]  1  4  7  9 12 13 16 17 21 23
> sample<-LETTERS[obs]
> sample
 [1] "A" "D" "G" "I" "L" "M" "P" "Q" "U" "W"

在26个中抽取10个,1表示被抽取的状态,0表示没有被抽取状态

srswr函数

Simple random sampling with replacement

Description:Draws a simple random sampling with replacement of size n (equal probabilities, fixed sample size, without replacement).

Usage:srswr(n,N)

Value:Returns a vector of size N, population size. Each element k of this vector indicates the number of replicates for unit k in the sample.

> s<-srswr(10,26)
> s
 [1] 1 2 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0
> obs<-which(s!=0)
> obs
[1]  1  2  6  7 18 19 20 22
> sample<-LETTERS[obs]
> sample
[1] "A" "B" "F" "G" "R" "S" "T" "V"

分层抽样

分层抽样将分成不同子总体(或称为层)的总体中,按规定的比例从不同层中随机抽取样品(个体)的方法。

这种方法的优点是,样本的代表性比较好,抽样误差比较小。缺点是抽样手续较简单随机抽样还要繁杂些。

R语言sampling包的sampling::strata()可以实现

其命令为:

strata(data, stratanames=NULL, size, method=c(“srswor”,“srswr”,“poisson”,“systematic”), pik,description=FALSE)

其中,x为样本数据, stratanames为分层抽样要使用的变量,size为各层抽取个数,method指的是抽样方法,“srswor”、“srswr”、“poisson”、"systematic"分别指不重置简单抽样、重置简单抽样、泊松抽样、系统抽样,pik指的是各数据包含在样本中的概率,description默认为FALSE,若设置为TRUE则输出样本个数和总体个数。返回值ID_unit(被选单元的标志符)、Stratum(单元层)、Prob(包含单元的概率)

> library(sampling)
> x<-strata(c("Species"),size=c(2,3,4),method="srswor",data=iris)
> x
       Species ID_unit Prob Stratum
11      setosa      11 0.04       1
21      setosa      21 0.04       1
68  versicolor      68 0.06       2
83  versicolor      83 0.06       2
98  versicolor      98 0.06       2
102  virginica     102 0.08       3
103  virginica     103 0.08       3
111  virginica     111 0.08       3
112  virginica     112 0.08       3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言—随机抽样 的相关文章

  • Navicat for MySQL客户端启动报missing required library libmysq_e.dll126 错误

    Navicat for MySQL客户端启动报missing required library libmysq e dll126 错误 是因为缺少libmysq e dll 文件所致 下载libmysq e dll 文件拷贝到到Navica
  • Stata输出统计结果到Excel或word

    目录 一 安装外部包 二 相关命令 三 实例 1 描述性统计结果输出 2 相关性结果输入 3 回归结果输出 1 单模型结果 2 多模型结果 参考 一 安装外部包 在Stata内安装外部包 estout和logout ssc install
  • R语言基本函数的学习(持续更新)

    目录 前言 Tidyverse包 arrange 函数 head 函数 filter 函数 select 函数
  • 【生信原理】初探芯片表达谱分析

    初探芯片表达谱分析 文章目录 初探芯片表达谱分析 实验目的 实验内容 实验题目 实验过程 数据的获取 解压与读取 数据预处理 背景纠正 标准化和探针信号汇总等 数据过滤 探针过滤 探针注释 添加基因注释信息 limma差异分析 差异表达基因
  • R语言 数据处理(一)

    数据合并 提取及降维处理 install packages dplyr 数据处理包dplyr library dplyr name1 lt c Bob Mary Jane Kim name2 lt c Bob Mary Kim Jane w
  • r语言写九九乘法表并保存为txt文件

    r语言写九九乘法表并保存为txt文件 代码 for i in 1 9 for j in 1 i cat j x i i j t file 九九乘法表 txt append TRUE cat n file 九九乘法表 txt append T
  • R语言 Scale函数

    在我们做数据的时候 一个数据会有很多特征 比如在描述影响房价的因素 有房子面积 房间数量等 而不同的特征存在不同的量纲 为了消除量纲 数值差异等 我们就需要对数据进行中心化和标准化 那什么是中心化 什么是标准化呢 所谓中心化就是将数据减去均
  • 三句话,我让R语言自动升级了

    R语言是为数学研究工作者设计的一种数学编程语言 主要用于统计分析 绘图 数据挖掘 跟所有计算机语言一样 R语言也面临升级的问题 本文讲述了最快捷的升级R语言办法 不用重新安装之前的安装包 首先 进入R交互模式 然后三条命令搞定 instal
  • 802.11K/V/R协议介绍

    802 11K V R协议介绍 1 传统无线漫游介绍 1 1 什么是无线漫游 一台无线终端备 STA 通过连接Wi Fi获取上网体验 Wi Fi名称 又称为SSID 是由无线接入网 AP 提供的 因为一台AP设备的覆盖范围有限 所以无线网络
  • 数据挖掘实验(四):决策树归纳 R语言

    一 实验目的 决策树分类算法 decision tree 通过树状结构对具有某特征属性的样本进行分类 其典型算法包括ID3算法 C4 5算法 C5 0算法 CART算法等 本次实验掌握用ID3的信息增益来实现决策树归纳 二 实验软件 Rst
  • R语言基础——缺失数据

    R语言基础 缺失数据 缺失数据的分类 统计学家通常将缺失数据分为三类 它们都用概率术语进行描述 但思想都非常直观 我们将用sleep研究中对做梦时长的测量 有12个动物有缺失值 来依次阐述三种类型 1 完全随机缺失 若某变量的缺失数据与其他
  • 使用R语言进行数据对象获取的mget函数实战

    使用R语言进行数据对象获取的mget函数实战 在R语言中 我们经常需要获取由多个数据对象组成的列表 为了高效地获取这些对象 R提供了一个非常方便的函数 即mget函数 mget函数可以根据给定的对象名称 在当前环境中查找并返回相应的数据对象
  • R语言应用序列模式挖掘揭示客户购买行为:深度学习与机器学习的视角

    目录 序列模式挖掘 一个简介 使用R进行序列模式挖掘 应用深度学习和机器学习改善购买行为预测
  • R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表 正好可以用于R语言的统计分析学习 为了不泄漏孩子的姓名 就用学号代替了 感兴趣可以下载测试数据进行练习 num class chn math eng phy chem politics
  • R语言中用于计算Rsquare的包rsq

    文章目录 理论介绍 线性模型情形 广义线性模型情形 函数介绍 rsq 的介绍 实例 rsq partial 的介绍 相关文献 pcor 函数介绍 vresidual 函数介绍 实例 理论介绍 线性模型情形 R squared 值范围 0 1
  • R语言 write.xlsx() 写入同一excel,及同一sheet注意

    write xlsx x file sheetName Sheet1 col names TRUE row names TRUE append FALSE showNA TRUE 1 想要将data1写da xlsx的sheet1 data
  • R数据科学-第九章使用lubridate处理日期和时间

    本章将会使用以下三个包 gt library tidyverse gt library lubridate gt library nycflights13 一 创建日期或时间 表示日期或时间的数据有三种 日期 在tibble中显示为date
  • 计算机科学丛书(2014-2018.Q1)

    ISBN 名称 作者 出版时间 978 7 111 53451 8 数学设计和计算机体系结构 原书第2版 美 戴维 莫尼 哈里斯 莎拉 L 哈里斯著 978 7 111 44075 8 嵌入式计算系统设计原理 美 Marilyn Wolf著
  • R语言中tidyverse基础知识汇总

    tidyverse group by 分组统计 gather 和spread 简单地说 gather 是列转行 而spread 是行转列 请看下面的示例 gt df id class grade 1 1 a 81 2 2 b 82 3 3
  • R语言——基本操作(二)

    目录 一 矩阵与数组 二 列表 三 数据框 四 因子 五 缺失数据 六 字符串 七 日期和时间 参考 一 矩阵与数组 matrix 创建矩阵 nrow 和 ncol 可以省略 但其值必须满足分配条件 否则会报错 只写一个值则自动分配 默认按

随机推荐