Class 2 - Resampling Methods

1. 引言

1.1. 统计推断的核心挑战:估计总体参数的性质(如方差、置信区间)

在现实世界中,我们几乎永远无法得到“总体”的全部数据。比如,你想知道你开发的App所有用户的平均使用时长,你不可能拿到每一个用户的数据。你只能随机抽取一部分用户(比如1000个)作为样本 (sample)

我们相信,我们拿到的这个样本并不是完全随机、毫无规律的,而是从一个更大的、遵循某种概率分布的总体 (population) 中抽取出来的。这个未知的总体分布就是 $F$。我们手里的样本数据,可以看作是这个神秘规律的具体体现。

我们想通过分析手头有限的样本,来推断总体的某个特征,这个特征就被称为参数 (parameter) $θ$。我们无法直接得到 $θ$ ,但我们可以根据样本计算一个估计量 (estimate),记作 $\widehat{\theta}$。这个 $\widehat{\theta}$ 是我们对真实值 $θ$ 的最佳猜测。

我们通过一次抽样得到了一个估计值 $\widehat{\theta}$。但如果当初我们抽样时,恰好抽到了另一批样本,那么算出来的平均值很可能会不一样。为了衡量这个不确定性,我们有两个计量指标:

  • 方差 (Variance):它衡量的是,如果我们反复进行这种抽样,得到的估计值 $\widehat{\theta}$ 会有多大的波动。方差越大,说明我们的单次估计结果不稳定性越高。
  • 置信区间 (Confidence Interval):它提供了一个更直观的范围。例如,一个95%的置信区间意味着,我们有95%的信心认为,真实的总体参数 $θ$ 会落在这个区间内。这比只给出一个孤零零的估计值要有用得多,因为它量化了我们估计的不确定性

所以,我们只有一个样本,却想推断总体的特征 $(θ)$,并评估我们推断结果的可靠性(方差和置信区间)。这在传统统计学中通常需要复杂的数学公式和严格的理论假设。那么,有没有一种更“暴力”、更直观的方法呢?这就是接下来要讲的Bootstrap。

2. Bootstrap

2.1. 核心概念与流程

2.1.1. Bootstrap 的基本原理

Bootstrap的核心思想是:既然我们无法回到真实世界中去反复抽样,那我们就在已有的样本上模拟这个过程

我们承认无法接触到完整的总体数据,所以只能退而求其次,把我们手上这份(希望是无偏的)样本视作是整个总体的缩影 。这个样本的分布、数据的波动性等特征,就是我们能用来推断总体的唯一线索。

2.1.2. 操作步骤:有放回抽样 → 计算统计量 → 重复B次

  • 第一步:计算原始估计值

这是我们的基准。比如,我们手上有1000个用户的数据,我们先计算出这1000个用户的平均使用时长 $\widehat{\theta}$ 。这个值就是我们对“所有用户真实平均时长”的最佳单点猜测。

  • 第二步:进行一次“模拟抽样”

我们定义 $\hat{F}$ 为经验累积分布函数 (Empirical CDF)。简单来说,它就是由样本数据所定义的分布。给每个样本点 $y_i$​ 赋予 $1/n$ 的概率。

从 $\hat{F}$ 中抽样,在实际操作中就等同于从原始数据集中有放回地抽样。这意味着从含有n个数据点的数据池里随机拿一个,记录下来,再把它放回去,接着再随机拿下一个... 重复$n$次。这样得到的新样本(我们称之为“自助样本”)大小仍然是$n$,但其中可能包含重复的原始数据点,也可能缺少某些原始数据点。

最后,用这个新生成的“自助样本”再计算一次我们的统计量,得到一个自助估计值 $\hat{\theta}^*$

  • 第三步:大量重复第二步

一次模拟抽样得到的结果偶然性太大。为了得到稳健的结论,我们需要将第二步的操作重复成百上千次(比如B=1000或5000次),从而获得一个由大量自助估计值组成的集合:$\hat{\theta}^{*1},\hat{\theta}^{*2},...,\hat{\theta}^{*B}$

现在,我们手上有了 $B$ 个自助估计值。这个集合的分布近似于真实抽样分布。通过分析这个分布,我们就可以:

  • 估计方差和标准误 (variance and standard error) :计算这B个值的方差或标准差,就能了解我们最初的估计值 $\widehat{\theta}$ 有多大的不确定性。
  • 估计偏差 (bias) :比较这B个值的均值和我们最初的估计值 $\widehat{\theta}$,可以判断我们的估计方法是否存在系统性的偏差。公式为 $Bias=mean(\hat{\theta}^*)-\hat{\theta}$。
  • 获得置信区间 (confidence interval) :这是最有用的应用之一。通过查看这B个值的分布范围(比如去掉头尾2.5%的值,取中间95%的范围),我们可以构建出一个置信区间,来量化真实参数 $θ$ 可能存在的范围 。

一个具体的例子

假设你的原始样本是5个数据点:{1, 3, 3, 5, 8}

  1. 原始估计: 假设我们关心的是中位数。原始样本的中位数 θ^=3。
  2. 一次自助抽样: 我们从 {1, 3, 3, 5, 8} 中有放回地抽5次,可能得到一个新的自助样本,比如 {8, 3, 1, 3, 1}
  3. 计算自助估计: 这个新样本的中位数是 $\hat{θ}^∗_1$=3。
  4. 再次自助抽样: 再次抽样,可能得到 {5, 8, 8, 3, 5}。这个样本的中位数是 $\hat{θ}^∗_2$=5。
  5. 大量重复: 我们将这个过程重复5000次,会得到5000个中位数。它们中有些是1,有些是3,有些是5,有些是8。
  6. 分析结果: 假设在5000个结果中,95%的值都落在了 [1, 5] 这个区间内。那么 [1, 5] 就是我们对真实总体中位数的一个95%置信区间。

2.1.3. 百分位法 (Percentile Method)

我们通过上一节课讲的Bootstrap流程,得到了大量的(比如B个)自助估计值 $\hat{\theta}^*$ 这些值本身构成了一个新的、经验性的抽样分布

我们定义 $F_{\hat{\theta}^}(t)$ 这个分布的累积分布函数 (CDF)。它的意思是:“在我们所有的自助估计值中,任意抽取一个 $\hat{\theta}^$ ,它的值小于或等于 $t$ 的概率是多少?”。这是一个理论上的定义。

注意,在实践中,我们无法得到理论上完美的CDF。我们手头只有通过计算机模拟出来的 $B$ 个具体的 $\hat{\theta}^$ 因此,我们用一个经验累积分布函数 $\hat{F}_{\hat{\theta}^}(t)$ 来近似它。

这个函数计算起来是简单的,只需要数一数在得到的 $B$ 个自助估计值中,有多少个是小于或等于 $t$ 的,然后再除以总数 $B$ 即可。 $$\widehat{F}{\hat{\theta}^*}(t)\thickapprox\frac{\sum{b=1}^BI(\hat{\theta}^{*b}\leq t)}{B}$$ 这里的 $I(⋅)$ 是一个指示函数 (Indicator Function),当括号里的条件为真时,它的值为1,否则为0。所以分子部分 $\sum_{b=1}^BI(\hat{\theta}^{*b}\leq t)$ 是在做“计数”这个动作。

而一旦我们有了B个自助估计值,我们就可以把它们从小到大排序,然后直接“掐头去尾”来找到置信区间。

分位数/百分位数 (Quantiles/Percentiles) 就是排序后处在特定位置的数值。例如,0.025分位数就是排在2.5%位置的数,0.975分位数就是排在97.5%位置的数。

对于一个95%的置信区间,我们就需要找到这个分布的2.5%和97.5%分位数,由这两个数值构成的区间就是我们想要的置信区间。

2.1.4. Parametric Bootstrap

标准Bootstrap的核心是从数据本身进行有放回的重采样。它不对数据的内在分布做任何假设,认为样本本身就是对总体分布的最佳描述。

参数化Bootstrap的逻辑是,先对数据进行“建模”,然后再从这个“模型”中生成全新的数据。

  • 第一步:估计参数

参数化Bootstrap这一步要求我们先对数据来源的总体分布做一个假设。例如,我们假设这批数据来自一个正态分布(即高斯分布),或者一个泊松分布,或者一个指数分布。

我们可以使用“MLE” (Maximum Likelihood Estimation, 最大似然估计) ,用来根据我们手上的样本数据,找出我们假设的那个分布(比如正态分布)中最可能产生这批数据的参数。

如果我们假设数据服从正态分布 $N(μ,σ^2)$,那么通过MLE计算出来的参数估计值 $\hat{\theta}$ 就是样本均值 $\overline{x}$ 和样本方差 $s^2$。

此时,我们就得到了一个完全具体的分布 $\mathrm{~}F_{\hat{\theta}}$​(比如 $N(\bar{x},s^2)$。这就是我们为数据量身定做的一个数据分布,因为我们用MLE似然了它。

  • 第二步:从“蓝图”中生成新样本

这是与标准Bootstrap最根本的区别。我们不是从原始数据 ${y_1,y_2,...,y_n}$ 中抽样,而是让我们计算机从我们构建好的模型 $\mathrm{~}F_{\hat{\theta}}$​ 中生成一个大小为n的全新样本 ${y_1^,y_2^,...,y_n^*}$ 。

然后,和之前一样,我们在这个新样本上计算我们关心的统计量 $\hat{\theta}^*$ 。

  • 第三步:重复

这一步和标准 Bootstrap 完全一样。我们重复第二步 $B$ 次,得到 $B$ 个自助估计值 $\hat{\theta}^{*1},...,\hat{\theta}^{*B}$ 。有了这个分布,我们就可以像之前一样去计算方差、置信区间等。

为什么要使用参数化Bootstrap?

这是一个典型的权衡 (Trade-off)

  • 优点:当你的假设正确时,效率和精度更高。
    • 如果你的数据确实(或非常近似地)来自于你所假设的分布(比如正态分布),那么参数化Bootstrap通常比标准Bootstrap更有效。
    • 因为它利用了“数据服从某种分布”这一额外信息,相当于对原始数据进行了平滑和规范化,减少了原始样本中随机噪声的影响。尤其是在原始样本量n比较小的情况下,这个优势会更明显,结果会更稳定。
  • 缺点:当你的假设错误时,结果是“精确的错误”。
    • 这是它最大的风险。如果你假设数据是正态分布,但实际上它是一个有两个峰值的双峰分布,那么你基于正态分布模型生成的所有数据都是有偏差的,你的整个推断过程就建立在了一个错误的根基之上。这会导致你得出一个看起来很精确(方差小),但实际上完全错误的结论。这就是所谓的模型设定错误 (Model Misspecification) 的风险。

2.2. 三种不同的Bootstrap

我们设定使用Bootstrap在这样一个情景中:一个标准的线性回归模型 $$y=\beta_0+\beta_1x_1+\beta_2x_2+\epsilon$$ 我们的目标是估计系数 $β_0​,β_1​,β_2$​ 的置信区间,来判断这些系数的稳定性。比如,$β_1$​ 的95%置信区间是否包含0?如果包含0,就说明我们没有足够的信心认为特征 $x_1$​ 对 $y$ 有显著影响。

2.2.1 方法一:非参数化Bootstrap 样本(Resampling Cases)

我们直接将将数据表中的一整行 ${(x_1, x_2, y)}_i$ 作为一个整体进行有放回的重采样 。

这种方法最简单直接。可以想象你有一个包含n个学生信息的Excel表格,每一行是一个学生的ID、平时成绩$(x_1)$、期末考成绩$(x_2)$、以及最终总评$(y)$。随机抽取 $n$ 次,每次抽完后把这位学生的信息“放回”到池子里。这样,你得到一个大小同样为 $n$ 的新表格,但里面有些学生被重复抽到,有些则没被抽到。然后在这个新表格上跑一次回归分析。

这是假设最弱**的一种方法。它仅仅假设每个观测 ${(x, y)}_i$ 对是独立同分布的。它不对回归模型形式的正确性、也不对误差项 $ϵ$ 的分布做任何假设。它认为数据点本身已经包含了 $x$ 和 $y$ 之间所有复杂的关系(包括误差)。

2.2.2 方法二:非参数化Bootstrap 残差 (Resampling Residuals)

首先,在原始数据上进行一次完整的回归分析,得到系数的估计值 $\hat{\beta}_0,\hat{\beta}_1,\hat{\beta}_2$ 。

然后,计算出每个数据点的残差 (residual) $\hat{\epsilon}_i=y_i-(\hat{\beta}_0+\hat{\beta}1x{i1}+\hat{\beta}2x{i2})$ 。这些残差可以看作是模型无法解释的“噪音”或“运气”成分。

将这 $n$ 个残差收集起来,形成一个“残差池”,然后从这个池子里有放回地抽取 $n$ 个残差,得到 $\epsilon_i^*$ 。

保持原始的 $x_{i}$ 不变,通过公式 $y_i^=(\hat{\beta}_0+\hat{\beta}1x{i1}+\hat{\beta}2x{i2})+\epsilon_i^$ 来构建新的 $y_i^∗$​ 值。然后在新的 $(x, y^*)$ 数据集上再次进行回归分析。

这种方法认为学生的平时成绩$(x_1)$和期末考成绩$(x_2)$是固定的,而最终总评$(y)$是由“模型预测部分”和“运气/误差部分”组成的。它做的事情是,把所有人的“运气”(即残差)收集起来,然后随机地重新分配给每个人,看看在这种新的“运气”分配下,回归系数会怎么变。

  • 这种方法的假设比方法一更强。它假设:
  1. 我们设定的线性模型形式是正确的。
  2. 误差项 $ϵ_i​$ 是独立同分布 (i.i.d.) 的。尤其重要的是,它假设误差的方差是恒定的(即同方差性, Homoscedasticity),误差的大小与x的取值无关。

2.2.3. 方法三:参数化Bootstrap (Parametric Bootstrap)

  • 核心操作:
    1. 和方法二类似,先在原始数据上做一次回归,得到系数 $\hat{β}$​ 和误差方差的估计值 $\hat{σ}^2$ 。
    2. 关键区别:我们不是从已有的残差里抽样,而是假设误差服从一个特定的概率分布,通常是均值为0的正态分布 $N(0,\hat{σ}^2)$ 。
    3. 从这个正态分布中生成 $n$ 个全新的、人工的误差项 $ϵ_i^∗$​ 。
    4. 和方法二一样,用 $y_i^=(\hat{\beta}_0+\hat{\beta}1x{i1}+\hat{\beta}2x{i2})+\epsilon_i^$​ 来构建新的 $y_i^∗$​ 。
    5. 在新数据集上再次回归 。
  • 直观理解: 这是在方法二的基础上更进一步。它不满足于仅仅使用现有的“运气”样本,而是试图总结出“运气”的规律(即服从一个方差为 $σ^2$ 的正态分布),然后让计算机根据这个规律去创造全新的“运气”
  • 这是假设最强的方法。它不仅假设线性模型是正确的、误差是独立同分布的,还额外假设了误差服从一个特定的参数分布(比如正态分布)。

3. 置换检验 (Permutation Test)

3.1. 零假设与p值

Bootstrap主要回答:“我的估计有多准?” (量化不确定性,构建置信区间),而 Permutation Test主要回答:“我看到的现象是真的,还是纯属巧合?” (进行显著性检验,计算p值)

假设我们有一组成对的数据,想知道变量 $x$ 和变量 $y$ 之间是否存在真实的关系。这时我们需要一个量化指标来衡量 $x$ 和 $y$ 在我们原始样本中的关联程度。这个指标就是检验统计量 $T$。

$T$ 的选择很灵活,可以是:

  • 两组样本的均值之差 (如果 $x$ 是分组变量)
  • $x$ 和 $y$ 的相关系数 (如果 $x,y$ 都是连续数值)
  • 回归模型的系数

关键点是:T的值越大,代表我们观测到的关联性越强 。

接下来,为了进行置换检验,判断我们观测到的关联性是不是巧合,我们需要构建一个零假设 (Null Hypothesis, $H_0$)。

在这里,零假设$H_0$就是:x和y之间其实毫无关联

那么为了实现这个零假设,方法是:随机打乱 (Permute) 其中一个变量的顺序。这里用一个例子,假设我们把所有病人的康复指标$(y)$写在卡片上,然后把这些卡片彻底洗牌,再随机地发回到“服药组”和“安慰剂组”。这个操作就人为地切断了药物和康复指标之间可能存在的任何真实联系 。

在这个被打乱的数据 $(x^, y^)$ 上,我们再计算一次检验统计量T。因为数据是随机配对的,这次计算出的 $T$ 值就纯粹是由随机性导致的

我们将“洗牌-再计算 $T$ ”这个过程重复上千次,就会得到上千个在“毫无关联”的世界里可能出现的 $T$ 值。这些值构成了一个零分布 (null distribution)

  • 现在,我们手上有两样东西:
    1. 一个在我们真实数据上计算出的检验统计量 $T(x,y)$。
    2. 一个在无数个“纯属巧合” 的世界里计算出的检验统计量构成的分布。
  • $p$ 值的计算: 我们就看一下,我们真实的T值,放到那个“纯属巧合”的分布里,算不算一个极端的值。p值的含义就是:“假如x和y真的没关系,我们能观测到像我们手上这么强的关联性(甚至更强)的概率有多大?

如果 $p$ 值非常小(比如 $p$ < 0.05),就意味着在“纯属巧合”的世界里,我们观测到的现象是极小概率事件。因此,我们就有理由拒绝“纯属巧合”这个假设,从而认为 $x$ 和 $y$ 之间存在显著的关联

  • 注意:置换检验的设计必须和你的研究目的以及零假设保持一致 。比如,在一些复杂的设计中(如考虑时间序列),就不能完全随机地打乱,而要在保持数据结构的前提下进行置换。

3.2. 一个完整的例子:A/B测试

假设一家电商公司设计了两种网页布局A和B(x),想测试哪种布局的用户点击率(y)更高。他们让50个用户访问A,50个用户访问B,得到了100个点击率数据。

  1. 问题: 两种布局的点击率有显著差异吗?
  2. 零假设 H₀: 两种布局没有差异,我们观测到的任何差异都只是抽样带来的巧合。
  3. 检验统计量 T:  $T = mean(点击率_B) - mean(点击率_A)$ 。我们在真实数据上计算出这个差值,比如是  $T_{obs} = 2.1%$ 。
  4. 置换检验:
    • 将100个用户的点击率数据(y)汇集到一起。
    • 彻底打乱这100个数据。
    • 随机地从中抽出50个作为“虚拟A组”,剩下50个作为“虚拟B组”。
    • 计算一次新的检验统计量 $T^* = mean(虚拟B) - mean(虚拟A)$。
  5. 重复与计算p值:
    • 将第4步重复10000次,得到10000个$T^*$值,构成零分布。
    • 数一数在这10000个$T^*$值中,有多少个是大于或等于我们真实观测到的 2.1% 的。
    • 假设有300个。那么p值就是 300 / 10000 = 0.03。
  6. 结论: 因为$p$=0.03 < 0.05,我们拒绝零假设。我们有统计学上的证据表明,B布局的点击率显著高于A布局,这不仅仅是巧合。

4. Efron's Bootstrap

4.1. 严谨数学化

和前文一样,假设我们有我们有 $n$ 个独立同分布的样本点 $Z_1,...,Z_n$ ,那么相关的参数可以看作泛函 (functional)。简单地理解为一个输入为函数(或分布),输出为一个数值的函数 。

比如,均值就是一个泛函。它的输入是整个概率分布 $F$,输出是该分布的均值 $μ=∫zdF$ 。中位数、方差等也都是泛函。我们引入这个概念,是为了让我们能够用一个统一的符号 $T(⋅)$ 来代表我们想计算的任何统计量,使表达更具一般性。

接下来我们定义经验分布 $F_n$: $$F_n=\sum_{i=1}^nw_i\delta_{Z_i}$$ 这里的 $δ_{Z_i​​}$ 是一个“狄拉克 $δ$ 函数”或“点质量函数”,不需要深究其数学细节,只需要知道它的意思是“一个只在数据点 $Z_i​$ 处有值的概率 measure

$w_i$​ 是分配给每个数据点 $Z_i​$ 的权重,且所有权重之和为1 $(∑w_i​=1)$ 。

这个公式定义的 $F_n$​ (经验分布函数),就是给每个原始数据点 Zi​ 赋予一个 $w_i​=1/n$ 的权重。它代表了我们从样本出发对真实分布F的“最佳猜测”。

那么之前在Bootstrap中的“有放回抽样”操作,其结果等价于对原始数据点进行加权。在第 $r$ 次自助抽样中,权重 $w_i^{(r)}$ 代表的是原始数据点 $Z_i$​ 被抽中的次数占总样本数的比例

例如: 样本量 n=5,在一次自助抽样中,如果 $Z_1$​ 被抽中了2次,$Z_2$​ 抽中了0次,$Z_3​$ 抽中了1次,$Z_4$​ 抽中了2次,$Z_5$​ 抽中了0次。那么对应的权重向量就是 $w(r)=(2/5,0/5,1/5,2/5,0/5)$。

所以,自助采样的权重 $w_i^{(r)}$ 只能从集合 ${0,1/n,...,n/n}$ 中取值 。

如果我们关心的统计量是均值,那么在第 $r$ 次自助抽样中,均值的计算就可以直接写成加权平均的形式: $$\hat{Z}^{(r)}=\sum_{i=1}^nw_i^{(r)}Z_i$$

4.2. Bagging

"Bagging" 是 Bootstrap aggregating 的缩写。它的思想是,单个自助样本的估计可能偶然性较大,但如果我们将所有 $B$ 次自助实验得到的估计值聚合起来(比如通过取平均),就能得到一个更稳定、方差更小的最终估计。

对于均值的Bagging估计,公式就是: $$\frac{1}{R}\sum_{r=1}^R\hat{Z}^{(r)}$$ 这里的R就是我们进行自助抽样的总次数 $B$。

5. Bayesian Bootstrap

5.1. 贝叶斯视角

  • Efron Bootstrap:权重 $w_i$​ 是通过“有放回抽样”这个物理过程产生的。一个数据点被抽中 $k$ 次,它的权重就是 $k/n$ 。所以权重只能是 $1/n$ 的整数倍,是离散的、确定的
  • Bayesian Bootstrap (转变):贝叶斯学派不关心“抽样”这个过程。它直接将权重向量 $w=(w_1​,...,w_n​)$ 本身视为一组未知的、连续的参数 。我们的目标不再是去“生成”权重,而是根据数据和先验信念,去推断这组未知参数的后验概率分布

典型的贝叶斯推断流程是:后验 ∝ 似然 × 先验

先验 (Prior):在看到数据之前,我们对权重 $w$ 有什么看法?Rubin选择了一个无信息先验 (non-informative prior),其形式为 $\prod_{i=1}^nw_i^{-1}$​ 。不需要深究这个公式的来源,只需要知道它的作用是表达“在看到数据前,我们对权重的各种可能组合没有特别的偏好”。

似然 (Likelihood):给定一组权重 $w$,我们的数据出现的可能性有多大?这对应于数据点来自一个以 $w$ 为概率的离散分布的可能性 。

后验 (Posterior):将上述的无信息先验和多项式似然结合起来,通过贝叶斯定理的数学推导,得到的结果是:权重向量 $w$ 的后验分布是一个参数全为1的狄利克雷分布 (Dirichlet distribution),记作 $Dirichlet(1, ..., 1)$ 。

我们已经知道了权重的后验分布是 $Dirichlet(1, ..., 1)$,但这个分布很复杂,我们很难直接用它来解析地计算出我们关心的统计量 $T(F)$ 的分布。

因此,我们采用蒙特卡洛模拟 (Monte Carlo method) 的方法 。操作如下:

  1. 从我们推导出的后验分布 $Dirichlet(1, ..., 1)$ 中随机抽取一个权重向量 $\mathbf{w}^{(b)}=(w_1^{(b)},...,w_n^{(b)})$ 。注意,这里的权重是连续的,比如可以是 $(0.13, 0.25, 0.08, ...)$。
  2. 使用这个权重向量,计算一次我们关心的统计量。例如,如果是均值,就计算加权平均 $\sum w_i^{(b)}Z_i$ 。这个结果就是 $T(F_n^{(b)})$
  3. 重复步骤1和2非常多次(比如B次),得到B个统计量的估计值。这个集合就近似出了我们想要的统计量的后验分布。

为什么是狄利克雷分布 Dirichlet(1, ..., 1)?

  • 狄利克雷分布是多维的Beta分布,它本身就是对概率向量的分布
  • 一个向量 $(w_1​,...,w_n​)$ 如果服从狄利克雷分布,那么它必须满足 $w_i​≥0$ 且 $∑w_i​=1$,这正好是权重的定义。
  • 当参数全部为1,即Dirichlet(1, ..., 1)时,它代表在所有满足条件的权重向量构成的空间(一个称为“单纯形”的几何体)上是完全均匀的。这意味着,抽取到的权重向量落在任何一个小子区域的概率都是相等的,这诠释了“无信息”。

我们通过贝叶斯Bootstrap的蒙特卡洛模拟,得到了B个统计量的估计值 $T(F_n^{(b)})$ ,如果我们将这B个值取平均,得到的结果就是对该统计量后验均值的一个蒙特卡洛估计。

这个操作(对多次自助采样的结果取平均)在形式上与频率派的Bagging(Bootstrap Aggregating)非常相似,因此可以被看作是Bagging的贝叶斯模拟 (Bayesian analog of bagging) 。

5.2. 狄利克雷过程 (DP)

贝叶斯Bootstrap并非一个孤立的方法,而是可以被看作是使用狄利克雷过程先验的贝叶斯无参数模型在某个极限情况下的表现。为了介绍DP过程,我们引入贝叶斯无参数模型的概念。

贝叶斯无参数模型: 它不是指模型没有参数,而是指参数的数量不是预先固定的,可以随着数据的增多而增长。DP是构建这类模型最核心的工具。

DP先验: 在标准的贝叶斯模型中,我们为参数(比如一个均值 $\mu$ )设置先验(比如高斯分布)。在DP中,我们更进一步,为整个未知的概率分布 $F$ 本身设置一个先验,这个先验就是狄利克雷过程。可以把它理解为“对分布的分布”。

DP 有共轭先验性。所以如果我们为未知的分布 $F$ 选择了一个 DP 作为先验,那么在观测到数据之后,$F$ 的后验分布同样是一个DP

这个性质极大地简化了计算。后验DP的具体形式:

  • 先验: $DP(\alpha,F_0)$
  • 后验: $DP(\alpha+n,(\alpha+n)^{-1}(\alpha F_0+\sum_{i=1}^n\delta_{Z_i}))$

参数含义是:

  • $α$: 集中度参数。它控制了生成的分布 $F$ 与基础分布 $F_0$​ 的相似程度。$α$ 越大,$F$ 就越接近 $F_0$​。
  • $F_0$​: 基础分布。它是我们对未知分布 $F$ 的“先验猜测”。
  • $n$: 观测到的样本数量。
  • $\sum\delta_{Z_i}$​​: 从数据中得到的经验分布。

现在,我们来考虑一个特殊情况:当我们对先验猜测 $F_0$ 极度不自信时,我们会让集中度参数 $α$ 趋向于0 。

当 $α→0$ 时,上述后验公式中的 $αF_0$​ 项就消失了,整个后验分布就变成了:$$DP(n,n^{-1}\sum_{i=1}^n\delta_{Z_i})$$ 这个后验分布的均值,恰好就是样本的经验累积分布函数。正是这个$α→0$ 的极限、无信息的情况,等价于我们之前学习的Rubin的贝叶斯Bootstrap。

对集中度参数 α 的直观理解

你可以把 α 想象成你对先验信念 F0​ 的“信心权重”或者“伪计数”。

  • 后验DP的更新公式可以通俗地理解为:
  • 后验信念 = $\frac{来自先验的信心权重 \times 先验猜测 + 来自数据的权重 \times 数据证据}{总权重}$ $DP(\alpha+n,\frac{\alpha F_0+n(n^{-1}\sum\delta_{Z_i})}{\alpha+n})$
  • 从这个角度看:
    • 当 α 很大时 (比如 α=1000,n=10):我们对先验非常有信心。后验分布将主要由先验 $F_0$​ 决定,数据的影响很小。
    • 当 α 很小时 (比如 α=0.01,n=10):我们对先验几乎没有信心。后验分布将主要由数据 $\sum\delta_{Z_i}$决定。
    • 当 $α→0$ 时:我们完全放弃了先验信念,后验分布完全由数据驱动。这代表了一种“无信息”或“客观”的贝叶斯立场。

6. Jackknife

6.1. 基本思想和流程

刀切法 (Jackknife)是Bootstrap的前身,思想更简单,计算量也更小。这个方法的关键在于“留一法 (Leave-One-Out)”。

Jackknife和Bootstrap一样,都是一种重采样 (resampling) 技术。它的目标也和Bootstrap类似:评估一个根据样本计算出的估计量 $\hat{\theta}$ 的偏差 (bias) 和标准误 (standard error)

Jackknife一个特点是,它通常比Bootstrap的计算强度要低。

Jackknife和Bootstrap的区别是,Bootstrap是有放回地随机抽样,而Jackknife的操作是确定性的、系统的

假设原始样本有n个数据点,Jackknife会创建n个新的样本。第 $i$ 个Jackknife样本 $X_{(−i)}$​ 是通过从原始数据集中去掉第i个观测值得到的 。这个过程也被称为“留一法”。公式表达为: $$X_{(-i)}={x_1,x_2,...,x_{i-1},x_{i+1},...,x_n}$$ 这个在去掉了第 $i$ 个数据点后得到的估计值,被称为Jackknife复制值 (jackknife replication),记作 $\hat{\theta}{(i)}$ 这样操作下来,我们就会得到 $n$ 个Jackknife复制值:$\hat{\theta}{(1)},\hat{\theta}{(2)},...,\hat{\theta}{(n)}$