当前位置: 首页 > news >正文

高维中介数据: 联合显着性(JS)检验法

摘要

中介分析在流行病学和临床试验中越来越受到关注。在现有的中介分析方法中,流行的联合显着性(JS)检验会产生过于保守的 I 类错误率,因此功效较低。但是,如果在使用 JS 测试高维中介假设时,可以准确控制族错误率 (FWER) 和错误发现率 (FDR)。分析的核心是基于估计三个分量零假设的比例并推导零 p 值的相应混合分布。

一言以蔽之:计算高维中介假设的校正后的p值

JS-混合方法

新提出的JS-混合方法(joint significance (JS) test) 通过估计三种类型组合零假设的比例来解决JS均匀方法在高维中介假设测试中的过度保守问题。这种方法衍生出控制家庭错误率(FWER)或假发现率(FDR)的显著性规则。通过理论证明、广泛的模拟实验和两个数据例子,JS-混合方法被证明是稳健的,适用于稀疏和密集替代假设,并且在FWER和FDR的控制上比JS-均匀方法提供了更令人满意的结果。特别是,当使用有限样本校正的JS-混合方法时,与基于渐近混合零分布的方法相比,其经验FWER更接近目标的0.05,从而改善了控制效果。

种类型组合零假设的比例

通过估计与三种类型(H00, H01, H10)相关的零假设在所有J个假设中的比例,得到关于这些零假设在数据集中的相对频率的信息。这些估计对于理解和控制假阳性率(FDR)以及在假设检验中区分真正和虚假发现至关重要。π01, π10, 和 π00 分别表示三种类型组合零假设(即,H01, H10, 和 H00)在J个假设中的比例。通过最大化似然函数分别得到αj 和 βj 的估计p1j 和 p2j,由于模型允许它们的似然性可以分解,所以这些估计是独立的,这有助于更准确地估计pmax,j 在零假设H0j中的分布

实现方法

以DNA甲基化在癌症病因中的作用为例,介绍了两个前列腺癌研究案例。以供自学。

浏览关键函数

安装、导入包

# 安装hdmt包
install.packages("HDMT")
# 加载hdmt包
library(HDMT)

导入数据

数据格式:数据集是一个矩阵,其中包含候选中介变量的两列 p 值。第 1 列包含用于测试暴露是否与中介相关的 p 值 (alpha!=0)。第 2 列包含用于测试中介变量是否与暴露调整后的结果相关的 p 值 (beta!=0),需要先使用各类中介方法进行估计。

# 读取数据
data(snp_input)
# 查看数据
head(snp_input)
#         [,1]        [,2]
# [1,] 0.1056981 0.253803463
# [2,] 0.9986436 0.862830855
# [3,] 0.1006569 0.726600653
# [4,] 0.1731411 0.327851970
# [5,] 0.8900695 0.001496449
# [6,] 0.8156905 0.087064991
# 查看数据结构
str(snp_input)
#  num [1:69602, 1:2] 0.106 0.999 0.101 0.173 0.89 ...
input_pvalues <- snp_input# 从输入数据中随机抽取10%的数据【节省时间】
input_pvalues <- input_pvalues[sample(1:nrow(input_pvalues),size=ceiling(nrow(input_pvalues)/10)),]
str(input_pvalues)
# num [1:6961, 1:2] 0.37146 0.00373 0.56406 0.4913 0.78594 ... 

估计三个分量零值比例备用

nullprop <- null_estimation(input_pvalues)
# $alpha10
# [1] 0.06608246
# 
# $alpha01
# [1] 0.4640138
# 
# $alpha00
# [1] 0.4692812
# 
# $alpha1
# [1] 0.933295
# 
# $alpha2
# [1] 0.5353637

计算FDR校正后的p值

# 使用三个分量零值比例,基于所提出的联合显着性混合零方法(JS-mixture)计算估计的逐点 FDR
fdr <- fdr_est(nullprop$alpha00,nullprop$alpha01,nullprop$alpha10, nullprop$alpha1,nullprop$alpha2,input_pvalues,exact=0)
str(fdr)
# num [1:6961] 0.954 0.966 0.957 0.956 0.917 ...

结果解读:如果一个p值对应的FDR小于0.05,那么这个结果被认为是在FDR控制下的显著发现,表明存在关联

 计算FWE校正后的p值的cutoff

# 使用估计的混合零分布计算 p-max 的 FWER 截止值cutoff
fwercut0 <- fwer_est(nullprop$alpha10,nullprop$alpha01,nullprop$alpha00,nullprop$alpha1, nullprop$alpha2,input_pvalues,alpha=0.05,exact=0)   # exact= 0:不估计CDF的近似值
fwercut0
# [1] 1.491624e-05fwercut1 <- fwer_est(nullprop$alpha10,nullprop$alpha01,nullprop$alpha00,nullprop$alpha1, nullprop$alpha2,input_pvalues,alpha=0.05,exact=1) # exact = 1:非参数估计 CDF 的精确方法
fwercut1
# [1] 6.187122e-05

结果解读:fwercut0 是使用估计的混合零分布计算的 p-max 的 FWER 截止值,其中 exact=0 表示使用了不估计累积分布函数(CDF)的近似方法。 在显著性水平 alpha=0.05 下,为了控制家庭错误率(FWER),当候选中介变量的p值小于或等于这个值(即1.354997e-05)时,我们将认为关联性检测达到统计显著性。同理解读fwercut1

作图

用途:观察经过JS 后,校正后的p值被“拉高”了,即更容易达到统计学显著,提高了功效

# 通过上面计算的三个分量零值比例,并使用近似或精确方法计算 pmax 的估计混合零分布分位数--------
pnull <- adjust_quantile(nullprop$alpha00,nullprop$alpha01,nullprop$alpha10,nullprop$alpha1, nullprop$alpha2,input_pvalues,exact=0) # exact=0,推导混合零分布时,不估计CDF的近似方法
str(pnull)
# num [1:6961] 0.000298 0.000596 0.000894 0.001192 0.001489 ...# 使用预期分位数绘制 p-max 的校正分位数-分位数图---------
pmax <- apply(input_pvalues,1,max) # 计算每行的最大值
pnull1 <- adjust_quantile(nullprop$alpha10,nullprop$alpha01,nullprop$alpha00, nullprop$alpha1,nullprop$alpha2,input_pvalues,exact=1) # exact=1,在推导混合零分布时,非参数估计 CDF 的精确方法correct_qqplot(pmax,pnull1)  #如下图展示

参考文献

A Multiple-Testing Procedure for High-Dimensional Mediation Hypotheses: Journal of the American Statistical Association: Vol 117 , No 537 - Get Access (tandfonline.com)icon-default.png?t=N7T8https://www.tandfonline.com/doi/full/10.1080/01621459.2020.1765785​​​​​​

 

相关文章:

高维中介数据: 联合显着性(JS)检验法

摘要 中介分析在流行病学和临床试验中越来越受到关注。在现有的中介分析方法中&#xff0c;流行的联合显着性&#xff08;JS&#xff09;检验会产生过于保守的 I 类错误率&#xff0c;因此功效较低。但是&#xff0c;如果在使用 JS 测试高维中介假设时&#xff0c;可以准确控制…...

冒泡排序 和 qsort排序

目录 冒泡排序 冒泡排序部分 输出函数部分 主函数部分 总代码 控制台输出显示 总代码解释 冒泡排序优化 冒泡排序 主函数 总代码 代码优化解释 qsort 排序 qsort 的介绍 使用qsort排序整型数据 使用qsort排序结构数据 冒泡排序 首先&#xff0c;我先介绍我的冒泡…...

asp.net core webapi接收application/x-www-form-urlencoded和form-data参数

框架&#xff1a;asp.net core webapiasp.net core webapi接收参数&#xff0c;请求变量设置 目录 接收multipart/form-data、application/x-www-form-urlencoded类型参数接收URL参数接收上传的文件webapi接收json参数完整控制器&#xff0c;启动类参考Program.cs 接收multipar…...

程序环境和预处理(2)

文章目录 3.2.7 命名约定 3.3 #undef3.4 命令行定义3.5 条件编译3.6 文件包含3.6.1 头文件被包含的方式3.6.2 嵌套文件包含 4. 其他预处理指令 3.2.7 命名约定 一般来讲函数和宏的使用语法很相似&#xff0c;所以语言本身没法帮我们区分二者&#xff0c;那我们平时的一个习惯是…...

Redis安全加固策略:绑定Redis监听的IP地址 修改默认端口 禁用或者重命名高危命令

Redis安全加固策略&#xff1a;绑定Redis监听的IP地址 & 修改默认端口 & 禁用或者重命名高危命令 1.1 绑定Redis监听的IP地址1.2 修改默认端口1.3 禁用或者重命名高危命令1.4 附&#xff1a;redis配置文件详解&#xff08;来源于网络&#xff09; &#x1f496;The Beg…...

Vuepress的使用

介绍 将markdown静态资源转换成html。 动态资源的转换还有很多&#xff0c;为什么要使用Vuepress&#xff1f; 目录分析 项目配置 详情 具体配置请看文档 插件配置 vuepress-theme-vdoing 主题插件 npm install vuepress-theme-vdoing -D先安装依赖配置主题 使用vuep…...

docker安装php7.4安装

容器 docker pull centos:centos7 docker run -dit -p9100:9100 --name“dade” --privilegedtrue centos:centos7 /usr/sbin/init 一、安装前库文件和工具准备 1、首先安装 EPEL 源 yum -y install epel-release2.安装 REMI 源 yum -y install http://rpms.remirepo.net/en…...

曲线生成 | 图解Dubins曲线生成原理(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 什么是Dubins曲线&#xff1f;2 Dubins曲线原理2.1 坐标变换2.2 单步运动公式2.3 曲线模式 3 Dubins曲线生成算法4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、…...

「Vue3系列」Vue3 组件

文章目录 一、Vue3 组件二、Vue3 组件实例三、Vue3 官方组件四、Vue3 常用组件五、相关链接 一、Vue3 组件 Vue3 是 Vue.js 的最新版本&#xff0c;它引入了许多新的特性和改进。在 Vue3 中&#xff0c;组件是构建应用程序的核心部分&#xff0c;它们可以重用、组合和嵌套。Vu…...

Git实战(2)

git work flow ------------------------------------------------------- ---------------------------------------------------------------- 场景问题及处理 问题1&#xff1a;最近提交了 a,b,c,d记录&#xff0c;想把b记录删掉其他提交记录保留&#xff1a; git reset …...

Java ElasticSearch-Linux面试题

Java ElasticSearch-Linux面试题 前言1、守护线程的作用&#xff1f;2、链路追踪Skywalking用过吗&#xff1f;3、你对G1收集器了解吗&#xff1f;4、你们项目用的什么垃圾收集器&#xff1f;5、内存溢出和内存泄露的区别&#xff1f;6、什么是Spring Cloud Bus&#xff1f;7、…...

微信小程序通过服务器控制ESP8266

声明 本文实现了ESP8266、微信小程序、个人服务器三者互相通信,并且小程序能发消息给微信用户 本文所有代码和步骤均为亲测有效 以下代码均为从网上搜索到后本人加以改动的,并非完全原创,若作者希望删除可联系我 ESP8266与个人服务器通信 ESP8266配置 通过串口通信使用…...

题目 1434: 蓝桥杯历届试题-回文数字

题目描述: 观察数字&#xff1a;12321&#xff0c;123321 都有一个共同的特征&#xff0c;无论从左到右读还是从右向左读&#xff0c;都是相同的。这样的数字叫做&#xff1a;回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求&#xff1a; 该数字的各个数位…...

访问修饰符、Object(方法,使用、equals)、查看equals底层、final--学习JavaEE的day15

day15 一、访问修饰符 含义&#xff1a; 修饰类、方法、属性&#xff0c;定义使用的范围 理解&#xff1a;给类、方法、属性定义访问权限的关键字 注意&#xff1a; ​ 1.修饰类只能使用public和默认的访问权限 ​ 2.修饰方法和属性可以使用所有的访问权限 访问修饰符本类本包…...

『大模型笔记』最大化大语言模型(LLM)的性能(来自OpenAI DevDay 会议)

最大化大语言模型(LLM)的性能(来自OpenAI DevDay 会议) 文章目录 一. 内容介绍1.1. 优化的两个方向(上下文优化和LLM优化)1.2. 提示工程:从哪里开始1.3. 检索增强生成:拓展知识边界1.4. 微调:专属定制二. 参考文献一. 内容介绍 简述如何以可扩展的方式把大语言模型(LLMs)…...

深度学习:开启你的AI探索之旅

在这个信息爆炸的时代,人工智能(AI)已经渗透到我们生活的方方面面,从智能语音助手到自动驾驶汽车,从智能推荐系统到医疗影像诊断,AI的身影无处不在。而深度学习,作为AI领域的一大核心技术,更是引领着这场科技革命的浪潮。那么,如何入门深度学习,踏上这趟充满挑战与机…...

第十四届蓝桥杯大赛B组 JAVA 蜗牛 (递归剪枝)

题目描述&#xff1a; 这天&#xff0c;一只蜗牛来到了二维坐标系的原点。 在 x 轴上长有 n 根竹竿。它们平行于 y 轴&#xff0c;底部纵坐标为 0&#xff0c;横坐标分别为 x1, x2, …, xn。竹竿的高度均为无限高&#xff0c;宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的底部也…...

基于React低代码平台开发:构建高效、灵活的应用新范式

文章目录 一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践&#xff1a;基于React》编辑推荐内容简介作者简介目录前言为什么要写这本书 读者对象如何阅读本书 随着数字化转型的深入&…...

在Linux部署Docker并上传静态资源(快速教程)

Nginx快速上手 安装必要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2设置Docker仓库 通过以下命令添加Docker的官方仓库到yum源中&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安装Dock…...

【场景测试用例】带有广告图案的纸杯

从以下几个纬度出发考虑&#xff1a; 功能 是否可以承载液体&#xff0c;热水&#xff0c;温水&#xff0c;冰水是否可以承载非液体类的物品容量&#xff0c;空杯&#xff0c;半杯&#xff0c;满杯 UI 广告图案设计是否合理 性能 最大承受的容量内不漏水(负载测试)最大承受的温…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...