python实现分层抽样
时间: 2023-07-11 16:47:31 浏览: 194
分层抽样是指将总体分成若干个层次,然后从每个层次中分别抽取样本。Python可以通过以下步骤实现分层抽样:
1. 对总体进行分层:将总体按照某个特征进行分层,例如按照年龄、性别等。
2. 确定每个层次的样本大小:根据每个层次的大小和样本比例,计算每个层次的样本大小。
3. 从每个层次中随机抽取样本:使用Python的random模块中的sample函数,从每个层次中随机抽取指定数量的样本。
下面是一个简单的示例代码:
```python
import random
# 假设总体分为两个层次:男性和女性
population = {
'male': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'female': [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
}
# 每个层次的样本比例为0.5
sample_ratio = 0.5
# 计算每个层次的样本大小
sample_sizes = {
layer: int(len(population[layer]) * sample_ratio)
for layer in population.keys()
}
# 从每个层次中随机抽取样本
samples = []
for layer in population.keys():
layer_samples = random.sample(population[layer], sample_sizes[layer])
samples.extend(layer_samples)
print(samples)
```
输出结果为:
```
[8, 9, 5, 4, 17, 16, 13, 11, 19, 20]
```
这个例子中,总体分为两个层次:男性和女性。每个层次的样本比例为0.5,因此每个层次的样本大小分别为5个和5个。最终从每个层次中随机抽取了5个样本,总共抽取了10个样本。
阅读全文