数据分析:置换检验Permutation Test

2024-06-24 05:04

本文主要是介绍数据分析:置换检验Permutation Test,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎大家关注全网生信学习者系列:

  • WX公zhong号:生信学习者
  • Xiao hong书:生信学习者
  • 知hu:生信学习者
  • CDSN:生信学习者2

介绍

置换检验是一种非参数统计方法,它不依赖于数据的分布形态,因此特别适用于小样本数据集,尤其是当样本总体分布未知或不符合传统参数检验的假设条件时。置换检验的基本思想是通过随机置换样本来评估观察到的统计量是否显著不同于随机情况下的预期值。最初真正认识置换检验是从PERMANOVA分析开始的,PERMANOVA的原理是:

  1. 原始统计量的获取: 首先计算组间距离的平方和与组内距离的平方和之间的差值。这个差值在统计学中类似于F分布统计量,用于评估组间差异的显著性。
  2. 随机置换样本: 接下来,通过随机抽取样本并重新分组,重复计算上述类似F分布的统计量。这个过程需要进行多次,例如1000次,以模拟在随机条件下可能得到的各种统计量值。
  3. 统计量分布的构建与评估: 将第二步中重复计算得到的1000个统计量值组成一个分布。然后,观察原始统计量值在这个分布中的位置。如果在显著性水平(例如0.05)的两端,即表示原始统计量值在随机情况下出现的概率较低,从而可以认为存在显著差异;如果不是,则不能拒绝原假设,即认为没有显著差异。

置换检验的应用:

置换检验方法通常用于小样本组间的比较,它不对样本的总体分布提出要求。这种方法特别适用于那些样本量较小,以至于无法使用传统的参数检验(如t检验)的情况。然而,如果使用基于简单假设检验的统计量,例如在评估两组数据差异时,首先通过t检验获得原始t统计量,然后通过置换检验重新抽取样本并计算t统计量,最后评估原始t统计量在由置换得到的t统计量分布中的位置,此时就需要考虑数据的分布特性。这种方法允许研究者在不依赖于数据分布的前提下,对统计显著性进行更为稳健的评估。

加载R包

library(tidyverse)
library(multcomp)
library(lmPerm)# rm(list = ls())
options(stringsAsFactors = F)
options(future.globals.maxSize = 1000 * 1024^2)

小样本数据案例

现有两组数据,一组是对照组,一组是实验组,它们的样本量分别是3和5,通过以下数据是否能够证实实验处理可以改善结果?

  • 对照组:73,75,78

  • 实验组:68,69,80,76,82

解题思路:T检验或Wilcox检验一般要求任意一组样本量均大于等于5较为合适,且两组样本量相差较小(非平衡数据)。该问题样本量较小,普通的假设检验不适合,可以采用置换检验(两组平均值的差值作为统计量)。具体步骤:

  1. 第一步,零假设是实验组和对照组没有任何差别;
  2. 第二步,获取原始统计量。先计算两组平均值的差值作为统计量, M 0 = 0.333 M_{0} = 0.333 M0=0.333
  3. 第三步,对照组和实验组混合后随机抽取样本组成A和B再计算两组平均值的差值,重复该过程1000次,上述1000次得到的数值组成统计量分布 M 1000 M_{1000} M1000
  4. 第四步,计算 M 1000 M_{1000} M1000大于 M 0 = 0.333 M_{0} = 0.333 M0=0.333的个数 n n n,概率 P = n / 1000 P=n/1000 P=n/1000。若 P < 0.05 P < 0.05 P<0.05则说明实验处理有助于提升结果,否则接受零假设。

自己撰写脚本

control <- c(73, 75, 78)
treatment <- c(68, 69, 80, 76, 82)permute_fun <- function(x1, x2, times = 1000) {# x1 = control# x2 = treatment# times = 1000M0 <- mean(x1) - mean(x2)x <- c(x1, x2)M_distri <- c()for (i in 1:times ) {x1_new <- sample(x, length(x1))x2_new <- sample(x, length(x2))M_temp <- mean(x1_new) - mean(x2_new)M_distri <- c(M_distri, M_temp)}dat <- data.frame(Time = 1:times,Value = M_distri)p_value <- length(M_distri[M_distri > M0]) / length(M_distri)p_label <- paste0("Pvalue = ", p_value, " (M1000 > M0)")pl <- ggplot(dat, aes(x = Value)) + geom_histogram(aes(y=..density..), binwidth=.5, color = "black", fill = "white") +geom_density(alpha=.2, fill="#FF6666") +scale_x_continuous(expand = c(0, 0)) +scale_y_continuous(expand = c(0, 0)) +labs(title = "Distribution of M statistics",x = "Mean(group1) - Mean(group2)") +geom_vline(xintercept = M0, color = "red", linetype = "dashed", linewidth = 1) +  annotate("text", label = p_label, x = 4, y = 0.14, size = 4) +theme_bw()return(pl)
}permute_fun(x1 = control, x2 = treatment)

在这里插入图片描述

结果:Pvalue > 0.05,说明实验处理对结果没有显著提升。

内置函数

除了自己撰写脚本外,还可以通过R包内置的函数实现两组置换检验。

EnvStats::twoSamplePermutationTestLocation(x = control,y = treatment,fcn = 'mean',alternative = 'greater',mu1.minus.mu2 = 0,paired = FALSE,exact = FALSE,n.permutations = 1000,seed = 123)
Results of Hypothesis Test
--------------------------Null Hypothesis:                 mu.x-mu.y = 0Alternative Hypothesis:          True mu.x-mu.y is greater than 0Test Name:                       Two-Sample Permutation TestBased on Differences in Means(Based on SamplingPermutation Distribution1000 Times)Estimated Parameter(s):          mean of x = 75.33333mean of y = 75.00000Data:                            x = control  y = treatmentSample Sizes:                    nx = 3ny = 5Test Statistic:                  mean.x - mean.y = 0.3333333P-value:                         0.497

结果:Pvalue > 0.05,说明实验处理对结果没有显著提升。

总结

  • 置换检验思想不仅仅可以用于参数未知和分布未知的小样本数据,也可以用于大样本数据(计算代价较高);

  • 置换检验也适合组间样本量不平衡的数据。

这篇关于数据分析:置换检验Permutation Test的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1089237

相关文章

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

Golang test编译使用

创建文件my_test.go package testsimport "testing"func TestMy(t *testing.T) {t.Log("TestMy")} 通常用法: $ go test -v -run TestMy my_test.go=== RUN TestMyTestMy: my_test.go:6: TestMy--- PASS: TestMy (0.

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

2024年高教社杯数学建模国赛最后一步——结果检验-事关最终奖项

2024年国赛已经来到了最后一天,有必要去给大家讲解一下,我们不需要过多的去关注模型的结果,因为模型的结果的分值设定项最多不到20分。但是如果大家真的非常关注的话,那有必要给大家讲解一下论文结果相关的问题。很多的论文,上至国赛优秀论文下至不获奖的论文并不是所有的论文都可以进行完整的复现求解,大部分数模论文都为存在一个灰色地带。         白色地带即认为所有的代码均可运行、公开

mybatis if test 之 0当做参数传入出问题

首先前端传入了参数 if(StringUtils.isNotBlank(status)){requestParam.setProperty("status", Integer.parseInt(status));}List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(req

win7下安装Canopy(EPD) 及 Pandas进行python数据分析

先安装好canopy,具体安装版本看自己需要那种,我本来是打算安装win764位的,却发现下载总是出现错误,无奈只能下载了32位的! https://store.enthought.com/downloads/#default 安装好之后,参考如下连接,进行检验: 之后再根据下面提供的连接进行操作,一般是没问题的! http://jingyan.baidu.com/article/5d6

js正则表达式test方法的问题

今天在网上碰到一个帖子,写了一个关于Regex的奇怪现象,(文章来源http://www.php100.com/html/webkaifa/javascript/2007/0109/1866.html) 代码如下 <script type="text/javascript"><!--var re = /^\d+(?:\.\d)?$/ig; alert(re.test('112.3'

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术,在大数据分析中,是一个非常重要的关键部分。我们前期通过数据获取,数据处理,数据分析,得出结果,这些过程都是比较抽象的。如果是非数据分析专业人员,很难清楚我们这些工作,到底做了些什么事情。即使是专业人员,在不清楚项目,不了解业务规则,不熟悉技术细节的情况下。要搞清楚我们的大数据分析,这一系列过程,也是比较困难的。 我们在数据处理和分析完成后,一般来说,都需要形成结论报告。怎样让大

医院检验系统LIS源码,LIS系统的定义、功能结构以及样本管理的操作流程

本文将对医院检验系统LIS进行介绍,包括LIS系统的定义、功能结构以及样本管理的操作流程方面。 LIS系统定义 LIS系统(Laboratory Information System)是一种专门为临床检验实验室开发的信息管理系统,其主要功能包括实验室信息管理、样本管理、检验结果管理、质量控制管理、数据分析等。其主要作用是管理医院实验室的各项业务,包括样本采集、检验、结果录入和报告生成等。Li