用Python模拟直观理解样本均值与方差的无偏性
统计学课本上那些晦涩的公式推导总是让人望而生畏。记得我刚开始学习样本方差时,对为什么要除以n-1而不是n百思不得其解,直到亲手用Python模拟了上千次抽样过程,才真正理解了其中的奥妙。本文将带你用NumPy和Matplotlib,通过代码实验直观感受样本统计量如何逼近总体参数,解开统计学中这个经典谜题。
1. 环境准备与基础概念
在开始实验前,我们需要配置好Python环境并理解几个核心概念。建议使用Jupyter Notebook进行交互式实验,它能即时显示图表结果,非常适合这种探索性学习。
首先安装必要的库:
bash复制pip install numpy matplotlib
统计学中最基础的两个概念是总体和样本:
- 总体:研究对象的全体,其分布特征是固定但通常未知的
- 样本:从总体中随机抽取的部分观察值,是我们实际能获得的数据
假设我们研究的是全国成年男性的身高,那么:
- 总体:所有中国成年男性的身高集合
- 样本:随机调查的1000名男性的身高数据
在代码中,我们可以用NumPy生成模拟总体。比如假设身高服从正态分布N(175, 7²):
python复制import numpy as np
import matplotlib.pyplot as plt
# 设置随机种子保证结果可复现
np.random.seed(42)
# 生成总体数据(理论上无限大,这里用100万模拟)
population = np.random.normal(loc=175, scale=7, size=1_000_000)
关键统计量包括:
- 总体均值(μ):所有个体的平均值
- 总体方差(σ²):各数据与均值差的平方的平均
- 样本均值(X̄):样本数据的平均值
- 样本方差(S²):样本数据与样本均值差的平方和/(n-1)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 样本均值的无偏性验证
让我们通过实验验证样本均值确实是总体均值的无偏估计。无偏性意味着如果我们重复抽样多次,样本统计量的期望值等于总体参数值。
2.1 单次抽样实验
先从总体中抽取一个样本量为30的样本:
python复制sample_size = 30
sample = np.random.choice(population, size=sample_size, replace=True)
sample_mean = np.mean(sample)
print(f"样本均值: {sample_mean:.2f}, 总体均值: 175.00")
运行结果可能显示:
code复制样本均值: 174.89, 总体均值: 175.00
单次抽样的样本均值接近但不等于总体均值,这是正常的抽样波动。
2.2 重复抽样实验
更有说服力的
