使用python实现随机抽样、分层抽样、系统抽样
时间: 2024-09-10 19:17:17 浏览: 78
在Python中实现随机抽样、分层抽样和系统抽样可以通过`random`、`numpy`等模块来完成。下面是分别介绍这三种抽样方法的实现方式:
1. 随机抽样:
随机抽样指的是从总体中随机选择样本,每个样本被选中的概率相同。在Python中,可以使用`random`模块的`random()`函数或`numpy`库的`numpy.random.choice()`函数来实现。
```python
import random
# 假设有一个总体样本列表
population = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 随机抽样,抽取3个样本
samples = random.sample(population, 3)
print(samples)
```
2. 分层抽样:
分层抽样是在总体中按照某些特征将总体分成若干个互不相交的子集(层),然后从每一层中随机抽取样本。分层抽样能够确保每个层中的特征在样本中得到反映。
```python
import numpy as np
# 假设总体数据和分层标签如下
data = {'group1': [1, 2, 3, 4], 'group2': [5, 6], 'group3': [7, 8, 9, 10]}
strata = ['group1', 'group2', 'group3']
# 从每层中抽取一个样本
strata_samples = {key: np.random.choice(value, 1)[0] for key, value in data.items()}
print(strata_samples)
```
3. 系统抽样:
系统抽样是从总体中按照固定的间隔(系统间隔)抽取样本,首先随机确定起点,然后按间隔选取后续样本。
```python
import numpy as np
# 假设有一个总体样本列表和样本间隔
population = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
interval = 3
# 计算样本总数
num_samples = len(population)
# 随机选择起点
start = np.random.randint(0, interval)
# 系统抽样
samples = population[start::interval]
print(samples)
```
阅读全文