统计推断所指的抽样都是随机抽样,主要包括:简单随机抽样、系统抽样、分层抽样、整群抽样、多阶段抽样等。非随机抽样,如方便抽样、配额抽样、滚雪球抽样等,只对样本负责,并不能用于数理的统计推断。
a). 简单随机抽样
简单随机抽样是指从总体中完全随机地抽取样本单位,确保每一个体被抽中的概率完全相同。该方法作为所有概率抽样方法的理论基础,具有较高的科学性与客观性。以“评估某沿海省份台风灾后居民重建需求”为例,若从省救灾总署获取全省100万受灾户的完整名录,并通过随机数生成器抽取其中5000户作为样本,即构成一次典型的简单随机抽样过程。
该方法具备多方面的优势:首先,统计理论体系完备,抽样误差(如标准误)能够被精确计算;其次,完全随机化的抽取机制有效避免了主观选择带来的偏差;此外,其操作逻辑简单,易于理解与实施。然而,简单随机抽样也存在一定局限性:必须基于完整、准确的抽样框(即包含所有个体的名单),而实践中此类名单往往难以获取或构建成本较高;此外,若总体地理分布广泛,样本点分散将显著增加调查成本;同时,对于总体中占比极少的特定特征群体(如少数民族、特殊需求家庭等),可能因随机性而无法在样本中得到充分代表,影响推断的全面性。
因此,简单随机抽样更适用于以下情形:总体规模不大且具备完整的抽样框;总体内部个体间差异相对较小;具备充足的经费与人力,能够支持对分散样本的实地调查。
b). 系统抽样
系统抽样是指将总体中的所有单位按某一顺序排列,随机确定一个起始点后,每隔固定间隔抽取一个样本单位。该方法本质上是“准随机”抽样,兼具随机性与操作便利性。同样的例子,若将全省100万受灾户按户籍编号排序,随机选取第58户为起点,之后每隔200户抽取一户(即第258户、第458户等),直至抽满预定样本量,即构成系统抽样的典型应用。
该方法具有以下优势:首先,操作流程简单高效,特别适用于大规模样本的快速抽取;其次,样本在总体中分布相对均匀,若排序为随机状态,其效果近似简单随机抽样;此外,对抽样框的完整性要求略低于简单随机抽样,只需具备有序排列的清单即可实施。然而,系统抽样也存在明显局限:若总体排列存在与抽样间隔相关的周期性规律,可能导致系统性偏差,影响样本代表性;此外,其抽样误差的估计较简单随机抽样更为复杂。
因此,系统抽样主要适用于以下情形:总体单位可按无关变量顺序排列,且不存在明显周期模式;需在较短时间内完成大样本抽取;适用于连续编号或自然排序的总体结构。
c). 分层抽样
分层抽样是先将总体按某种与研究目标相关的特征划分为若干互斥的“层”,再在各层内独立进行随机抽样。该方法强调“层内同质、层间异质”,旨在提升抽样精度与子群代表性。同样的例子,若先依据受灾程度将居民划分为“重灾”“中灾”“轻灾”三层,再按各层比例分别随机抽取样本,即为典型的分层抽样过程。
该方法具备显著优势:首先,能有效提高估计精度,降低抽样误差;其次,确保各类子群体(如不同受灾等级家庭)在样本中均有充分代表;此外,允许在不同层采用差异化抽样策略,增强调查灵活性。然而,分层抽样也存在相应局限:必须事先掌握可用于有效分层的辅助变量信息,否则分层效果将大打折扣;抽样设计与数据分析较简单随机抽样更为复杂。
因此,分层抽样特别适用于以下情形:总体由内部差异显著的子群构成,且分层边界清晰;研究目标包含子群比较或需保障少数群体的代表性;具备可靠的分层依据与足够的样本容量支持层内抽样。
d). 整群抽样
整群抽样是先将总体划分为若干自然的“群”,以群为抽样单位随机抽取部分群,再对中选群内的所有单位进行全面调查。该方法的核心在于“以群代个”,侧重抽样效率与成本控制。同样的例子,若从全省2000个行政村中随机抽取50个村,并对这些村中的所有受灾户进行全面调查,即为整群抽样的典型应用。
该方法具有独特优势:首先,能大幅降低调查成本与时间,特别适合大规模地理分散的总体;其次,在缺乏个体抽样框仅具备群级名单时,此法具有不可替代性;此外,实施过程中组织管理更为集中便利。然而,整群抽样的缺点同样突出:由于群内个体通常具有同质性,导致抽样效率较低,估计精度通常不如简单随机抽样;误差计算也相对复杂。
因此,整群抽样主要适用于以下情形:调查成本受限且总体自然形成边界清晰的群组;群间差异较小,而群内差异较大;适用于以群体为基本单位的研究场景。
e). 多阶段抽样
多阶段抽样是将抽样过程分为两个及以上阶段进行,先在总体中抽取大单位,再在中选单位中逐级抽取更小单位,直至最终样本。该方法本质是整群抽样的扩展与优化,适用于超大规模调查。同样的例子,可先随机抽取4个地市,再在抽中地市内各抽3个区县,接着在区县内抽取5个社区,最后在社区内随机抽取若干住户,即构成一个四阶段抽样设计。
该方法的优势在于:首先,能够有效平衡调查成本与数据精度,在大规模调查中实现可行性与科学性的统一;其次,具备高度灵活性,可在不同阶段组合使用多种抽样方法;此外,特别适合具有多级行政或地理层级的总体结构。然而,多阶段抽样的局限也十分明显:抽样设计最为复杂,需综合考虑各阶段抽样方法及其交互影响;抽样误差的计算涉及多个层次,技术要求较高。
因此,多阶段抽样最适合以下情形:总体规模极大、分布范围广泛,难以实施单阶段抽样;调查资源有限,需在成本与精度间寻求最优解;总体具备自然或行政分级结构,便于实施多级抽样。
尽管有很多抽样方法,但需要说明的是,教科书提及的抽样分布理论是基于简单随机抽样的。当我们使用其它抽样方法的时候,样本统计量及其抽样分布可能会变。比如,分层抽样下的均值分布形态依然近似正态,但其方差显著减小。整群抽样下,由于群内个体的相似性,均值的波动性比简单随机抽样时更大。阶段抽样下的均值分布最为复杂,其方差是各阶段方差贡献的叠加。我们是在简单随机抽样的基础上,对理论进行探讨。而具体的工作中,则需要对比简单随机抽样,对不同的抽样方法,采取不同的修正措施。
在抽样调查中,我们从研究的总体中抽取一个包含若干个个体(即样本点)的样本。为了推断总体的未知特征,需要从样本中提取有代表性的概括性信息或指标,这些由样本数据计算出的指标,便称为样本统计量。
例如,样本均值\(\bar{x}\)是用于推断总体均值\(\mu\)统计量;样本方差\(s^2\)是用于推断总体方差\(\sigma^2\)的统计量;样本比例\(\hat{p}\)用于推断总体比例\(p\)的统计量等。样本统计量是样本的函数,由于样本是随机抽取的,因此样本统计量本身也是一个随机变量,其取值会随抽取样本的不同而变化。
样本统计量作为随机变量,其所有可能取值及其出现的相应概率,便构成了抽样分布。换言之,抽样分布描述的是,从同一总体中,使用同一抽样方法反复抽取相同容量的所有可能样本,其某个特定统计量(如均值、方差)的分布规律。
理解抽样分布是统计推断的基石。正是基于抽样分布的理论,我们才能对样本统计量与总体参数之间的误差进行量化(如计算标准误),并构建置信区间或进行假设检验。
例7-1:
用R语言展示均匀总体样本均值的抽样分布。
library(ggplot2)
library(patchwork)
set.seed(2026)
n_per_sample <- 30 # 每次抽样抽取30个个体
sim_counts <- c(5, 50, 500, 5000) # 四个阶段的模拟次数
# 总体参数 (均匀分布 U[0,1])
pop_mean <- 0.5
pop_sd <- sqrt(1/12) # 总体标准差
theoretical_se <- pop_sd / sqrt(n_per_sample) # 样本均值的标准误
# 预先生成最大量级的数据 (5000次抽样),以便后续使用
max_n <- 5000
# 生成矩阵:max_n 行,n_per_sample 列
big_matrix <- matrix(runif(max_n * n_per_sample, 0, 1), nrow = max_n, ncol = n_per_sample)
# 计算所有 5000 次的样本均值
all_means <- rowMeans(big_matrix)
# 3. 定义绘图函数保持风格统一
create_hist_plot <- function(data, title_sub) {
ggplot(data.frame(x = data), aes(x)) +
geom_histogram(aes(y = after_stat(density)),
bins = 30, fill = "steelblue", color = "white", alpha = 0.8) +
# 叠加红色的理论正态曲线
stat_function(fun = dnorm, args = list(mean = pop_mean, sd = theoretical_se),
color = "red", linewidth = 1) +
# 添加参考线
geom_vline(xintercept = pop_mean, linetype = "dashed", color = "darkgreen") +
labs(title = title_sub, x = "样本均值", y = "密度") +
theme_minimal(base_size = 10) +
theme(plot.title = element_text(face = "bold", hjust = 0.5),
panel.grid.minor = element_blank())
}
# 4. 创建各个图
# 总体分布
p_pop <- ggplot(data.frame(x = runif(1000, 0, 1)), aes(x)) +
geom_histogram(aes(y = after_stat(density)), bins = 20,
fill = "orange", color = "white") +
stat_function(fun = dunif, args = list(min = 0, max = 1), color = "red", linewidth = 1) +
labs(title = "总体分布:均匀分布 U[0,1]", x = "数值 X", y = "密度") +
theme_minimal(base_size = 11) +
theme(plot.title = element_text(face = "bold", color = "darkred", hjust = 0.5))
# n=5
p_5 <- create_hist_plot(all_means[1:5], " 抽样5次的样本均值分布")
# n=50
p_50 <- create_hist_plot(all_means[1:50], "抽样50次的样本均值分布")
# n=500
p_500 <- create_hist_plot(all_means[1:500], "抽样500次的样本均值分布")
# n=5000
p_5000 <- create_hist_plot(all_means[1:5000], "抽样5000次的样本均值分布")
# 拼图
bottom_row <- (p_5 | p_50) / (p_500 | p_5000)
final_layout <- p_pop / bottom_row +
plot_layout(heights = c(1, 1.8))
final_layout + plot_annotation(
title = "抽样分布的形成过程",
theme = theme(plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
plot.margin = margin(10, 10, 10, 10))
)
可以看出,样本均值的抽样分布符合某种规律(后面的中心极限定理证明为正态分布)。同样,其它样本统计量也会服从某种特定的分布。接下来我们介绍三个重要的抽样分布:
a). 卡方分布 (Chi-square Distribution)
卡方分布由阿贝(Abbe)于1863年提出,后由海尔墨特(Hermert)和卡·皮尔逊(K·Pearson)分别于1875年和1900年推导完善。卡方分布的定义如下:
若有\(n\)个相互独立且均服从标准正态分布的随机变量\(Z_1, Z_2, ..., Z_n\)(即\(Z_i \sim N(0,1)\)),则它们的平方和所构成的新随机变量服从自由度为\(n\)的卡方分布:
\[ X = \sum_{i=1}^{n} Z_i^2 \sim \chi^2(n) \]
也就是说,标准正态变量平方和的分布就是卡方分布。卡方分布的值始终为正数。其分布形态由自由度\(n\)决定。当自由度\(n\)很小时,分布高度右偏;随着\(nu\)增大,分布逐渐向坐标轴右侧移动(因累加项增多,数值变大),且形态趋于对称,最终趋近于正态分布。
卡方分布的期望是\(E(\chi^2) = n\),方差是\(D(\chi^2) = 2n\)。
卡方分布还有一个重要的性质,可加性:若\(U \sim \chi^2(n_1)\),\(V \sim \chi^2(n_2)\),且\(U\)与\(V\)相互独立,则\(U + V \sim \chi^2(n_1 + n_2)\)。
卡方分布在统计推断中的关键应用是估计总体方差。若从正态总体\(N(\mu, \sigma^2)\)中抽取一个简单随机样本\(X_1, X_2, ..., X_n\),则样本方差\(s^2\)和总体方差\(\sigma^2\)满足以下关系:
\[ \frac{(n-1)s^2}{\sigma^2} \sim \chi^2(n-1) \]
这里的自由度是\(n-1\)而非\(n\),源于用样本均值\(\bar{x}\)估计\(\mu\)时损失了一个自由度(一个独立信息的限制)。可以看出,等式左边,样本方差\(s^2\)和样本量\(n\)是我们可以从数据中计算出来的;总体方差\(\sigma^2\)是未知的。右边的卡方分布为我们提供了这个统计量的理论概率模型。因此,我们可以据此构造对总体方差\(\sigma^2\)的置信区间或进行假设检验。
例7-2:
卡方分布是统计学中最重要的分布之一,请利用R语言:
展示不同自由度n=c(1, 2, 3, 5, 8, 10, 15)下的卡方分布。
并利用模拟方法验证卡方分布的可加性:\(U \sim \chi^2(5)\),\(V \sim \chi^2(10)\),且\(U\)与\(V\)相互独立,则\(U + V \sim \chi^2(15)\)。
library(ggplot2)
library(patchwork)
library(dplyr)
# --- 不同自由度下的卡方分布 ---
df_chisq <- expand.grid(
x = seq(0, 25, 0.1),
df = c(1, 2, 3, 5, 8, 10, 15)
)
df_chisq$density <- apply(df_chisq, 1, function(row) {
dchisq(row["x"], df = row["df"])
})
# 不同自由度下的卡方分布
p_density <- ggplot(df_chisq, aes(x = x, y = density, color = factor(df))) +
geom_line(size = 0.8) +
# 添加对应的均值虚线 (卡方分布均值=自由度)
geom_vline(aes(xintercept = df), data = data.frame(df = unique(df_chisq$df)),
linetype = "dashed", alpha = 0.3) +
labs(title = "卡方分布密度曲线", x = "x 值", y = "概率密度", color = "自由度") +
theme_minimal(base_size = 10) +
theme(legend.position = "right") +
coord_cartesian(ylim = c(0, 0.5))
# --- 验证可加性的模拟实验 ---
set.seed(123) # 保证结果可复现
n_sim <- 10000 # 模拟次数
# 生成两个独立的卡方分布变量
df1 <- 5
x_sim <- rchisq(n_sim, df = df1)
df2 <- 10
y_sim <- rchisq(n_sim, df = df2)
# 令 Z = X + Y
z_sum <- x_sim + y_sim
# 理论预测:Z 应该服从 ChiSq(df1 + df2)
target_df <- df1 + df2
# 可加性验证图:把模拟的 Z 直方图画出来,看看是否吻合 df=15 的红线
p_additivity <- ggplot(data.frame(z = z_sum), aes(x = z)) +
geom_histogram(aes(y = after_stat(density)),
bins = 50, fill = "steelblue", color = "white", alpha = 0.7) +
# 叠加理论曲线:df = 5 + 10 = 15
stat_function(fun = dchisq, args = list(df = target_df),
color = "red", linewidth = 1.2) +
# 添加文本说明
annotate("text", x = 40, y = 0.06, label = paste("红色理论曲线: df =", target_df),
color = "red", fontface = "bold", hjust = 1) +
annotate("text", x = 40, y = 0.05, label = paste("蓝色直方图: chisq(", df1, ") + chisq(", df2, ")"),
color = "darkblue", hjust = 1) +
labs(title = paste("可加性验证:","chisq(", df1, ") + chisq(", df2, ") 的分布 vs chisq(", target_df, ")"),
x = "Z = X + Y 的值",
y = "密度") +
theme_minimal(base_size = 10)
# --- 4. 组合展示 ---
# 并排展示
final_plot <- p_density / p_additivity
final_plot + plot_layout(heights = c(1.2, 1.2)) # 调整高度比例
b). t分布 (t-Distribution, Student‘s t Distribution)
t分布由威廉·戈塞特(W.S. Gosset)于1908年首次提出。当时他在吉尼斯啤酒公司工作,研究内容涉及酵母与啤酒品质,公司禁止员工发表研究成果,故他以“Student”为笔名发表了相关论文,该分布因此常被称为“学生t分布”。其定义为:
设随机变量\(Z \sim N(0, 1)\),\(V \sim \chi^2(n)\),且\(Z\)与\(V\)相互独立,则以下统计量服从自由度为\(n\)的t 分布:
\[ T = \frac{Z}{\sqrt{V / n}} \sim t(n) \]
自由度\(n = n-1\)。也就是说t变量是一个标准正态变量除以一个(处理过的)卡方变量。
t分布以\(t=0\)为中心对称,是单峰钟形曲线。当自由度\(n=1\)时,t分布退化为柯西分布(方差不存在)。与标准正态分布相比,t分布的峰更低、尾部更厚。这更好地量化了用样本标准差\(s\)替代未知总体标准差\(\sigma\)所带来的额外不确定性。随着自由度\(n\)增大,t分布快速趋近于标准正态分布\(N(0,1)\)。当\(n \ge 30\)时,两者已极为接近,这也是统计学中常将\(n \ge 30\)视为“大样本”并使用正态近似的一个重要依据。
t分布在现代统计学中占有举足轻重的地位,其核心价值在于:当总体方差\(\sigma^2\)未知,且样本量较小(无法保证中心极限定理的近似精度)时,为总体均值\(\mu\)的推断提供了精确的抽样分布。
若从正态总体\(N(\mu, \sigma^2)\)中抽取一个简单随机小样本\(X_1, X_2, ..., X_n\),则样本均值\(\bar{x}\)和总体均值\(\mu\)满足以下关系:
\[ t = \frac{\bar{x} - \mu}{s / \sqrt{n}} \sim t(n-1) \]
我们能用样本计算统计量\(t\)的值(包含\(\bar{x}\),\(s\),\(n\)和假设的\(\mu\)),而它的分布服从自由度为\(n-1\)的 t 分布。据此,我们可以对总体均值\(\mu\)进行区间估计或假设检验。
例7-3:
t 分布常用于总体标准差未知的小样本统计推断。理论上,当样本量(自由度)趋近于无穷大时,t 分布收敛于标准正态分布。但在小样本下,t 分布具有更“厚”的尾部,这意味着极端值出现的概率更大。利用R语言:
展示和不同自由度的t分布。
对比t分布和标准正态分布的尾部特征。
# 创建数据 - 对比t分布与标准正态分布
df_t_normal <- expand.grid(
x = seq(-4, 4, 0.05),
df = c(1, 2, 5, 10, 30)
)
# 计算t分布密度
df_t_normal$density <- apply(df_t_normal, 1, function(row) {
dt(row["x"], df = row["df"])
})
# 添加标准正态分布
df_normal <- data.frame(
x = seq(-4, 4, 0.05),
density = dnorm(seq(-4, 4, 0.05)),
df = "Normal(0,1)"
)
# 合并数据
df_t_all <- rbind(
mutate(df_t_normal, Distribution = paste("t(df=", df, ")", sep = "")),
mutate(df_normal, Distribution = "标准正态分布", df = "∞")
)
# 创建t分布与正态分布对比图
ggplot(df_t_all, aes(x = x, y = density, color = Distribution,
linetype = Distribution)) +
geom_line(size = 1.2) +
labs( subtitle = "随着自由度增加,t分布趋于标准正态分布",
x = "t",
y = "密度") +
theme_minimal(base_size = 12) +
theme(legend.position = "right"
) +
scale_color_manual(values = c("t(df=1)" = "red",
"t(df=2)" = "blue",
"t(df=5)" = "green",
"t(df=10)" = "purple",
"t(df=30)" = "orange",
"标准正态分布" = "black")) +
scale_linetype_manual(values = c("t(df=1)" = "solid",
"t(df=2)" = "solid",
"t(df=5)" = "solid",
"t(df=10)" = "solid",
"t(df=30)" = "solid",
"标准正态分布" = "dashed"))
c). F分布 (F Distribution)
F分布由著名统计学家罗纳德·费希尔(R.A. Fisher)提出,以其姓氏的首字母命名。定义如下:
设随机变量\(U \sim \chi^2(n_1)\),\(V \sim \chi^2(n_2)\),且\(U\)与\(V\)相互独立。则以下统计量服从自由度为\((n_1, n_2)\)的 F 分布:
\[ F = \frac{U / n_1}{V / n_2} \sim F(n_1, n_2) \]
其中\(n_1\)称为分子自由度,\(n_2\)称为分母自由度。可以看出,F变量是两个独立的(经自由度调整的)卡方变量之比。
F分布取值始终为正(方差比为正),是一个右偏分布。其具体形状由分子自由度\(n_1\)和分母自由度\(n_2\)共同决定。它们影响分布的偏度、峰度。
F分布在统计推断中的关键应用在于估计两个总体的方差比:
设两个独立的正态总体\(N(\mu_1, \sigma_1^2)\)和\(N(\mu_2, \sigma_2^2)\),分别抽取样本量为\(n_1\)和\(n_2\)的样本。若要比较两总体方差\(\sigma_1^2\)与\(\sigma_2^2\),可构造统计量:
\[ F = \frac{s_1^2 / \sigma_1^2}{s_2^2 / \sigma_2^2} \]
通过计算样本方差比并参照F分布,我们可以估计两个总体的方差比。这是后面方差分析(ANOVA)的理论基础。
例7-4:
F分布广泛应用于方差分析和回归分析中,其形态由两个自由度参数决定:分子自由度(\(df_1\))和分母自由度(\(df_2\))。理论表明,这两个参数的变化会显著改变分布的偏斜程度和峰值位置。利用R语言绘制不同自由度组合的F分布概率密度函数,观察其分布变化。
library(ggplot2)
# 创建不同自由度组合的F分布数据
df_f <- expand.grid(
x = seq(0, 5, 0.05),
df1 = c(1, 5, 10),
df2 = c(1, 15, 30) # 分母自由度
)
# 计算F分布密度
df_f$density <- apply(df_f, 1, function(row) {
df(row["x"], df1 = row["df1"], df2 = row["df2"])
})
# 3. 创建标签列用于图例
df_f$label <- factor(
paste("F(", df_f$df1, ",", df_f$df2, ")", sep = ""),
levels = c("F(1,1)", "F(1,15)", "F(1,30)",
"F(5,1)", "F(5,15)", "F(5,30)",
"F(10,1)", "F(10,15)", "F(10,30)")
)
# 绘图
ggplot(df_f, aes(x = x, y = density, color = label)) +
geom_line(size = 1) +
# 5. 使用高对比度颜色
scale_color_manual(
name = "自由度组合",
values = c(
"F(1,1)" = "red", # 极高偏度
"F(1,15)" = "blue", # 高峰厚尾
"F(1,30)" = "green", # 开始正态化
"F(5,1)" = "purple", # 分母自由度小,极度右偏
"F(5,15)" = "orange", # 中间态
"F(5,30)" = "cyan", # 接近正态
"F(10,1)" = "magenta", # 聚集在左侧
"F(10,15)" = "darkred", # 较为平缓
"F(10,30)" = "navy" # 最接近正态分布
)
) +
labs(subtitle = "不同自由度组合下的F分布",
x = "F 值",
y = "概率密度",
color = "自由度") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", size = 16),
plot.subtitle = element_text(size = 12),
legend.position = "right",
# 稍微调大图例文字,方便看清
legend.text = element_text(size = 10)
) +
xlim(0, 5)
前面介绍了抽样和抽样分布。那么这些样本统计量,为什么服从这样的抽样分布呢?这就需要理解大数定律与中心极限定理了。它们是连接概率论与统计学的桥梁,为用样本推断总体提供了理论基础。统计学里面有很多统计量:样本均值、样本方差、样本比例等。而大数定律与中心极限定理只是关于样本均值的定理。但是由于几乎所有的统计量都与均值相关或者可以看成某种均值,因此,这两个定理成了整个统计推断的理论基础。
在讨论定理之前,我们首先介绍两个重要的概率不等式。它们不仅各有用处,也为后续定理的证明提供了关键工具。
a) 马尔可夫不等式
马尔可夫不等式的定义如下:
设\(X\)是一个非负随机变量,且数学期望\(E(X)\)存在。则对任意实数\(t > 0\),有:
\[P(X \geq t) \leq \frac{E(X)}{t}\]
为估计非负随机变量取大值的概率提供了一个上界。这意味着,一个非负随机变量取值超过\(t\)的概率,最多是其均值与\(t\)的比值。这个不等式很有用,我们通过一个例子看一下它的典型应用:
例7-4:
已知某地区月薪\(X\)的均值为\(E(X) = 5000\)元。利用马尔可夫不等式,直接计算该地区月薪超过\(20000\)元的人口比例上限。
# 定义已知变量
E_X <- 5000 # 月薪均值
a <- 20000 # 目标薪资阈值
# 直接计算概率上限
# 公式:P(X >= a) <= E(X) / a
probability_upper_bound <- E_X / a
# 输出结果
{
cat("马尔可夫不等式计算结果:\n")
cat("------------------------------------------------\n")
cat("已知均值 E(X) = ", E_X, " 元\n")
cat("目标阈值 a = ", a, " 元\n")
cat("则月薪超过", a, "元的概率上限为:", probability_upper_bound, "\n")
cat("即理论上人口比例不超过:", probability_upper_bound * 100, "%\n")
}
## 马尔可夫不等式计算结果:
## ------------------------------------------------
## 已知均值 E(X) = 5000 元
## 目标阈值 a = 20000 元
## 则月薪超过 20000 元的概率上限为: 0.25
## 即理论上人口比例不超过: 25 %
根据马尔科夫不等式,我们得出结论:月薪超过20000元的人比例不超过25%。尽管这个上界可能偏大,但在缺乏更多分布信息时,它提供了一个快速的、有理论依据的估计。马尔科夫不等式还可以用来证明切比雪夫不等式。
b) 切比雪夫不等式
在马尔科夫不等式的基础上,切比雪夫不等式利用方差来估计随机变量偏离其期望值的程度。定义为:设随机变量\(X\)的数学期望\(E(X) = \mu\)和方差\(\text{Var}(X) = \sigma^2\)均存在。则对任意实数\(t > 0\),有:
\[ P(|X - \mu| \geq t) \leq \frac{\sigma^2}{t^2} \]
例7-5:
某地区年度台风登陆次数\(X\)的历史数据显示,其均值\(\mu = 2\)次,标准差\(\sigma = 1.5\)次。防灾机构关心的“极端异常”情况是台风登陆次数偏离均值超过 6 次的年份(即\(|X - 2| \geq 6\))。利用切比雪夫不等式计算该地区发生“极端异常”台风(偏离均值超过 6 次)的概率上限。
# 参数设置
mu <- 2 # 均值
sigma <- 1.5 # 标准差
k <- 6 # 偏离均值的距离阈值
# 公式:P(|X - mu| >= k) <= sigma^2 / k^2
prob_upper_bound <- (sigma^2) / (k^2)
{
cat("--- 切比雪夫不等式计算结果 ---\n")
cat("均值 mu =", mu, "\n")
cat("标准差 sigma =", sigma, "\n")
cat("偏离阈值 k =", k, "\n")
cat("偏离均值超过", k, "次的概率上限 P(|X - mu| >=", k, ") <=", prob_upper_bound, "\n")
}
## --- 切比雪夫不等式计算结果 ---
## 均值 mu = 2
## 标准差 sigma = 1.5
## 偏离阈值 k = 6
## 偏离均值超过 6 次的概率上限 P(|X - mu| >= 6 ) <= 0.0625
这意味着,年度台风次数偏离长期平均水平超过6次的概率不超过6.26%。这个上界可以帮助机构对极端情况的发生概率有一个保守的估计,从而规划应急预案和资源储备。
在切比雪夫不等式中,如果我们将参数\(t\)设置为标准差\(\sigma\)的倍数,即令\(t = c\sigma\)(其中\(c > 0\)),代入原始不等式:
\[P(|X - E(X)| \geq k) \leq \frac{\sigma^2}{k^2}\]
便得到该不等式最广为流传的形式:
\[P(|X - E(X)| \geq c\sigma) \leq \frac{1}{c^2}\]
这个表达式揭示了一个极具普适性的结论:无论随机变量\(X\)的具体分布形式如何,只要其期望\(\mu\)和方差\(\sigma^2\)存在,那么它的取值落在均值附近\(c\)倍标准差范围内的概率,至少为\(1 - \frac{1}{c^2}\)。
切比雪夫不等式可由马尔可夫不等式推导得出。令\(Y = (X - \mu)^2\),则\(Y\)为非负随机变量,且\(E(Y) = \sigma^2\)。对\(Y\)应用马尔可夫不等式:
\[ P(Y \geq t^2) \leq \frac{E(Y)}{t^2} = \frac{\sigma^2}{t^2} \]
因为事件\(\{ Y \geq t^2 \}\)等价于事件\(\{ |X - \mu| \geq t \}\),代入上式即得证。
现在,我们可以开始学习大数定律和中心极限定理了。第一个问题就是:为什么大数定律叫定律,中心极限定理叫定理。定律是对一个被反复观察到的、普遍的、基础性的自然模式的描述和确认。它在被严格证明之前,就已经作为一种“经验规律”被科学家所信奉。定理则是一个在数学体系内部,通过逻辑从公理和已知定理严格推导证明出来的结论。大数定律断言了均值必然会收敛于期望,而中心极限定理精确描述了均值收敛时的分布形态。
a) 大数定律
设\(X_1, X_2, \dots, X_n\)是独立同分布 (i.i.d.) 的随机变量序列,且\(E(X_i) = \mu\),\(\text{Var}(X_i) = \sigma^2\)。则对任意\(\epsilon > 0\),有:
\[ \lim_{n \to \infty} P(|\overline{X}_n - \mu| \geq \epsilon) = 0\]
记作:\(\overline{X}_n \xrightarrow{P} \mu\)。
大数定律表明,当试验次数或样本容量足够大时,随机事件的频率(样本均值)会无限接近其概率(总体均值)。这为保险精算(通过大量保单估算平均风险)、民意调查(通过抽样估计总体支持率)等提供了理论支持。举个例子:保险公司希望估计沿海地区因台风造成的年均财产损失\(\mu\)。他们无法获取所有历史数据,但可以抽取\(n\)个年份的损失记录\(X_1, X_2, \dots, X_n\)。根据大数定律,只要记录的年份\(n\)足够多,计算出的样本平均损失\(\overline{X}_n\)将会非常接近真实的年均损失\(\mu\)。这使得保险公司能够基于样本数据,科学地设定保费水平。
大数定律的证明可以利用切比雪夫不等式。令\(Y = \overline{X}_n\),则\(E(Y) = \mu\),\(\text{Var}(Y) = \frac{\sigma^2}{n}\)。对任意\(\epsilon > 0\),有:
\[ P(|\overline{X}_n - \mu| \geq \epsilon) \leq \frac{\text{Var}(\overline{X}_n)}{\epsilon^2} = \frac{\sigma^2}{n\epsilon^2} \]
当\(n \to \infty\)时,不等式右边趋于0,因此左边概率的极限也为0。
例7-6:
假设进行一次抛硬币实验,定义硬币正面朝上为 1,反面朝上为 0。已知该硬币是均匀的,正面朝上的真实概率为\(p=0.5\)。现进行\(n=5000\)次独立的抛掷模拟,请利用 R 语言可视化观测大数定律的现象(即样本均值随试验次数增加收敛于总体均值)。
# 大数定律动态演示
# 模拟抛硬币:正面为1,反面为0,真实概率p=0.5
set.seed(1234)
max_n <- 5000 # 最大模拟次数
p_true <- 0.5 # 真实概率
coin_flips <- rbinom(max_n, 1, p_true) # 模拟抛硬币
# 计算累积均值
cumulative_means <- cumsum(coin_flips) / (1:max_n)
# 创建动态可视化数据
df_lln <- data.frame(n = 1:max_n,
Cumulative_Mean = cumulative_means,
True_Mean = p_true)
ggplot(df_lln, aes(x = n)) +
geom_line(aes(y = Cumulative_Mean, color = "样本均值")) +
geom_hline(aes(yintercept = True_Mean, color = "总体均值"), linetype = "dashed") +
labs(subtitle = "抛硬币实验:随着试验次数增加,样本均值收敛于总体均值",
x = "试验次数 n",
y = "累积平均值",
color = "图例") +
scale_color_manual(values = c("样本均值" = "blue", "总体均值" = "red")) +
theme_minimal() +
scale_x_continuous(breaks = seq(0, max_n, by = 1000)) +
theme(legend.position = "bottom")
b) 中心极限定理
大数定律指出了样本均值收敛于总体均值,但并未描述其分布形态。中心极限定理则揭示了样本均值抽样分布。定理描述如下:设\(X_1, X_2, \dots, X_n\)是独立同分布 (i.i.d.) 的随机变量序列,且\(E(X_i) = \mu\),\(\text{Var}(X_i) = \sigma^2 > 0\)。则样本均值的标准化随机变量依分布收敛于标准正态分布:
\[Z_n = \frac{\overline{X}_n - \mu}{\sigma / \sqrt{n}} \xrightarrow{D} N(0, 1), \quad \text{当 } n \to \infty\]
其中\(\xrightarrow{D}\)表示依分布收敛。等价地,当\(n\)很大时,有近似分布:
\[\overline{X}_n \stackrel{\text{近似}}{\sim} N\left(\mu, \frac{\sigma^2}{n}\right)\]
中心极限定理证明,无论总体分布形态如何(只要均值和方差存在),其样本均值的分布都近似于正态分布。这一方面方便了复杂分布的概率计算。另一方面也大地简化了统计推断问题,允许我们使用正态分布的性质来构造置信区间、进行假设检验等。
例7-7:
我们举一个典型的非正态分布例子:指数分布。这种分布常用于描述等待时间,具有明显的“右偏”(长尾巴)特征,与钟形曲线截然不同。
假设随机变量\(X\)服从参数\(\lambda = 1/3.5\)的指数分布。
如果我们进行\(n\)次抽样,记录每次的数值,然后计算这\(n\)次抽样的平均值\(\overline{X}_n\)。当\(n\)从小到大变化时,这个“平均值”的分布会是什么样子?
根据中心极限定理,当\(n\)足够大时,样本均值\(\overline{X}_n\)应该近似服从:
\[\overline{X}_n \sim N\left(3.5, \frac{12.25}{n}\right)\] 利用R语言进行验证。
library(ggplot2)
library(patchwork)
# --- 参数设置与数据模拟 ---
set.seed(2026)
sample_sizes <- c(1, 2, 5, 10, 30, 100)
n_sim <- 100
# 设定总体均值
mu_theory <- 3.5
sigma2_theory <- mu_theory^2
rate_lambda <- 1 / mu_theory
# 模拟函数:生成 n_sim 次抽样,每次抽 n 个,计算均值
simulate_sample_means <- function(n, n_sim, rate) {
all_rolls <- rexp(n * n_sim, rate = rate)
rolls_matrix <- matrix(all_rolls, nrow = n_sim, ncol = n)
rowMeans(rolls_matrix)
}
# 生成模拟数据
sim_results <- list()
for (i in seq_along(sample_sizes)) {
n <- sample_sizes[i]
sim_results[[i]] <- simulate_sample_means(n, n_sim, rate_lambda)
}
# --- 2. 总体分布(指数分布) ---
# 绘制概率密度函数曲线
x_range_pop <- seq(0, 15, length.out = 200)
df_population <- data.frame(x = x_range_pop,
prob = dexp(x_range_pop, rate = rate_lambda))
p_population <- ggplot(df_population, aes(x = x, y = prob)) +
geom_line(color = "navy", linewidth = 1) +
geom_area(fill = "skyblue", alpha = 0.4) +
labs(subtitle = paste0("总体分布Exp(λ=1/3.5):","μ=", mu_theory,",σ²=", sigma2_theory),
x = "数值", y = "概率密度") +
xlim(0, 12) +
coord_cartesian(ylim = c(0, 0.3)) +
theme_minimal() +
theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5))
# --- 绘制样本分布图 ---
sample_plots <- list()
for (i in seq_along(sample_sizes)) {
n <- sample_sizes[i]
means <- sim_results[[i]]
df_clt <- data.frame(SampleMean = means)
# 理论计算:样本均值的方差 = 总体方差 / n
var_theory_n <- sigma2_theory / n
sd_theory_n <- sqrt(var_theory_n)
x_range_n <- seq(0, 12, length.out = 200)
normal_curve <- data.frame(x = x_range_n,
y = dnorm(x_range_n, mean = mu_theory, sd = sd_theory_n))
plot_title <- paste("x_bar=", round(mean(means), 2),
",s2 = ", round(var(means), 2),
"\n", "(n = ", n, ")")
p <- ggplot(df_clt, aes(x = SampleMean)) +
geom_histogram(aes(y = ..density..), bins = 20, fill = "lightgreen",
color = "darkgreen", alpha = 0.7) +
# 叠加理论正态曲线
geom_line(data = normal_curve, aes(x = x, y = y), color = "red", linewidth = 1) +
labs(
title = plot_title,
x = "样本均值",
y = ""
) +
xlim(0, 7.5) +
ylim(0, 1.2) +
theme_minimal() +
theme(plot.title = element_text(size = 9, hjust = 0.5))
sample_plots[[i]] <- p
}
# --- 4. 组合图表 ---
row_1 <- p_population
row_2 <- sample_plots[[1]] + sample_plots[[2]] + sample_plots[[3]]
row_3 <- sample_plots[[4]] + sample_plots[[5]] + sample_plots[[6]]
final_plot <- row_1 / row_2 / row_3
final_plot <- final_plot +
plot_annotation(
title = "中心极限定理:从指数分布到正态分布",
theme = theme(plot.title = element_text(size = 14, face = "bold", hjust = 0.5))
)
# 显示图像
final_plot
注意比较例7-1和本例的图像。前者表达固定样本量,不断抽样的样本分布形成过程。而本例表达的是,随着样本容量增大,样本均值趋近于总体均值的中心极限定理。