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

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

文章目录

  • 一、说明
  • 二、抽样方法
  • 三、简单随机抽样
  • [四、 Stratified Sampling分层抽样](#四、 Stratified Sampling分层抽样)
  • [五、 Cluster Sampling 整群抽样](#五、 Cluster Sampling 整群抽样)
  • [六、Systematic Sampling系统抽样](#六、Systematic Sampling系统抽样)
  • [七、Convenience 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节,我们将介绍点估计,包括估计量的属性,例如无偏性和一致性。我们还将深入研究最大似然估计等方法。

相关推荐
巴依老爷coder2 分钟前
YOLOX的正负样本分配问题
人工智能·yolo·计算机视觉·目标跟踪
没有不重的名么3 分钟前
DETR:End-to-End Object Detection with Transformers
人工智能·目标检测·计算机视觉
goomind4 分钟前
YOLOv8实战无人机视角目标检测
人工智能·yolo·目标检测·计算机视觉·无人机·pyqt5·无人机目标检测
算家云6 分钟前
一键生成唯美动漫图:ComfyUI-tPonynai详细搭建教程
人工智能·aigc·模型搭建·算家云·算力租赁·tponynai·动漫图生成
chenchihwen10 分钟前
大型语言模型LLM - Finetuning vs Prompting
人工智能·语言模型·自然语言处理
cdut_suye10 分钟前
C++11新特性探索:Lambda表达式与函数包装器的实用指南
开发语言·数据库·c++·人工智能·python·机器学习·华为
weixin_5436628612 分钟前
BERT的中文问答系统36-1
人工智能·python·bert
L_cl12 分钟前
NLP 1、人工智能与NLP简介
人工智能·自然语言处理
weixin_4314708614 分钟前
人名分类器(nlp)
人工智能·pytorch·python·深度学习·自然语言处理
Baihai IDP43 分钟前
从 Llama 1 到 3.1:Llama 模型架构演进详解
人工智能·ai·开源·llm·llama