ML 系列:第 36 节 — 统计学中的抽样类型

ML 系列:第 36 天 — 统计学中的抽样类型

文章目录

  • 一、说明
  • 二、抽样方法
  • 三、简单随机抽样
  • 四、 Stratified Sampling分层抽样
  • 五、 Cluster Sampling 整群抽样
  • 六、Systematic Sampling系统抽样
  • 七、Convenience Sampling便利抽样
  • 八、结论

一、说明

统计学中的抽样类型,抽样是统计学中的一个基本概念,涉及从较大的总体中选择个体或观察值的子集来估计整个总体的特征。有效的抽样方法可确保所选子集准确代表总体,减少偏差并提高统计推断的可靠性。

二、抽样方法

以下是一些最重要的抽样方法:

  • Simple Random Sampling 简单随机抽样
  • Stratified Sampling 分层抽样
  • Cluster Sampling 整群抽样
  • Systematic Sampling系统抽样

三、简单随机抽样

简单随机抽样 (SRS) 是一种每个人都有同等被选中机会的方法。此方法可确保样本能够代表总体。
在这里插入图片描述

Python 代码示例:

import numpy as np# Population
population = np.arange(1, 101)  # A population of 100 individuals# Simple Random Sampling
sample_size = 10
simple_random_sample = np.random.choice(population, size=sample_size, replace=False)print("Simple Random Sample:", simple_random_sample)# Simple Random Sample: [ 3 38 97 94 92 76 71 48 89 49]

优点:

  • 最大限度地减少选择偏差。
  • 易于实施和理解。

缺点:

  • 对于非常庞大的人口来说可能不可行。
  • 不能确保子群体按比例代表。

四、 Stratified Sampling分层抽样

分层抽样是将总体划分为具有相似特征的不同子群体或层。然后从每个层抽取样本,抽取比例通常与层相对于总体的大小成正比。

分层抽样步骤:

  1. 确定层:确定定义每个层的特征(例如年龄、性别、收入水平)。
  2. . 划分人口:将人口划分为这些层。
  3. . 层内随机抽样:在每个层内进行简单随机抽样。

在这里插入图片描述
Python 代码示例:

import numpy as np
import pandas as pd# Creating a hypothetical population data with strata
data = {'Stratum': ['A']*50 + ['B']*50,'Value': np.random.randint(1, 100, 100)
}
df = pd.DataFrame(data)# Stratified Sampling
stratified_sample = df.groupby('Stratum', group_keys=False).apply(lambda x: x.sample(frac=0.1))print("Stratified Sample:\n", stratified_sample)

输出:

在这里插入图片描述

优点:

  • 确保所有子群的代表性。
  • 为每个层提供更精确的估计。

缺点:

  • 需要详细了解人口特征。
  • 管理起来可能更复杂、更耗时。

五、 Cluster Sampling 整群抽样

集群抽样通常基于地理或其他自然分组,将人群划分为集群。然后随机选择一个集群样本,并研究所选集群内的所有成员或随机成员样本。

集群抽样步骤:

  1. 定义集群:识别人口中的集群(例如学校、社区)。
  2. 集群的随机选择:使用简单随机抽样来选择要包括的集群。
  3. 集群内抽样:在选定的集群内进行人口普查或随机抽样。
    在这里插入图片描述

Python 代码示例:

import numpy as np
import pandas as pd# Creating a hypothetical population data with clusters
data = {'Cluster': ['A']*5 + ['B']*5 + ['C']*5 + ['D']*5,'Value': np.random.randint(1, 20, 20)
}
df = pd.DataFrame(data)# Cluster Sampling
clusters = df['Cluster'].unique()
chosen_clusters = np.random.choice(clusters, size=2, replace=False)
cluster_sample = df[df['Cluster'].isin(chosen_clusters)]print("Cluster Sample:\n", cluster_sample)

输出:

在这里插入图片描述

优点:

  • 对于地理位置分散的人群来说,具有成本效益并且实用。
  • 减少旅行和管理成本。

缺点:

  • 与 SRS 和分层抽样相比,抽样误差更高。
  • 如果集群是异构的,则代表性较低。

六、Systematic Sampling系统抽样

系统抽样涉及在随机起点后选择群体中的每 k 个成员。当群体按逻辑顺序排列或有完整列表时,此方法很有用。

系统抽样步骤:

  1. 确定抽样间隔 (k):通过将总体大小除以所需样本大小来计算 k。
  2. 随机开始:在 1 和 k 之间选择一个随机起点。
  3. 选择样本:选择起点之后的每第 k 个个体。

在这里插入图片描述

Python 代码示例:

import numpy as np# Population
population = np.arange(1, 101)# Systematic Sampling
sample_size = 10
k = len(population) // sample_size
systematic_sample = population[::k]print("Systematic Sample:", systematic_sample)# Systematic Sample: [ 1 11 21 31 41 51 61 71 81 91]

优点:

  • 实施简单、快捷。
  • 确保均匀覆盖人口。

缺点:

  • 如果人群中存在隐藏的模式,则可能会引入偏见。

七、Convenience Sampling便利抽样

便利抽样(也称为可用性抽样)涉及选择最容易接触的个体。这种方法通常用于随机抽样不切实际的探索性研究。

在这里插入图片描述

Python 代码示例:

import numpy as np# Population
population = np.arange(1, 101)# Convenience Sampling
convenience_sample = population[:10]print("Convenience Sample:", convenience_sample)
# Convenience Sample: [ 1  2  3  4  5  6  7  8  9 10]

优点:

  • 管理简便、快捷。
  • 成本效益高。

缺点:

  • 偏见风险高。
  • 结果可能不适用于整个人群。

八、结论

总之,各种抽样技术,如简单随机抽样、分层抽样、整群抽样、系统抽样和便利抽样,提供了根据特定研究需求和实际考虑选择样本的不同方法。每种方法都有自己的优点和局限性,允许研究人员根据研究要求定制抽样方法。

在我们的机器学习之旅中,我们用 Python 代码探索了不同类型的采样。展望第 37节,我们将介绍点估计,包括估计量的属性,例如无偏性和一致性。我们还将深入研究最大似然估计等方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

godot游戏引擎_瓦片集和瓦片地图介绍

在 Godot 中,TileSet 和 TileMap 是用于处理瓦片地图的两个关键概念,它们的作用和用途有明显的区别。以下是两者的详细对比: 1. TileSet(瓦片集) TileSet 是资源,定义瓦片的内容和属性。 特点&#xff1a…

CGMA – Cloth Creation and Simulation for Real-Time

CGMA – 实时布料创建和模拟 Info: 本课程介绍如何将 Marvelous Designer 整合到布料工作流程中以实时创建角色,从软件基础知识到创建逼真和风格化服装的高级技术。本课程将首先介绍软件,通过创建现代、现代的服装,然后深入探讨使…

Springboot组合SpringSecurity安全插件基于密码的验证Demo

Springboot组合SpringSecurity安全插件基于密码的验证Demo!下面的案例&#xff0c;都是基于数据库mysql&#xff0c;用户密码&#xff0c;验证登录的策略demo。 1&#xff1b;引入maven仓库的坐标 <dependency><groupId>org.springframework.boot</groupId>…

最佳实践:如何在 Vue.js 项目中使用 Jest 进行单元测试

前言 随着应用程序规模和复杂性的增加&#xff0c;保证代码质量和稳定性变得愈发重要。单元测试作为软件测试的一部分&#xff0c;能够有效地捕捉代码中的错误&#xff0c;防止在开发过程中引入新的 Bug。在众多测试框架中&#xff0c;Jest 因其易用性、强大功能以及与 Vue.js…

从Full-Text Search全文检索到RAG检索增强

从Full-Text Search全文检索到RAG检索增强 时光飞逝&#xff0c;转眼间六年过去了&#xff0c;六年前铁蛋优化单表千万级数据查询性能的场景依然历历在目&#xff0c;铁蛋也从最开始做CRUD转行去了大数据平台开发&#xff0c;混迹包装开源的业务&#xff0c;机缘巧合下做了实时…

单片机学习笔记 8. 矩阵键盘按键检测

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘 目录 0、实现的…

使用 Django 构建支持 Kubernetes API 测试连接的 POST 接口

文章目录 使用 Django 构建支持 Kubernetes API 测试连接的 POST 接口功能需求使用 kubectl 获取 Token命令解析输出示例 完整代码实现Kubernetes API 客户端类功能说明 Django 接口视图关键点解析 路由配置 接口测试请求示例响应结果成功错误 优化建议1. 安全性2. 错误处理3. …

【AI日记】24.11.26 聚焦 kaggle 比赛

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 核心工作 1 内容&#xff1a;研究 kaggle 比赛时间&#xff1a;3 小时 核心工作 2 内容&#xff1a;学习 kaggle 比赛 Titanic - Machine Learning from Disaster时间&#xff1a;4 小时备注&#xff1a;这…

排序算法2

排序算法1-CSDN博客 排序算法1中提及的是较为基础(暴力实现&#xff0c;复杂度较高)的排序算法&#xff0c;不适合于数据量较大的场景&#xff0c;比如序列长度达到1e5 接下来以蓝桥另一道题目来理解其它的排序算法 蓝桥3226 蓝桥账户中心 样例 5 1 5 9 3 7 4、快速排序 快速排…

【数据结构实战篇】用C语言实现你的私有队列

&#x1f3dd;️专栏&#xff1a;【数据结构实战篇】 &#x1f305;主页&#xff1a;f狐o狸x 在前面的文章中我们用C语言实现了栈的数据结构&#xff0c;本期内容我们将实现队列的数据结构 一、队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端…

macos 14.0 Monoma 修改顶部菜单栏颜色

macos 14.0 设置暗色后顶部菜单栏还维持浅色&#xff0c;与整体不协调。 修改方式如下&#xff1a;

长三角文博会:Adobe国际认证体系推动设计人才评价新标准

2024年11月22日&#xff0c;由上海、江苏、浙江、安徽三省一市党委宣传部共同发起的第五届长三角文化博览会&#xff08;简称“长三角文博会”&#xff09;在上海国家会展中心盛大启幕。长三角文博会自2018年起已成功举办多届&#xff0c;已成为展示区域文化产业发展成果、推动…

安装数据库客户端工具

如果没有勾选下面的&#xff0c;可以运行下面的两个命令 红框为自带数据库 新建数据库 右键运行mysql文件&#xff0c;找到数据库&#xff0c;并刷新

SQL 复杂查询

目录 复杂查询 一、目的和要求 二、实验内容 &#xff08;1&#xff09;查询出所有水果产品的类别及详情。 查询出编号为“00000001”的消费者用户的姓名及其所下订单。&#xff08;分别采用子查询和连接方式实现&#xff09; 查询出每个订单的消费者姓名及联系方式。 在…

Angular面试题汇总系列一

1. 如何理解Angular Signal Angular Signals is a system that granularly tracks how and where your state is used throughout an application, allowing the framework to optimize rendering updates. 什么是信号 信号是一个值的包装器&#xff0c;可以在该值发生变化时…

ES 和Kibana-v2 带用户登录验证

1. 前言 ElasticSearch、可视化操作工具Kibana。如果你是Linux centos系统的话&#xff0c;下面的指令可以一路CV完成服务的部署。 2. 服务搭建 2.1. 部署ElasticSearch 拉取docker镜像 docker pull elasticsearch:7.17.21 创建挂载卷目录 mkdir /**/es-data -p mkdir /**/…

esp32触发相机

esp32触发相机&#xff0c;测试成功上升沿触发 串口发送命令 up 20000 1 20000 触发 #include <Arduino.h>const int outputPin 12; // 输出引脚 String inputCommand ""; // 串口输入缓冲区// 解析命令参数&#xff0c;例如 "up 10 5" 解析为…

【踩坑】git中文乱码问题

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 背景说明 使用git diff显示中文乱码&#xff0c;如&#xff1a; 修复方法 执行一次&#xff1a; export LESSCHARSETutf-8 如果需要下次登录免输入…

Spring Boot中配置Flink的资源管理

在 Spring Boot 中配置 Flink 的资源管理&#xff0c;需要遵循以下步骤&#xff1a; 添加 Flink 依赖项 在你的 pom.xml 文件中&#xff0c;添加 Flink 和 Flink-connector-kafka 的依赖项。这里以 Flink 1.14 版本为例&#xff1a; <!-- Flink dependencies --><de…

c++学习:json库例子

目录 初始化 解析string字符串并输出 赋值 给json赋值string&#xff0c;char *&#xff0c;QString&#xff0c;bool&#xff0c;int 赋值 将json转为string&#xff0c;char *&#xff0c;QString 删除 嵌套对象和数组的组合与解析 JSON 数组 遍历&#xff0c;添加…