置换检验

本文介绍了置换检验的概念,它是小样本情况下统计推断的重要方法。置换检验通过对数据进行全排列,构造经验分布来确定临界值,尤其适用于分布未知且样本量小的场景。文章详细阐述了置换检验的基本思想,通过实例展示了其在两样本均值比较、线性回归和GSEA富集分析中的应用,并与t检验进行了对比。

一、置换检验

显著性检验通常可以告诉我们一个观测值是否是有效的,例如检测两组样本均值差异的假设检验可以告诉我们这两组样本的均值是否相等(或者那个均值更大)。我们在实验中经常会因为各种问题(时间、经费、人力、物力)得到一些小样本结果,如果我们想知道这些小样本结果的总体是什么样子的,就需要用到置换检验。

Permutation test 置换检验是Fisher于20世纪30年代提出的一种基于大量计算(computationally intensive),利用样本数据的全(或随机)排列,进行统计推断的方法,因其对总体分布自由,应用较为广泛,特别适用于总体分布未知的小样本资料,以及某些难以用常规方法分析资料的假设检验问题与Bootstrap 类似,通过对样本进行顺序上的置换,重新计算统计检验量,构造经验分布,然后在此基础上求出P-value进行推断

二、置换检验基本思想

下面我们考虑两样本的均值比较问题来阐释置换检验的基本思想。

假设 (X1, …, Xn)和(Y1, … , Ym)分别来自分布F和G,现检验(原假设):
mean
对此,我们将统计量定义为:
stat
在原假设下,T应较小(甚至接近于0);在备择假设下,T应较大。

那么多大算大呢(显著)?也就是临界值如何确定呢?

对此,我们应设法寻求统计量T在原假设下的分布。

  • 若 F 和 G 是同方差的正态分布,则 T 可修正为Student’s t统计量。
  • 若正态假定不成立,又该如何操作呢?一种方法是依赖于中心极限定理确定 T 的渐近分布,而另一种方法则可考虑Bootstrap近似。但需明确的是,在样本量很小时,不论渐近分布还是Bootstrap近似都不是统计量精确分布的较好近似。

这就引出一个重要的问题:在样本量很小且分布未知时,能否确定统计量 T 在原假设下的临界值呢?

Fisher给出了肯定的答案:Permutation!

所谓Permutation或者置换也就是重新洗牌或者排列。

  1. 我们把两组数据(X1, …, Xn)和(Y1, … , Ym)合并在一起,得到Z = (Z1, … , ZN) = (X1, …, Xn, Y1, … , Ym),这里N = n + m。
  2. 然后将Z进行全排列,全排列的前 n 个数构成新的 (X1*, …, Xn*),余下的m个数据则构成新的(Y1*, …, Ym*)。
  3. 基于此,计算置换后的统计量T* = |mean(X*)-mean(Y*)|。共有N!个全排列,故得到N!个Ti*, i = 1, …, N!。
  4. 在原假设下,(X1, …, Xn)和(Y1, … , Ym)来自同一分布,故每一个 Ti* 的取值都是等可能的。由此可用 Ti* 的经验分位数来作为临界值。

根据经验分布依据的数据是否为所有可能的排列组合,可进一步将置换检验分为以下两种:

  • 精确检验:经验分布依据的数据为所有可能的排列组合,样本量的增加,获取所有可能排列的时间开销会非常大。
  • 蒙特卡洛模拟:从所有可能的排列中进行抽样,获得一个近似的检验。

三、应用

1. 简单小样本置换检验

考虑关于玩具的例子,假设数据(X1, X2, Y1)= (1, 9, 3),令T = |mean(X) - mean(Y)|。对此数据,传统的t检验和Bootstrap方法都是无法操作的,而置换检验却可以得到精确的p值。
置换
p值为P(T > tobs=2),故不能认为两组数据的均值不同。自然这个结论主要是因为样本量实在太少了。

2. 简单例子

假设我们设计了一个实验来验证加入某种生长素后拟南芥的侧根数量会明显增加。A组是加入某种生长素后,拟南芥的侧根数量;B是不加生长素时,拟南芥的侧根数量(均为假定值)。

  • A组侧根数量(共12个数据):24 43 58 67 61 44 67 49 59 52 62 50
  • B组侧根数量(共16个数据):42 43 65 26 33 41 19 54 42 20 17 60 37 42 55 28

我们来用假设检验的方法来判断生长素是否起作用。我们的零假设为:加入的生长素不会促进拟南芥的根系发育。在这个检验中,若零假设成立,那么A组数据的分布和B组数据的分布是一样的,也就是服从同个分布。

接下来构造检验统计量——A组侧根数目的均值同B组侧根数目的均值之差。

  • statistic:= mean(Xa)-mean(Xb)

对于观测值有 Sobs:=mean(Xa)-mean(Xb)=(24+43+58+67+61+44+67+49+59+52+62+50)/12-(42+43+65+26+33+41+19+54+42+20+17+60+37+42+55+28)/16=14

我们可以通过Sobs在置换分布(permutation distribution)中的位置来得到它的P-value。

Permutation test的具体步骤是:

  1. 将A、B两组数据合并到一个集合中,从中挑选出12个作为A组的数据(X’a),剩下的作为B组的数据(X’b)。
    Gourp:=24 43 58 67 61 44 67 49 59 52 62 50 42 43 65 26 33 41 19 54 42 20 17 60 37 42 55 28
    • 挑选出 X’a:=43 17 44 62 60 26 28 61 50 43 33 19
    • X’b:=55 41 42 65 59 24 54 52 42 49 37 67 67 20 42 582
  2. 计算并记录第一步中A组同B组的均值之差。Sper:=mean(X’a)-mean(X’b)= -7.8753.
  3. 对前两步重复999次(重复次数越多,得到的背景分布越”稳定“)
  4. 这样我们得到有999个置换排列求得的999个Sper结果,这999个Sper结果能代表拟南芥小样本实验的抽样总体情况。
    在这里插入图片描述

如上图所示,我们的观测值 Sobs=14 在抽样总体右尾附近,说明在零假设条件下这个数值是很少出现的。在permutation得到的抽样总体中大于14的数值有9个,所以估计的P-value是9/999=0.01

最后还可以进一步精确P-value结果(做一个抽样总体校正),在抽样总体中加入一个远大于观测值 Sobs=14的样本,最终的P-value=(9+1)/(999+1)=0.01。(为什么这样做是一个校正呢?自己思考:))结果表明我们的原假设不成立,加入生长素起到了促使拟南芥的根系发育的作用。

3. 在线性回归中的应用

置换检验是一种非常重要的统计思想,并不只应用于两样本或多样本比较问题当中。实际上,它和Bootstrap方法类似,也是通过重抽样得到统计量的复制,从而获得近似统计量的精确分布。和Bootstrap方法所采取的有放回抽样不同的是,置换方法可看作是不放回抽样。下面以置换检验在回归分析中的应用加以说明。

考虑一元线性回归模型
在这里插入图片描述
现基于置换方法对斜率 β1 进行检验H0: β1=0。相比传统方法,置换方法不需要正态性和同方差性假定

具体操作步骤如下:

第一步, 首先通过最小二乘方法对参数 β0, β1 进行估计,从而得到残差
在这里插入图片描述
,并对β1构造F型统计量
在这里插入图片描述

第二步, 对残差
在这里插入图片描述
进行随机置换得到置换的误差 e*。 令
在这里插入图片描述

第三步,基于 ( Xi, Yi*) 重新拟合回归模型,得到
在这里插入图片描述
并得到统计量的置换复制 T*

第四步,重复步骤2-3 B次,得到相应置换后的统计量
在这里插入图片描述
第五步,近似p值为
[公式]

4. GSEA富集分析

置换检验在GSEA的算法思路中是一个重要的组成部分:

  1. 当我们将Permutation type参数设置为1000后,就相当于我们从原始所有样本中随机抽取1000个置换后的样本。
  2. 接着,先计算这1000个置换样本的signal to noise scores(也可以是log2_Ratio_of_Classes等),然后再计算每个置换样本的在每个gene sets下的ES值,这个ES值就是置换检验中的统计量。
  3. 最后根据这1000个ES的经验分布,计算原始样本的ES值在这分布中的位置,也就是P值,来确定是否能推翻原假设

四、t 检验和置换检验的联系与区别

  1. 联系:
    • 计算了相同的 t 统计量。
  2. 区别:
    • t 检验将统计量与理论分布进行比较,置换检验将统计量与经验分布比较,根据统计量值的极端性判断是否有足够的理由拒绝零假设。

五、适用场景

  • 假定数据成正态分布并不合适;
  • 担心离群点的影响;
  • 对于标准的参数方法来说数据集太小。
<think> 首先,用户的问题是关于置换检验中p值的含义、计算方法及应用。参考了多个引用,我需要整合这些信息来提供准确、清晰的回答。 从引用中提取关键点: - 引用[1]解释了在置换检验中,p值的计算方法,并与t检验进行了比较。提到置换检验的p值可以通过排列样本数据来计算。 - 引用[2]讨论了p值在置信度问题中的作用,特别是在推荐系统中,但核心是关于假设检验。 - 引用[3]定义了置换检验(Permutation test),它的基本思想是利用样本数据的排列来推断,适用于总体分布未知的小样本数据。 - 引用[4]通过例子展示了置换检验的实际应用,比较了置换检验、t检验和Wilcoxon检验的p值结果。 用户的上一次问题和回答可能涉及系统级指令,但在这个对话中,用户的问题是独立的:用户想了解置换检验中p值的含义、计算方法及应用。所以,我应该基于引用直接回答这个问题。 回答结构: 1. **含义**:解释置换检验中p值的含义。 2. **计算方法**:描述如何计算置换检验的p值。 3. **应用**:讨论置换检验p值的应用场景和优势。 确保使用中文回答,并遵守系统级指令: - 行内数学表达式用$...$格式,例如自由度为$n$。 - 独立公式用$$...$$格式,单独成段。 - LaTeX语法正确。 - 生成相关问题。 - 在回答中引用的段落末尾添加引用标识。 含义:置换检验中p值表示在原假设成立的前提下,观察到当前统计量或更极端值的概率。这与传统假设检验中的p值类似,但计算方法不同。 计算方法:置换检验通过多次随机置换样本标签来计算经验p值。具体步骤: - 计算原始样本的统计量(如t值或均值差)。 - 随机置换样本标签多次(例如1000次),每次计算新统计量。 - p值是置换统计量大于或等于原始统计量的比例。 应用:置换检验适用于小样本、分布未知的情况,如生物学、医学、推荐系统等。 参考引用: - 引用[3]提到置换检验的基本思想。 - 引用[4]给出例子。 - 引用[1]和[2]提供额外背景。 生成相关问题:在回答末尾添加相关问题。 最终回答结构: - 开头简要介绍置换检验。 - 解释p值的含义。 - 详细描述计算方法,可能需要公式。 - 讨论应用。 - 添加相关问题。 </think> ### 置换检验中p值的含义、计算方法及应用 置换检验(Permutation test)是一种非参数统计方法,用于假设检验,特别适用于样本量小、总体分布未知或不符合传统参数检验假设的场景。它通过随机置换样本数据的标签(如分组标签)来构建经验分布,从而计算p值。以下从p值的含义、计算方法及应用三个方面详细解析,结合相关引用内容。 #### 1. p值的含义 在置换检验中,p值表示在原假设$H_0$成立的条件下(例如,两组数据无显著差异),观察到当前样本统计量(如均值差或t值)或更极端结果的概率。简言之,p值越小,拒绝原假设的证据越强。例如,p值≤0.05通常被视为统计显著,表明观测效应不太可能由随机波动引起。 置换检验的p值基于经验分布计算,不依赖特定分布假设(如t检验的正态分布假设),因此更稳健。引用[2]强调p值是解决“指标变化是真实效应还是随机波动”的核心工具[^2],而引用[3]指出置换检验对总体分布自由,特别适合小样本数据[^3]。例如,引用[1]对比了置换检验与t检验的p值:当t值为2.3986时,置换检验p值约为0.0258,与t检验的0.02378相近,但置换检验无需预先假设自由度[^1]。 #### 2. p值的计算方法 置换检验的p值计算依赖于重复随机置换样本标签,并构建统计量的经验分布。以下是基本步骤(以两组样本比较为例),使用数学公式和伪代码说明。 ##### 基本步骤 1. **定义原假设和统计量**:假设有两组样本$X$和$Y$,样本量分别为$n_X$和$n_Y$。原假设$H_0$:$X$和$Y$来自同一分布。选择统计量$T$(如均值差$T = \bar{X} - \bar{Y}$或t值)。 2. **计算原始统计量**:基于原始样本计算$T_{\text{obs}}$。 3. **随机置换标签**:将样本组合成一个整体$Z = \{X, Y\}$,随机打乱标签多次(例如$B = 1000$次),每次生成一个新分组$X^{(b)}$和$Y^{(b)}$。 4. **计算置换统计量**:对每次置换$b$,计算统计量$T^{(b)}$。 5. **计算经验p值**:p值为置换统计量中大于或等于$|T_{\text{obs}}|$(双尾检验)的比例: $$ p = \frac{1}{B} \sum_{b=1}^{B} I\left( |T^{(b)}| \geq |T_{\text{obs}}| \right) $$ 其中$I$是指示函数(满足条件时为1,否则为0)。 独立公式示例(双尾检验): $$ p = \frac{\text{置换统计量中满足 } |T^{(b)}| \geq |T_{\text{obs}}| \text{ 的次数}}{B} $$ ##### 关键点 - **精确置换检验**:当样本量小(如$n_X + n_Y < 20$)时,计算所有可能排列的组合数$C = \binom{n_X + n_Y}{n_X}$。p值为: $$ p = \frac{\text{所有排列中满足 } |T| \geq |T_{\text{obs}}| \text{ 的排列数}}{C} $$ 但计算量大,常用于小样本。 - **蒙特卡洛模拟**:当样本量大时,随机抽取$B$次置换(如$B=10000$)近似p值。蒙特卡洛方法引入随机性,p值可能有微小波动(如引用[4]中,精确置换p值0.5987 vs. 蒙特卡洛0.5942)[^4]。 - **参考代码示例**(Python): ```python import numpy as np def permutation_test(x, y, B=1000, stat='mean_diff'): # 计算原始统计量 if stat == 'mean_diff': t_obs = np.mean(x) - np.mean(y) # 组合样本 z = np.concatenate([x, y]) n = len(z) # 初始化置换统计量数组 t_perm = np.zeros(B) # 随机置换B次 for i in range(B): np.random.shuffle(z) # 随机打乱 x_perm = z[:len(x)] y_perm = z[len(x):] t_perm[i] = np.mean(x_perm) - np.mean(y_perm) # 计算双尾p值 p_value = np.mean(np.abs(t_perm) >= np.abs(t_obs)) return p_value # 示例:两组样本 x = np.array([1, 2, 3, 4]) y = np.array([5, 6, 7, 8]) print("置换检验p值:", permutation_test(x, y)) ``` 该代码输出置换检验的p值,基于蒙特卡洛模拟。 引用[3]描述了置换检验的基本思想:通过对样本进行置换,重新计算统计量,构造经验分布求p值[^3]。引用[4]通过示例说明置换检验p值可能比t检验更小(如student t检验p=0.596 vs. 置换检验~0.59),尤其在数据不符合参数检验假设时[^4]。 #### 3. p值的应用 置换检验p值广泛应用于多种领域,优势在于无需分布假设和样本量限制: - **推荐系统与A/B测试**:评估新算法指标(如点击率)的变化是否显著。引用[2]指出p值用于判断“指标变化是真实效应还是随机波动”,在推荐系统中适配假设检验场景[^2]。 - **生物学与医学研究**:处理小样本或非正态数据,如基因表达差异分析。置换检验能避免传统t检验的假阳性。 - **社会科学与工程**:当数据有异方差或异常值时,置换检验p值更可靠。例如,引用[4]显示置换检验在10个样本点时,p值接近t检验但更稳健[^4]。 优势总结: - **鲁棒性**:不依赖分布假设,适用于任意统计量。 - **精度**:在小样本中,p值计算更准确(如引用[1]提到置换检验p值近似t检验临界值)[^1]。 - **局限性**:计算耗时,大样本需蒙特卡洛模拟;p值解释需谨慎(需结合效应大小和置信区间)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值