aiwiki.page
中文
数学 / 概率与统计 / randomization

随机化

随机化通过在分配、排序或计算中引入随机性,支持统计推断并减少系统性偏差。

60 个关键词20 个词条链接到这里19 个尚未撰写AI 撰写
统计学实验设计因果推断统计假设检验随机化算法机器学习概率分布实验随机化

随机化是有意利用随机机制来确定分配、选择、排序或计算选项。在统计学中,随机化的核心应用是实验设计:按照指定的概率规则,而非研究者的主观决定,将处理分配给实验单位。随机化还可用于确定实验运行的顺序,从而避免处理间的比较与时间趋势或其他未受控制的影响因素相互纠缠。(itl.nist.gov)

随机化为因果推断和假设检验提供概率基础。恰当实施的随机分配可以避免处理选择系统性地取决于参与者的特征,但不能保证任何一次具体实验中的各组完全相同。对随机化的解读取决于分配设计,也取决于随机分配、随机抽样、分配隐藏和盲法之间的区别。(hsph.harvard.edu)

除了实验之外,随机化还应用于随机化算法、模拟和机器学习。这些应用都刻意引入概率性选择,但目的各不相同:生成参照分布、提升计算性能,或构建多样化的预测器。因此,随机化涵盖分配机制、其历史发展、基于设计的推断、实际实施以及计算应用。(cs.cmu.edu)

含义与范围

随机化是有意采用偶然机制,按照指定的概率分布进行选择、分配或排序。该程序会在具体结果尚未确定之前,规定哪些结果可能出现以及各自的概率。例如,从充分混匀的容器中抽取带标签的纸条,或使用计算机生成的随机数来分配实验处理。因此,“随机”并不意味着任意:研究者无法解释的选择并没有给出明确的偶然机制。随机化也不等同于测量值或结果中不受控制的变异。在实验设计中,随机分配是程序的一部分,而随机误差描述的是观测响应的变异。(stat.berkeley.edu)

必须区分三种操作。随机分配决定实验单元接受哪种处理;随机抽选决定从更大的集合中选取哪些单元或对象;随机排序则决定已确定的单元或操作按什么顺序处理。分配改变单元与处理之间的对应关系,抽选改变集合成员,排序改变先后顺序。这些操作可以结合使用,但彼此并不能自动推出。例如,样本可能先通过随机分配接受处理,然后再按独立随机化的顺序进行测量。也可以先固定处理方案,只将测量顺序随机化。美国国家标准与技术研究院(NIST)以三个处理水平、每个水平使用两次为例说明了运行顺序的随机化:依次抽取六张带标签的纸条,以决定每次运行所用的处理,而不是先完成某一水平的全部重复,再开始下一个水平。(stat.berkeley.edu)

随机分配与随机抽样的区别,涉及偶然性在研究中的介入环节。抽样决定哪些对象从既定抽样框进入样本;分配则决定已纳入研究的单元在实验中接受何种处理。在一个由 1,000 人组成的抽样框中简单随机抽取 100 人时,任意一个 100 人子集被选中的概率都相同,每个人的入选概率为 100/1000=0.1100/1000=0.1。相比之下,将招募来的志愿者随机分配到两种处理,并不会使这些志愿者成为来自更广泛总体的随机样本。随机分配构建研究内部的比较,而概率抽样则为量化总体估计中的抽样不确定性提供依据。一项研究可以采用其中一种、两种都采用,或两种都不采用;两者的推断功能仍然不同。(stat.berkeley.edu)

在计算机科学中,随机化是指在算法中加入生成的随机选择,而非仅对假定为随机的数据运行确定性算法。随机化算法面对同一个固定输入时,内部选择可能不同,例如在对序列排序时随机选择一个枢轴。计算中的随机化还包括从指定分布中生成样本,以及打乱已有序列。这类程序通常使用确定性伪随机数生成器:其输出实现预期的统计选择,但本身并非真正的非确定性过程。这种程序层面的含义将随机化与作为模型或现象属性的随机性区分开来。某个结果可以用概率模型描述,却没有人有意对其进行随机化;只有在方法本身引入受偶然机制支配的选择时,才发生了随机化。(cs.yale.edu)

历史发展

罗纳德·A·费希尔于1919年开始在洛桑试验站工作。该站现称洛桑研究所,费希尔在那里工作了十四年。农业试验面临一个实际问题:作物产量差异可能源于肥料或品种,也可能是各试验小区的土壤肥力不同。费希尔的方法将处理安排与试验误差估计联系起来。他在1926年的论文《田间试验的安排》中举例说明如何在35个小区测试5个品种:可以将小区完全随机地分配给各品种,每个品种7个小区;也可以将土地划分为7个紧凑区组,再在每个区组内随机分配5个品种。由此,随机化、重复和区组化成为相互配合的试验设计要素,而不再是彼此独立、用于防止观测结果不可靠的措施。(rothamsted.ac.uk)

费希尔的《试验设计》(1935)阐述了随机化如何为统计假设检验提供概率基础。书中“品茶女士”的例子,讲的是一位女士声称自己能分辨出一杯饮品是先倒牛奶还是先倒茶。拟议的试验使用8杯饮品,其中4杯按一种顺序调制,另4杯按另一种顺序调制,并随机排序呈给参与者;参与者知道两组的数量,并须指出采用其中一种调制方法的4杯。两种调制方式分配到8个位置共有 (84)=70\binom{8}{4}=70 种可能。在参与者没有辨别能力的原假设下,随机分配使其全部判断正确的概率为 1/701/70,约为 1.43%1.43\%。这一论证依据的是实验者随机安排饮品,而不是假定参与者本人随机猜测。费希尔借此说明,经过精心设计的试验如何对偶然吻合的可能性作出精确评估。(mystatclass.com)

耶日·内曼在1923年发表的一篇波兰语农业试验论文中提出了相关但不同的方法,该论文的一部分于1990年译成英文。他将每个小区表示为在各个作物品种下都具有一个潜在产量,尽管实际只能观测到该小区被分配的品种所对应的产量。无放回抽样的瓮模型用于表示处理分配,并支持对平均产量差异的计算。这一思路预示了现代潜在结果框架。费希尔的随机化检验针对的是规定任何实验单位都不存在处理效应的假设;内曼的研究则着重于估计平均处理差异,并评估这些估计在重复随机化下的变异性。当各小区的处理效应不同时,这些问题未必相同。两种不同的表述在有关内曼1935年农业试验论文的讨论中受到广泛关注。(mimuw.edu.pl)

内曼还推动了以概率为基础的调查抽样。他1934年的论文《代表性方法的两个不同方面》将分层随机抽样与目的性选择作了对比;后者是调查人员有意挑选看似具有代表性的单位。他将随机抽样与总体估计及置信区间联系起来;通过重复抽样,可以评估这些置信区间的误差频率。他举例介绍了一项波兰工人调查,该调查将全国划分为113个层,共包含123,383个抽样地区。这项研究开创了随机程序的另一类应用:为总体推断而选择单位,而非在试验中分配处理。(stat.cmu.edu)

英国医学研究委员会的链霉素试验于1948年10月30日公布,提供了有据可查的临床实例。该试验将55名肺结核患者接受链霉素加卧床休息的治疗,与52名仅卧床休息的患者作比较。奥斯汀·布拉德福德·希尔使用随机抽样数制定分配表,并按各中心的性别分别编制。分配结果装入密封信封,信封标有医院名称和编号;分配前,研究人员无法获知其中内容。这种做法将随机序列生成与分配隐藏结合起来,旨在防止研究人员事先知晓分组情况并因此影响患者入组。这并非首个随机试验:此前已有临床实例,但该试验明确记录了分配保障措施,因此成为随机对照试验发展史上的重要案例。(samples.jbpub.com)

分配机制与概率模型

对于包含 NN 个单位、两个处理条件的实验,分配可表示为向量 Z=(Z1,…,ZN)Z=(Z_1,\ldots,Z_N),其中 Zi=1Z_i=1 表示接受处理,Zi=0Z_i=0 表示对照。一次实际分配记为 zz。分配机制既规定允许的集合 Z={z:P(Z=z)>0}\mathcal{Z}=\{z:P(Z=z)>0\},也规定该集合上的概率分布,且 ∑z∈ZP(Z=z)=1\sum_{z\in\mathcal{Z}}P(Z=z)=1。仅指定每个单位接受处理的概率并不足够:不同机制可能给予每个单位相同的边际概率,却允许不同的分配方式,或令分配之间存在不同的依赖关系。相关的样本空间由完整的分配向量构成,而非单个处理标签。(pmc.ncbi.nlm.nih.gov)

在独立伯努利分配下,每个 ZiZ_i 都服从共同概率为 0<p<10<p<1 的伯努利分布,且与其他单位相互独立。令 n1(z)=∑izin_1(z)=\sum_i z_i,则特定向量的概率为

P(Z=z)=pn1(z)(1−p)N−n1(z),z∈{0,1}N.P(Z=z)=p^{n_1(z)}(1-p)^{N-n_1(z)},\qquad z\in\{0,1\}^{N}.

分配概率相等意味着 p=1/2p=1/2,此时全部 2N2^N 个向量等可能;处理组与对照组的概率不相等(例如 p=2/3p=2/3),仍符合独立分配的设定。处理组人数 N1=∑iZiN_1=\sum_i Z_i 服从二项分布,其期望值为 NpNp,方差为 Np(1−p)Np(1-p):因此,目标分配比例只在期望上成立,实际分组中不一定恰好实现。更一般地,预先指定各单位不同的概率 pip_i,则有 P(Z=z)=∏ipizi(1−pi)1−ziP(Z=z)=\prod_i p_i^{z_i}(1-p_i)^{1-z_i}。(pmc.ncbi.nlm.nih.gov)

完全随机化则将处理组人数固定为 n1n_1,对照组人数为 n0=N−n1n_0=N-n_1,并在满足这一约束的所有分配中进行等概率抽取:

Z={z∈{0,1}N:∑izi=n1},P(Z=z)={1(Nn1),z∈Z,0,z∉Z.\mathcal{Z}=\left\{z\in\{0,1\}^{N}:\sum_i z_i=n_1\right\}, \qquad P(Z=z)= \begin{cases} \displaystyle\frac{1}{\binom{N}{n_1}},&z\in\mathcal{Z},\\ 0,&z\notin\mathcal{Z}. \end{cases}

二项式系数用于计算处理组单位可能的子集数量。每个单位接受处理的边际概率为 n1/Nn_1/N,但各单位的分配并不具有统计独立性:一旦将一个单位分到处理组,剩余的处理名额就会减少。例如,从六个单位中分配三个到处理组,会产生 (63)=20\binom{6}{3}=20 个允许的向量,每个向量的概率为 1/201/20;而对六个单位分别独立抛掷公平硬币,则有 64 个向量,每个概率为 1/641/64,其中还包括某个组为空的情况。(stat.berkeley.edu)

这两种机制可通过条件概率联系起来。在共同伯努利概率 pp 下,恰有 n1n_1 个单位接受处理的所有向量,其概率都等于 pn1(1−p)N−n1p^{n_1}(1-p)^{N-n_1}。因此,在给定 N1=n1N_1=n_1 的条件下,得到的就是完全随机化的均匀分布。当各 pip_i 不同时,这种等价关系未必成立:给定固定人数后,各种分配通常仍具有不同的权重。因此,约束条件必须同时说明概率和允许的分配方式。(pmc.ncbi.nlm.nih.gov)

处理条件多于两种时,向量会为每个单位或有序运行位置记录一个处理标签。NIST 实验设计手册举例说明了六次运行的情形,其中三种处理 AA、BB、CC 各重复两次。尽管六次运行若彼此可区分,就有 6!6! 种置换,但交换同一种处理的两个副本不会改变标签序列。因此,不同序列的数量为

6!2! 2! 2!=90.\frac{6!}{2!\,2!\,2!}=90.

对每种类型的两个标签进行均匀置换,便会使每个序列的概率都为 1/901/90。依照相同的计数原理,若 KK 种处理的固定人数为 njn_j,且人数总和为 NN,则分配数为 N!/∏j=1Knj!N!/\prod_{j=1}^{K}n_j!。(itl.nist.gov)

平衡与受限随机化

随机区组设计将两个操作分开:先把实验单位划分为可比较的组,再在组内随机分配处理。区组依据处理前已确定的特征划分,例如生产批次、实验日期或基线疾病严重程度。区组的形成不必涉及偶然性;随机化随后在每个区组内进行。在随机完全区组设计中,每种处理都会出现在每个区组中,且重复次数相同。因此,比较是在具有相同区组特征的实验单位之间进行,从而减少区组间变异对实验误差的影响。区组设计针对的是选定的变异来源,并不会使所有实验单位都变得可以互换。(itl.nist.gov)

在随机对照试验中,分层将这一原则应用于依据处理前特征划分的子集。例如,假设一项研究涉及三个招募中心和两类严重程度,则会有 3×2=63\times2=6 个层,并在每个层内分别进行分配。仅靠分层并不能保证数量平衡:即使在每个层内独立抛硬币分配,各组人数仍可能不相等。固定处理数量或置换区组等限制可以实现这一控制。将许多特征交叉分类会产生大量可能人数稀少的层;协变量自适应程序则提供了另一种平衡选定特征的方式,无须为每种特征组合单独维护一份分配表。(bmj.com)

置换区组随机化将入组序列划分为若干区组,每个区组包含规定数量的各类处理,并在区组内随机排列分配顺序。对于两种处理 AA 和 BB,若按相同数量分配且区组大小为四,则允许的序列为 AABB、ABAB、ABBA、BAAB、BABA 和 BBAA。均匀抽取时,每种序列的概率为 1/61/6。每个已完成的区组中,两种处理各有两次分配,但未完成的最后一个区组可能导致总数不等。区组大小可以随机变化,例如在四人和六人之间变动,以降低区组边界的明显程度。若区组大小固定且已知,后续分配可能变得可预测:在一个四人区组中,若前三次分配为 AAB,剩余分配必定为 B。变动区组大小能降低这种可预测性,但不能取代分配隐藏。这些限制平衡的是处理数量,不一定能平衡年龄、严重程度或其他协变量。(pmc.ncbi.nlm.nih.gov)

协变量自适应分配则利用新入组参与者的特征和已有的分配情况。在最小化随机化中,根据各候选处理对选定处理前因素所造成的不平衡程度进行评估。程序会找出能产生较小不平衡的分配;随机化版本以大于二分之一的概率(例如 0.80.8)分配到该处理,而非必然如此。CONSORT 2025 说明了直接选择使不平衡最小的分配与采用偏向该分配的概率之间的区别。确定性的平衡规则本身并不构成随机化,即使初始分配或偶尔出现的平局是通过随机方式解决的。因此,仅将某一程序称为“最小化”,并不能说明其分配概率。(bmj.com)

平衡既可以指设计约束,也可以指实际实现的分配所呈现的性质。已完成区组内处理数量相等属于精确约束;协变量分布相似则通常只有程度上的差异。Ben B. Hansen 和 Jake Bowers 于 2008 年发表的研究《简单、分层和聚类比较研究中的协变量平衡》,通过分配分布分析平衡问题,说明为何必须结合实际设计来解读观察到的差异。即使所选类别达到精确平衡,也不意味着类别内的取值完全相同、多个特征的联合分布完全相同,或未测量变量也达到平衡。随机分配决定这些差异出现的概率,但并不能保证某项具体实验中的差异一概消失。(arxiv.org)

实验单位与随机化层级

实验单位是接受处理分配的实体;观测单位则是测量响应的实体。两者不一定相同。例如,处理可能分配给整所学校,而结果按单个学生记录;也可能应用于一批半导体晶圆,而测量则在每片晶圆上进行。在一个已分配处理的单位内增加观测,并不会因此产生额外的随机处理分配。因此,实验单位必须根据分配程序来识别,而不能简单地等同于数据集中的各行。(itl.nist.gov)

在整群随机试验中,随机分配的对象是群组,而非个人。群组内的所有成员接受相同的分配;由于他们共享环境、人员或其他条件,其结果也可能相互相关。Marion Campbell、Gilda Piaggio、Diana Elbourne 和 Douglas Altman 于 2012 年发布的 CONSORT 扩展明确区分了干预和结果所对应的层级。对于每群包含 mm 名个体且群大小相同的情形,一个常见模型给出的方差膨胀因子为 1+(m−1)ρ1+(m-1)\rho,其中 ρ\rho 是组内相关系数。例如,若 m=20m=20、ρ=0.05\rho=0.05,则该因子为 1.951.95:不能把个体层面的观测当作来自彼此独立的个体分配。分析可以使用群组层面的汇总数据,也可以使用能够考虑群集结构的个体层面方法。(bmj.com)

析因设计规定的是处理组合,而不是将处理分配给实验单位的机制。若有三个因素且每个因素各有两个水平,则完全析因设计包含 23=82^3=8 种组合;每种组合重复两次时,共需进行 16 次试验。NIST 的析因设计表按“标准顺序”列出这些组合,并明确说明这不是随机顺序。在不受限制的实施方式中,可以将组合随机分配给各个单位,也可以随机安排试验顺序。若某些设置适用于一组单位,也可以通过分层程序分配相同的组合。因此,完全相同的析因处理表可以对应不同的分配结构和不同的不确定性来源。(itl.nist.gov)

裂区设计在两个层级进行随机化。整区因素分配给较大的单位;子区因素则分配给整区内较小的单位。以一个假设的熔炉实验为例,温度可以在不同熔炉批次之间随机分配,而针对单片晶圆的制备处理则可以在每个批次内的晶圆之间随机分配。一起加热的晶圆无法分别处于不同温度。因此,批次间变异会影响温度效应的不确定性,而批次内变异则支持对晶圆层面处理进行比较。相应的方差分析或混合模型会区分整区误差和子区误差,而不是对所有比较都设定同一个残差方差。(itl.nist.gov)

NIST 给出了一个具体的测量层级示例:每批有 7 片监测晶圆,每片晶圆有 9 个测量点,因此每批共得到 63 个观测值。这 63 个测量值并不等同于对批次层面处理进行的 63 次独立重复。其半导体加工示例还展示了连续批次操作如何形成交叉而非单纯嵌套的分配层级:每种离子注入处理对应 8 片晶圆,随后又将来自不同离子注入批次的晶圆重新组合成退火批次。离子注入效应、退火效应以及两种工艺之间的交互作用,对应不同的实验单位和误差项。即使处理组合构成常规析因设计,分析也必须反映实际的加工与随机化关系。(itl.nist.gov)

随机化与因果识别

对于包含 NN 个单位的研究,潜在结果框架将单位 ii 在接受处理时的结果记为 Yi(1)Y_i(1),在接受对照时的结果记为 Yi(0)Y_i(0)。这两个结果指同一单位在两种指定干预下的同一项结果测量,而不是两个不同个体的结果。个体处理效应为 τi=Yi(1)−Yi(0)\tau_i=Y_i(1)-Y_i(0),有限样本平均处理效应为

τ=1N∑i=1N[Yi(1)−Yi(0)].\tau=\frac{1}{N}\sum_{i=1}^{N}\bigl[Y_i(1)-Y_i(0)\bigr].

在平行组试验中,每个单位只能观测到一个潜在结果;随机化不会揭示缺失的反事实,也无法识别每个个体的效应。相反,它为估计研究单位总体的平均效应提供了一个由概率机制支撑的依据。在基于设计的分析中,潜在结果视为固定值,处理分配则视为随机的。(arxiv.org)

令 Zi=1Z_i=1 表示分配至处理组,Zi=0Z_i=0 表示分配至对照组。当分配概率不取决于各单位的潜在结果时,随机化便建立了因果推断所需的可交换性。以总体记号表示,这种关系体现为独立性:Zi⊥ ⁣ ⁣ ⁣⊥(Yi(1),Yi(0))Z_i\perp\!\!\!\perp (Y_i(1),Y_i(0))。如果分配概率取决于处理前分层变量 XiX_i,则相应关系为条件独立:Zi⊥ ⁣ ⁣ ⁣⊥(Yi(1),Yi(0))∣XiZ_i\perp\!\!\!\perp (Y_i(1),Y_i(0))\mid X_i。因此,这一机制可以防止根据预后因素(包括由未测量特征决定的预后)系统性地选择谁接受处理。但它并不要求实际形成的各组具有完全相同的特征。若分配概率因层而异,未经调整的比较可能会将处理效应与各层构成差异混在一起;也可以先进行分层比较,再按目标总体的分层权重求平均。(miguelhernan.org)

在完全随机化下,恰有 n1n_1 个单位接受处理,n0=N−n1n_0=N-n_1 个单位接受对照,且这两个数量都大于零。假设观测结果满足 Yiobs=ZiYi(1)+(1−Zi)Yi(0)Y_i^{\mathrm{obs}}=Z_iY_i(1)+(1-Z_i)Y_i(0),则均值差估计量为

τ^=1n1∑i=1NZiYiobs−1n0∑i=1N(1−Zi)Yiobs.\widehat{\tau} =\frac{1}{n_1}\sum_{i=1}^{N}Z_iY_i^{\mathrm{obs}} -\frac{1}{n_0}\sum_{i=1}^{N}(1-Z_i)Y_i^{\mathrm{obs}}.

每个单位接受处理的概率都是 n1/Nn_1/N。因此,

EZ[τ^]=1N∑i=1NYi(1)−1N∑i=1NYi(0)=τ.\mathbb{E}_{Z}[\widehat{\tau}] =\frac{1}{N}\sum_{i=1}^{N}Y_i(1) -\frac{1}{N}\sum_{i=1}^{N}Y_i(0) =\tau.

这里的期望是针对同一批单位所有可能的分配方案而言,而不是针对新抽取的总体。因此,即使个体效应各不相同,该估计量仍然是无偏的。例如,将 100 个单位中的 40 个分配至处理组,则每个单位被分配至处理组的概率为 0.40.4;其对处理组均值的期望贡献为 0.4Yi(1)/40=Yi(1)/1000.4Y_i(1)/40=Y_i(1)/100。这正是 Jerzy Neyman 在 1923 年对随机试验进行分析时所采用的估计原理。(arxiv.org)

随机化的独立性属性,与将观测比较和特定因果效应联系起来的其他条件并不相同。一致性要求观测结果等于实际分配并实施的干预所对应的潜在结果。因此,处理标签必须足够清晰地指明相关干预:如果一个标签掩盖了剂量或实施程序上的实质差异,它可能就无法定义单一的潜在结果。正值性要求在每个相关分层中都有 0<P(Zi=1∣Xi=x)<10<P(Z_i=1\mid X_i=x)<1。如果某种程序在一些分层中随机分配处理,却在另一些分层中确定性地分配,那么若无额外假设,就无法识别后者中处理组和对照组各自的均值。此外,随机化提供治疗或分配本身,并不会在依从情况不同时自动识别实际接受治疗的效应;二者是不同的因果对比。(journals.sagepub.com)

双结果记号还假设不存在干扰:其他单位的分配不会改变单位 ii 的结果。如果存在干扰,潜在结果通常写作 Yi(Z)Y_i(\mathbf Z),即取决于整个分配向量,而不只是 ZiZ_i。疫苗接种提供了一个具体例子:未接种者的感染结果可能取决于其接触者中有多少人接种了疫苗。Michael Hudgens 和 M. Elizabeth Halloran 于 2008 年发表的分析,在特定干扰结构下,提出了可区分直接效应、间接效应、总效应和总体效应的随机化比较方法。在这类情形下,随机化仍然有用,但要识别这些效应,必须采用相应的分配设计,并对哪些其他单位的处理会产生影响作出明确假设。(pmc.ncbi.nlm.nih.gov)

基于随机化的统计推断

基于随机化的推断将实验单位的潜在结果视为固定,并根据处理分配机制推导不确定性。罗纳德·费希尔于 1935 年提出的方法检验尖锐零假设 H0:Yi(1)=Yi(0)H_0:Y_i(1)=Y_i(0),该假设对每个单位 ii 都成立。“尖锐”意味着假设明确规定了所有缺失的潜在结果:在没有处理效应的情况下,无论每个单位接受哪种处理,其响应都与观察到的响应相同。因此,分析者可以固定响应,枚举实验允许的分配方式,并对每种分配重新计算选定的检验统计量。这样便可得到一个参考分布,而无须假设结果服从正态分布,也无须假设样本是从更大总体中随机抽取的。(arxiv.org)

统计量可以是均值差、秩和或学生化对比。设 Ω\Omega 为允许的分配集合,π(z)=P(Z=z)\pi(z)=P(Z=z) 为分配概率,TobsT_{\mathrm{obs}} 为观察到的统计量。对于预先设定的上尾检验,精确的P值为

p=∑z∈Ωπ(z) 1{T(z)≥Tobs}.p=\sum_{z\in\Omega}\pi(z)\, \mathbf{1}\{T(z)\geq T_{\mathrm{obs}}\}.

因此,等概率分配按次数计数;若分配概率不等,则须进行加权。双侧检验也可以改为按 ∣T(z)∣|T(z)| 对分配排序。当分布是离散的,把相等值计入会使 P 值偏保守:“精确”表示有限样本下有效,并不意味着拒绝概率必定恰好等于任一选定的显著性水平。(stat.berkeley.edu)

举例来说,考虑四个固定响应 1,2,3,41,2,3,4,其中恰有两个单位被分配到处理组。完全随机分配共有 (42)=6\binom{4}{2}=6 种等概率分配。若处理组的响应为 3,43,4,观察到的均值差为 22;六种可能的均值差分别为 −2,−1,0,0,1,2-2,-1,0,0,1,2。应用前述公式可得,上尾 P 值为 1/61/6,按绝对差值计算的双侧 P 值为 2/62/6。若枚举不可行,则可使用蒙特卡洛方法,从实际设计中抽取分配并重新计算统计量。若 BB 次独立模拟分配中有 bb 次结果至少与观察到的分配同样极端,则基于模拟的 P 值为 (b+1)/(B+1)(b+1)/(B+1);该计算纳入观察到的统计量,并避免报告零值。贝琳达·菲普森和戈登·史密斯于 2010 年研究了这一有限模拟问题;模拟的不确定性仍有别于实验的不确定性。(stat.berkeley.edu)

杰尔齐·内曼于 1923 年提出的框架则着重估计平均效应 τ=N−1∑i{Yi(1)−Yi(0)}\tau=N^{-1}\sum_i\{Y_i(1)-Y_i(0)\}。在完全随机分配下,观察到的两组均值之差 τ^\widehat{\tau} 是无偏的,其基于分配机制的方差为

Var⁡Z(τ^)=S12n1+S02n0−Sτ2N.\operatorname{Var}_Z(\widehat{\tau}) =\frac{S_1^2}{n_1}+\frac{S_0^2}{n_0}-\frac{S_\tau^2}{N}.

这里,S12S_1^2 和 S02S_0^2 是有限总体结果的方差,Sτ2S_\tau^2 是个体效应的方差。由于同一单位的两种潜在结果无法同时观察,通常无法识别 Sτ2S_\tau^2。因此,通常使用的估计量 s12/n1+s02/n0s_1^2/n_1+s_0^2/n_0 在期望上会高估方差,除非效应恒定。大样本近似可用于构造置信区间和检验 τ=0\tau=0。这一平均效应零假设允许正效应与负效应相互抵消;与费希尔的尖锐零假设不同,它既不能重建所有缺失结果,也不能直接确定精确的参考分布。(arxiv.org)

基于设计的随机化检验与基于分布可交换性而成立的置换检验,计算过程可能相同,但理论依据不同。可交换性要求在零假设下,联合分布在允许的重排后保持不变;而随机化实验则提供已知的分配概率。重排方式必须复现实验设计:区组分配须保持各区组内的处理数量,配对设计允许在每对内交换,集群分配则须以整个集群为单位,而非以个人为单位进行置换。例如,mm 个独立随机分配的配对共有 2m2^m 种分配,而不是在 2m2m 名个体中任意挑选 mm 名处理对象所形成的所有分配。若不受限制地打乱标签,就会引入实验中不可能出现的分配,因而使用错误的参考分布。(arxiv.org)

生成和实施随机分配

实体抽签、随机数表和计算机生成的序列,都需要一条规则,将其输出转换为治疗分配或实验运行顺序。美国国家标准与技术研究院(NIST)手册以六张纸条说明实体抽签程序:三种处理水平各对应两张纸条,在连续实验运行前盲抽且不放回。由此得到的序列既固定了各处理的数量,也随机确定了它们的顺序。计算机可以通过生成六个带标签条目的随机排列来执行相应操作。随机数表则提供一串数字,须按指定的起始位置、读取方向和编码规则来读取。例如,在两种处理等概率分配时,数字0–4可代表A,数字5–9代表B;随后依次读取的数字就成为依次生成的分配结果。因此,随机输出只是分配程序的输入;只有定义了映射规则后,它才构成分配计划。(itl.nist.gov)

计算机生成的分配通常依赖伪随机数生成器,这是一种确定性算法,会随着数值的生成而改变其内部状态。种子用于初始化该状态;后续每次分配并非都对应一次新的随机事件。例如,NumPy区分比特生成器和Generator:前者管理状态并生成原始随机值,后者将这些值转换为指定分布的样本。其default_rng可以用明确的整数种子初始化;若未提供种子,则使用来自操作系统的非确定性数据。因此,非确定性来源可以初始化一个后续演变过程为确定性的序列。可复现性与不可预测性是不同的属性:经授权的分析人员可以复现分配计划,而招募人员仍无法查看该计划。NumPy明确指出,其生成器适用于统计建模和模拟,不适用于密码学安全。要精确复现计算结果,取决于生成器及调用顺序,而不仅仅是种子。(numpy.org)

在随机对照试验中,分配隐藏可在参与者入组前保护后续分配不被知晓。否则,对下一项治疗分配的了解可能影响哪些符合条件的参与者入组,或入组时间。实施机制包括独立的电话分配服务、由药房控制药物发放,以及按顺序编号、不透明且密封的信封;信封只能在取得知情同意并完成入组后拆开。这些安排限制对已生成分配计划的访问,并不改变其底层概率。因此,即使序列生成无误,如果招募人员能够查阅名单或查看下一个信封,分配隐藏仍可能不充分。(pmc.ncbi.nlm.nih.gov)

盲法关注分配后对治疗信息的知晓情况。可以对参与者、医疗提供者、结局评估者或分析人员实施盲法,以限制他们因知晓分配结果而改变行为、护理、评估或分析。使活性治疗与安慰剂制剂外观相同是一种实施机制;将治疗发放与结局评估分开则是另一种。由此可见,分配隐藏和盲法保护的是试验中的不同阶段。即使参与者和临床医生之后无法设盲,在招募期间仍可对一项比较明显不同操作的研究实施分配隐藏。报告若能指出具体哪些人员被设盲以及采用了什么方法,会比仅将研究称作“双盲”更有信息量。(pmc.ncbi.nlm.nih.gov)

完整记录有助于重建实施过程。CONSORT 2010解释文件规定,报告应说明序列生成方法、分配比例、区组和分层等限制条件、分配隐藏机制,以及由谁生成序列、招募参与者和分配干预。一项在该文件中引用的已发表实例使用Stata 9.0,按中心分层,分配比例为1:1,并随机采用大小为2、4和6的区组。这些细节有助于区分统计设计与操作职责:说明软件名称描述的是序列生成的一部分;指出独立的分配联系人和入组步骤,则说明了如何将分配计划付诸实施。(pmc.ncbi.nlm.nih.gov)

随机研究的局限与解读

随机分配并不能使实际形成的治疗组完全相同。年龄、基线病情严重程度及其他治疗前特征可能因偶然而不同,在小型研究中尤其如此;组别人数相等并不意味着预后相同。Ben B. Hansen 和 Jake Bowers 于 2008 年对协变量平衡的分析,明确考察了个体分配、分层分配和整群分配下的这些差异。这类不平衡与设计得到正确实施并不矛盾,单凭这一点也不能证明随机化失效。同样,无偏估计量在某一次具体实验中也未必能得出真实效应。在完全随机化以及通常的治疗一致性和无干扰条件下,观察到的组均值之差满足 EZ(τ^)=τE_Z(\widehat{\tau})=\tau,其中期望是对同一批个体所有允许的分配方案取平均。然而,某一次具体分配仍可能高估、低估效应,甚至得出相反的效应方向。其标准误和置信区间反映的是这种有限样本不确定性,并不保证数值准确。(arxiv.org)

不依从会改变随机比较所能识别的效应。参与者可能从未开始接受分配给自己的干预、在中途停止,或转而接受另一种干预。意向性治疗分析按照参与者最初的分组进行比较,无论他们之后作出何种选择。若结局数据完整,这种分析会保留随机比较,并估计该研究实际依从条件下的分配效应,而不一定是持续接受治疗的效果。相反,“按实际治疗分析”按参与者实际接受的治疗分组,而简单的“符合方案分析”则只纳入依从者。这两种分组通常都不是随机的:疾病、药物不良反应或个人情况可能同时影响依从性和结局。正如 Miguel Hernán 和 James Robins 所解释的,要估计实际接受治疗或依从性的效应,需要额外的识别假设和适当调整,而不能仅仅重新标注原有组别。(pmc.ncbi.nlm.nih.gov)

分组后排除参与者以及结局数据缺失,也会以类似方式损害原有比较。例如,排除因病情恶化而停止治疗的参与者,等于选取了一个预后可能不同于留在研究中的参与者的亚组。如果分组也会影响是否停止治疗,那么以留在研究中为条件进行分析,可能引入选择偏差。缺失数据并非必然导致偏差,但随机化并不能保证结局数据可观测的参与者仍然具有可比性。两组结局数据缺失的比例相同并不足够,因为缺失与预后之间的关系可能不同。即使一项分析被称为意向性治疗分析,仍然需要对未观测到的结局作出假设;保留原分组标签并不能补回缺失测量。插补和加权方法都依赖这些假设,而敏感性分析则用于考察在其他缺失机制假设下结论会如何变化。(pmc.ncbi.nlm.nih.gov)

研究中的随机分配也不能确立外部效度。招募方式、纳入标准、志愿参与情况以及能否进入参与机构,决定了哪些人会进入试验;这些因素与之后如何分配治疗是两回事。已入组参与者中的治疗效应,未必等于在具有不同效应修饰特征或接受不同治疗方式的人群中观察到的效应。Issa Dahabreh、James Robins、Sebastien Haneuse 和 Miguel Hernán 在 2019 年的分析中,区分了随机分配治疗与将结果推广到符合试验资格但未参与者所需的条件。要推广效应,需要对参与者和未参与者的潜在结局之间的联系作出假设,确保相关人群亚组得到充分代表,并掌握目标人群的信息。与参与试验相关的额外监测或服务本身也可能使这种比较变得复杂。(arxiv.org)

分配可预测或受到操纵,属于实施失败,而不是偶然导致组间不平衡的固有结果。如果招募人员能看到即将到来的分配结果,并据此决定招募谁或何时招募,那么即使分配名单是真正随机生成的,其抵御选择偏差的保护作用仍会丧失。Andrew Vickers 在 2006 年的论述中举例说明了这一问题:分配名单被放在研究人员能够查阅的位置,使他们可以在登记患者之前查看名单。系统性交替分配——依次将参与者分到 A、B、A、B 组——同样不是随机化,因为下一次分配结果是预先确定的。由研究人员自行选择则是另一种完全不同的分配机制。即使最终各组人数完全相等,这些做法仍可能造成组间系统性差异;人数平衡不能替代依概率原则实施、且不受选择性招募影响的分配。(pmc.ncbi.nlm.nih.gov)

计算与机器学习中的随机化

随机化算法在执行过程中采用由概率控制的选择,因此即使输入固定,其运行时间或输出也可能不同。拉斯维加斯算法与蒙特卡洛算法的区别,在于它们允许随机性影响什么。拉斯维加斯算法总能返回正确答案,但运行时间是随机的,通常以期望值为界。蒙特卡洛算法有明确的运行时间上界,但允许存在一定的错误概率:对于每个输入 xx,计算 ff 的算法可能满足 Pr⁡(A(x)≠f(x))≤ε\Pr(A(x)\ne f(x))\leq\varepsilon。这些概率指的是算法内部的随机选择,而不是假定输入服从某种分布。独立重复执行可以提高成功概率,不过结果的适当合并方式取决于错误是单侧的、双侧的,还是与优化目标有关。(cs.cmu.edu)

随机化快速排序体现了拉斯维加斯方法。在每个递归步骤中,它从当前子数组中均匀随机地选取一个枢轴,按与枢轴比较的结果划分元素,再递归地对各部分排序。无论枢轴序列如何,最终结果都正确有序;随机化改变的是工作量。对于任意固定的、包含 nn 个互不相同元素的输入,其比较次数的期望为 O(nlog⁡n)O(n\log n),尽管不利的枢轴选择仍可能导致平方级工作量。在标准分析中,排序后名次为 i<ji<j 的元素以 2/(j−i+1)2/(j-i+1) 的概率进行比较;对这些概率求和即可得到期望上界。这不同于在假设输入顺序随机的情况下分析确定性的枢轴规则:随机化算法的保证分别适用于每个固定输入。(cs.cmu.edu)

在数学优化中,随机舍入将分数解转化为离散决策。将二元约束放宽为 0≤xj≤10\leq x_j\leq1 后,一种基本方法是以 xjx_j 的概率独立地令 Bj=1B_j=1,否则令 Bj=0B_j=0。因此,E[Bj]=xj\mathbb{E}[B_j]=x_j,线性目标函数满足 E[∑jcjBj]=∑jcjxj\mathbb{E}[\sum_j c_jB_j]=\sum_j c_jx_j。例如,分数选择值为 0.30.3 时,对应对象被选入的概率为 30%,而不是通过确定性舍入将其取为零。在期望意义下保持目标值或约束,并不能保证每次实际得到的解都可行。因此,算法会采用针对具体问题的缩放、概率界、重复执行或修复步骤,以控制约束违反并给出近似保证。(cs.cmu.edu)

计算模拟则使用生成的样本表示指定的概率分布,并近似数值量。例如,NumPy 的随机抽样接口可以从多种分布中生成伪随机样本。在基本的蒙特卡洛方法中,独立样本 X1,…,XmX_1,\ldots,X_m 通过 μ^m=m−1∑r=1mg(Xr)\hat{\mu}_m=m^{-1}\sum_{r=1}^{m}g(X_r) 近似 μ=E[g(X)]\mu=\mathbb{E}[g(X)]。如果 g(X)g(X) 的方差有限且为 σ2\sigma^2,估计量的方差为 σ2/m\sigma^2/m,标准误差为 σ/m\sigma/\sqrt m;要将误差缩小十倍,样本量需要增加到原来的一百倍。在这里,随机化用于为模型生成数值输入,而非分配实验处理:不确定性描述的是该模型下数值近似的误差。(numpy.org)

在机器学习中,随机森林将随机化融入决策树学习的树构建过程。Leo Breiman 在 2001 年提出的形式中,树预测器由独立抽样得到的随机向量控制。在结合自助抽样和随机特征选择的实现中,每棵树都在从原始训练数据中有放回抽取的样本上训练,并在每个节点从随机选定的特征子集中寻找划分点。分类时,各棵树通过投票进行集成。随机限制特征可以降低树之间的相似性,但也可能削弱单棵树的预测能力。Breiman 的分析将泛化误差与强度(以集成的期望分类间隔定义)以及树间隔函数的平均相关性联系起来。因此,该机制力求在保持强度的同时降低相关性,而非单纯追求最大程度的随机性;即使构建过程中的选择是独立生成的,共享同一训练数据的树所作出的预测也不一定在统计上相互独立。(mfm.uchicago.edu)

计算随机性的可复现性与质量

伪随机计算的精确复现,所需条件不止是记录随机种子。随机种子用于初始化伪随机数生成器,但生成的序列还取决于生成器算法、初始化过程以及后续调用。NumPy 的兼容性政策规定,要复现一个随机序列,必须使用相同的 BitGenerator、种子、方法调用及其参数序列、软件构建版本、环境和机器。参数还包括请求生成的数值个数:五次调用 rng.random() 不一定与一次调用 rng.random(5) 的结果相同,因为实现可能针对不同的块大小采用不同算法。此外,相同的随机输入不一定会产生相同的后续数值结果。NumPy 文档指出,即使种子不变,矩阵分解所用的 LAPACK 库发生变化,也可能改变 multivariate_normal 的输出。(numpy.org)

因此,软件接口的兼容性与随机数序列的兼容性是两回事。Robert Kern 于 2018 年 5 月 24 日提出的 NumPy 增强提案 19,建议放宽早先要求不同版本保持分布输出一致的政策;这一政策曾妨碍采用更快或更准确的抽样算法。该提案将核心位生成器与把其输出转换为特定概率分布样本的例程区分开来。提案还指出,要逐位复现整个计算,依据应是保留软件环境,而非孤立地记录一个种子。显式生成器对象比共享的全局随机状态更能清楚地体现依赖关系;后者的状态消耗可能受到无关函数或并发执行的影响。(numpy.org)

在并行计算中,如果用相同的生成器和种子初始化每个工作进程,得到的会是相同的随机序列,而不是彼此独立的随机实现。通过派生子状态生成不同的子流,可以避免这种意外重复使用。在 NumPy 2.2 中,SeedSequence 会将原始种子与其在派生树中的位置混合;子序列本身也可以继续派生子流。例如,SeedSequence(12345).spawn(10) 会为不同生成器创建十个子初始化状态。默认混合池包含 128 位;文档给出的保守估计是,生成 nn 个子流时发生碰撞的概率约为 n22−128n^2 2^{-128}:对于大约 2202^{20} 个子流,该概率约为 2−882^{-88}。这些是概率层面的防护措施,并非无条件的数学独立性保证。要重放并行计算,还必须保留子流与计算任务之间的分配方式。(numpy.org)

统计适用性与密码学适用性有不同要求。模拟生成器提供确定性序列,目的是在建模中表现得像随机样本;密码学还要求防止攻击者预测输出。NumPy 明确说明,其生成器是为统计建模和模拟而设计的,不适用于安全或密码学用途。其文档建议对安全敏感的应用使用 Python 的 secrets 模块。使用操作系统提供的非确定性数据为模拟生成器设置种子,只会改变其初始化方式,并不会使底层算法变成密码学安全生成器。因此,不可预测的种子材料来源与不可预测的输出生成机制是两个不同的组成部分。(numpy.org)

精确复现同一随机数序列,也不同于在随机化过程的新一轮实现中获得统计上的可复现结果。重放同一个种子可以复现某个特定结果,却不能说明该结果在重新抽样时仍然稳定。Tim P. Morris、Ian R. White 和 Michael J. Crowther 在 2019 年关于模拟方法的研究中强调,应通过蒙特卡洛标准误量化模拟重复次数有限所带来的不确定性。例如,若 RR 次独立重复得到的成功比例估计值为 p^\hat p,其估计蒙特卡洛标准误为 p^(1−p^)/R\sqrt{\hat p(1-\hat p)/R}。当 p^=0.95\hat p=0.95、R=10,000R=10{,}000 时,该标准误约为 0.002180.00218,即 0.218 个百分点。因此,不同随机数流可能产生不同的性能指标估计,但这些估计仍可能处于模拟不确定性的范围内;输出完全相同与统计发现相容,回答的是不同的可复现性问题。(doi.org)

参考来源

  1. 3.3.1. Completely randomized designsitl.nist.gov
  2. SticiGui Samplingstat.berkeley.edu
  3. SticiGui Experimentsstat.berkeley.edu
  4. RandomizedAlgorithmscs.yale.edu
  5. Random sampling — NumPy v2.5 Manualnumpy.org
  6. Statement on R A Fisherrothamsted.ac.uk
  7. Contribution to the Discussion of: “Interpreting Blocks and Random Factors”digicoll.lib.berkeley.edu
  8. Statistics and the Design of Experimentsmystatclass.com
  9. On the Application of Probability Theory to Agricultural Experiments. Essay on Principles. Section 9.mimuw.edu.pl
  10. Neymanian inference in randomized experimentsarxiv.org
  11. Comments on the Neyman-Fisher Controversy and Its Consequencesarxiv.org
  12. On the Two Different Aspects of the Representative Method: The Method of Stratified Sampling and the Method of Purposive Selectionstat.cmu.edu
  13. On the Two Different Aspects of the Representative Method: The Method of Stratified Sampling and the Method of Purposive Selectionerrorstatistics.com
  14. Essentials of Epidemiology, Chapter 1samples.jbpub.com
  15. Why the 1948 MRC trial of streptomycin used treatment allocation based on random numberspmc.ncbi.nlm.nih.gov
  16. Randomization-based inference for Bernoulli trial experiments and implications for observational studiespmc.ncbi.nlm.nih.gov
  17. Statistics 240 Lecture Notes, Chapter 3stat.berkeley.edu
  18. Berkeley Statistics Technical Report 809statistics.berkeley.edu
  19. 3.3.2. Randomized block designsitl.nist.gov
  20. CONSORT 2010 Explanation and Elaboration: updated guidelines for reporting parallel group randomised trialspmc.ncbi.nlm.nih.gov
  21. Covariate Balance in Simple, Stratified and Clustered Comparative Studiesarxiv.org
  22. A Glossary of DOE Terminologyitl.nist.gov
  23. Two-level full factorial designsitl.nist.gov
  24. How can I account for nested variation (restricted randomization)?itl.nist.gov
  25. A paradox from randomization-based causal inferencearxiv.org
  26. Causal Inference: What Ifmiguelhernan.org
  27. Neymanian inference in randomized experimentsarxiv.org
  28. Defining and Identifying Per-Protocol Effects in Randomized Trialspmc.ncbi.nlm.nih.gov
  29. Toward Causal Inference With Interferencepmc.ncbi.nlm.nih.gov
  30. Statistics 240 Lecture Notes: The randomization modelstat.berkeley.edu
  31. A Paradox From Randomization-Based Causal Inferencearxiv.org
  32. Permutation P-values Should Never Be Zero: Calculating Exact P-values When Permutations Are Randomly Drawngksmyth.github.io
  33. Exact testing with random permutationspmc.ncbi.nlm.nih.gov
  34. Completely randomized designsitl.nist.gov
  35. Compatibility policy — NumPy Manualnumpy.org
  36. Selection of Control, Randomization, Blinding, and Allocation Concealmentpmc.ncbi.nlm.nih.gov
  37. Covariate Balance in Simple, Stratified and Clustered Comparative Studiesarxiv.org
  38. Beyond the intention to treat in comparative effectiveness researchpmc.ncbi.nlm.nih.gov
  39. Randomized trials with missing outcome data: how to analyze and what to reportpmc.ncbi.nlm.nih.gov
  40. Generalizing causal inferences from randomized trials: counterfactual and graphical identificationarxiv.org
  41. How to randomizepmc.ncbi.nlm.nih.gov
  42. Great Ideas in Theoretical Computer Science: Course Notescs.cmu.edu
  43. Randomized Algorithms: Probability Basics and Randomized Quicksortcs.cmu.edu
  44. The Probabilistic Methodcs.cmu.edu
  45. Monte Carlo Approximationmath.cmu.edu
  46. Random Forestsmfm.uchicago.edu
  47. Compatibility policy — NumPy v2.2 Manualnumpy.org
  48. NEP 19 — Random number generator policynumpy.org
  49. Parallel random number generation — NumPy v2.2 Manualnumpy.org