阈值回归模型(Threshold Regression Model)及R实现
阈值回归模型是一类回归模型,其中预测变量与结果以阈值依赖的方式相关联。通过引入一个阈值参数(也称为转折点),阈值回归模型提供了一种简单而优雅、可解释的方法来建立结果和预测变量之间某些非线性关系的模型。在生物医学领域中,阈值回归模型有许多应用,如人类疫苗研究中免疫学检测数据分析,在这里感染风险和免疫反应生物标志物之间存在着依赖于阈值的关联。
阈值回归模型可以采用许多形式,具体取决于在阈值处发生的情况。例如,下图展示了四种类型的阈值效应:步进(step)、铰链(hinge)、分段(segmented)和“stegmented”。步进和铰链模型是两种最基本的阈值效应形式,在阈值之前斜率为零。分段模型通过允许阈值之间的非零斜率来推广铰链模型;而分段模型,顾名思义,可以被视为步进和分段模型的融合。
四种阈值回归模型的方程如下:
这里,e是阈值参数,x是具有阈值效应的预测变量,z表示额外的预测变量。当x > e时,I(x > e) = 1;否则为0。而(x - e)+表示铰链函数,在x > e时等于x - e,在其他情况下等于0。阈值回归模型与分段分析相关但不同,后者处理时间序列数据,并主要关注在自然轴线(如时间或染色体上的位置)上检测结构性变化。许多分段分析问题并非回归问题。在分段分析回归问题中,将时间序列数据按照转折点划分成区间;允许结果和所有预测因子之间的关系在各个区间内发生改变。换句话说,在改变点分析回归问题中同时对所有预测因子进行了阈值处理。另一方面,阈值回归模型基本上涉及建立非线性模型。从这个角度来看,阈值回归模型更类似于其他非线性回归方法(例如:拟合样条法)。
阈值模型和样条模型都能够建立结果和预测因子之间的非线性关系, 它们主要差异在于灵活性和易解释程度。例如,以铰链模型和具有两个自由度的自然三次样条为例。两者都有两个自由度;在铰链模型中,两个相关参数是β1和e。与铰链模型相比,样条模型更加灵活,但当这两种模型都能够提供合理的拟合时,铰链模型更容易解释。
虽然有许多软件程序可用于变点分析和回归样条模型,但适用于阈值回归模型的软件相对较少。目前最好的实现是R包segmented,它支持铰链和分段模型,并允许多个阈值。chngpt包通过提供三个独特贡献来补充segmented包:
(1) 它支持所有四种类型的阈值效应,并支持在受到阈值处理的预测因子和未经过阈值处理的预测因子之间进行交互项建模;
(2) segmented中使用了非平滑准则函数一级近似搜索方法,而chngpt提供两种替代搜索方法:精确法优化准则函数以获得全局最优解;平滑法利用基于逻辑函数平滑函数来近似准则函数。精确法保证找到全局最优解,但当样本量很大时可能会很慢;而像segmented一样快速但可能只能找到局部最优解;
(3) segmented不提供考虑阈值估计不确定性的置信区间,而chngpt可以提供这些信息。后者还包括model robust置信区间,即使数据生成模型并非真正的阈值模型,也旨在提供适当的覆盖率。
chngpt包的使用方法如下:
#安装chngpt包
install.packages(‘chngpt’)
library(‘chngpt’)
1. 线性回归模型
fit=chngptm(formula.1=Volume~1, formula.2=~Girth, family="gaussian", data=trees, type="segmented", var.type="bootstrap", weights=NULL)
formula.2 and formula.1: 阈值变量及模型的剩余参数
type: 阈值模型的类别
var.type: 使用bootsratp方式计算置信区间
weights: 可估计权重
est.method defaults to fastgrid and is recommended
summary(fit)
plot(fit)
结果如Figure 1所示。
Figure 1: (top) 木材体积与周长的散点图。灰色的线表示虚线的分段模型。 (bottom) 子模型的对数似然与阈值参数的关系。
为验证是否有转折点,运行以下代码:
test=chngpt.test(formula.null=Volume~1, formula.chngpt=~Girth, trees, type="segmented", family="gaussian")
test
第一行给出进行的测试类型是默认的最大似然比测试,候选转折点为16。
2. Logistic回归模型
估计MTCT数据集中NAb_SF162L的铰链型变化点的逻辑回归模型。
library(splines)
fit=chngptm(formula.1=y~birth, formula.2=~NAb_SF162LS, family="binomial", dat.mtct, type="hinge", est.method="smoothapprox", var.type="robust", aux.fit=glm(y~birth + ns(NAb_SF162LS,3), dat.mtct, family="binomial"), weights=NULL)
formula.2 and formula.1:阈值变量和模型的其他部分
type:阈值模型的类型
est.method:推荐使用smoothapprox
var.type:建议采取稳健的置信区间
aux.fit:稳健方差估计所需的
weights:提供权重值
summary(fit)
为了验证是否有change point,运行以下函数:
test=chngpt.test(formula.null=y~birth, formula.chngpt=~NAb_SF162LS, dat.mtct, type="hinge", family="binomial", main.method="score")
test
第一行给出进行的测试类型是默认的最大似然比测试,候选转折点为7.3734。
该方法被多项研究使用,如一项探索维生素D补充后的临床和生物标志特征的研究中(Clinical and biomarker modifiers of vitamin D treatment response: the Multi-Ethnic Study of Atherosclerosis),使用阈值回归模型发现,在25(OH)D浓度为21 ng/mL(95%CI:13,31)时,其与PTH的变化有分段阈值效应。
在四种类型的阈值模型中进行选择是一个复杂的问题。我们可以把这个问题分为两部分:(i) 阈值处是否发生跳跃;(ii) 斜率参数空间是否应该受到限制。第一个问题特别具有挑战性。对于某些过程,例如染色体上重组事件的发生,自然会出现跳跃。对于其他许多过程,真正的基本过程可能不是不连续的;尽管如此,不连续的阈值模型可以是对预测值的小范围内响应的突然转变的有用近似。使用何种模型的决定应该是基于统计学证据和科学考虑的结合。该种方法为非线性关联中阈值的寻找提供了一种切实可行的方案。
参考文献:
1. Fong Y, Huang Y, Gilbert PB, Permar SR. chngpt: threshold regression model estimation and inference. BMC Bioinformatics. 2017 Oct 16;18(1):454. doi: 10.1186/s12859-017-1863-x
2. Hsu S, Prince DK, Williams K, Allen NB, Burke GL, Hoofnagle AN, Li X, Liu KJ, McClelland RL, Michos ED, Psaty BM, Shea SJ, Rice KM, Rotter JI, Siscovick D, Tracy RP, Watson KE, Kestenbaum BR, de Boer IH. Clinical and biomarker modifiers of vitamin D treatment response: the Multi-Ethnic Study of Atherosclerosis. Am J Clin Nutr. 2022 Mar 4;115(3):914-924. doi: 10.1093/ajcn/nqab390
搜索公众号“单细胞学会”,获取更多信息。
相关文章:
阈值回归模型(Threshold Regression Model)及R实现
阈值回归模型是一类回归模型,其中预测变量与结果以阈值依赖的方式相关联。通过引入一个阈值参数(也称为转折点),阈值回归模型提供了一种简单而优雅、可解释的方法来建立结果和预测变量之间某些非线性关系的模型。在生物医学领域中…...
无人机通信协议MAVLink简介
Micro Air Vehicle Link(简称MAVLink)用于无人系统(例如,机器人、无人机、无人车、无人船和无人潜航器)。它定义了一组无人系统和地面站之间的消息交换规则。此协议广泛用于无人驾驶系统中,特别是ArduPilot和PX4无人驾驶系统,MAVLink协议提供了强大的功能,不仅用于监视…...
【办公自动化】用Python批量从上市公司年报中获取主要业务信息
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
【sizeof()的使用方式】简洁明了初识C语言
sizeof()介绍 sizeof其实仅仅只是一个操作符,我们要注意它并不是一个函数,他就类似与常见的、、-......的操作符,并且sizeof是一个单目操作符。sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为…...
10. 正则表达式匹配
10. 正则表达式匹配 class IsMatch:"""10. 正则表达式匹配https://leetcode.cn/problems/regular-expression-matching/description/"""def solution(self, s: str, p: str) -> bool:m, n len(s), len(p)memo [[-1] * n for _ in range(m)]…...
[Unity]GPU Instancing 无效的原因
参考: GPU Instancing 深入浅出-基础篇(1) - 知乎 Unity GPU Instance踩坑记录_为什么gpuinstance画不出图像_拯救人类的技术宅的博客-CSDN博客 GPUInstancing在真机上失效问题_安卓手机 unity gpu instancing报错__hiJ的博客-CSDN博客 补…...
2023 年前端编程 NodeJs 包管理工具 npm 安装和使用详细介绍
npm 基本概述 npm is the world’s largest software registry. Open source developers from every continent use npm to share and borrow packages, and many organizations use npm to manage private development as well. npm 官方网站:https://www.npmjs.…...
ptmalloc源码分析 - Top chunk的扩容函数sysmalloc实现(09)
目录 一、sysmalloc函数基本分配逻辑 二、强制try_mmap分配方式 三、非主分配区分配的实现 1. 设置老的Top chunk的参数 2. 尝试使用grow_heap函数 3. 尝试使用new_heap函数 4. 尝试使用try_mmap方式 四、主分配区分配的实现 1. 设置Top扩容的size值 2. brk分配成功的…...
[BJDCTF2020]ZJCTF,不过如此 preg_replace /e模式漏洞
目录 preg_replace的/e模式 为什么要变为 {${phpinfo()}} 另一个方法 版本 <?phperror_reporting(0); $text $_GET["text"]; $file $_GET["file"]; if(isset($text)&&(file_get_contents($text,r)"I have a dream")){echo &qu…...
C++day4
1、仿照string类,完成myString 类 #include <iostream> #include <cstring>using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10…...
【LeetCode-简单题】541. 反转字符串 II
文章目录 题目方法一:双指针 题目 方法一:双指针 题目的意思: 通俗一点说,每隔k个反转k个,末尾不够k个时全部反转; 需要注意右边界的取值 int r Math.min(l k -1,n-1);//取右边界与n-1的最小值 确定边界…...
Linux服务使用宝塔面板搭建网站,并发布公网访问
文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…...
代码随想录算法训练营19期第48天
198.打家劫舍 视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili 代码随想录 初步思路:动态规划。 总结: dp[i]:考虑下标i(包括i)…...
【校招VIP】产品项目分析之竞品分析
考点介绍: 在产品经理的日常工作当中,经常需要针对某个具体问题或特定功能点进行竞品调研;竞品分析是结构化分析方法论,核心思想是通过对比的方法寻找最佳的解决方案。 产品项目分析之竞品分析-相关题目及解析内容可点击文章末尾…...
【JavaScript内置对象】Date对象,从零开始
【JavaScript内置对象】Date对象,从零开始 时间的表示方式 时间表示的基本概念 最初,人们是通过观察太阳的位置来决定时间的,但是这种方式有一个最大的弊端就是不同区域位置大家使用的时间是不一致的。 相互之间没有办法通过一个统一的时间…...
idea启动缓慢解决办法
idea启动缓慢解决办法 文章目录 idea启动缓慢解决办法前言一、修改内存大小二、虚拟机运行大小三、插件禁用1、安卓相关2、构建工具3、Code Coverage 代码覆盖率4、数据库5、部署工具6、html和xml7、ide settings8、JavaScript框架和工具9、jvm框架10、Keymap快捷键映射11、kot…...
App测试中ios和Android有哪些区别呢?
App测试中,大家最常问到的问题就是:ios和 Android有什么区别呢? 在Android端,我们经常会使用 JavaScript、 HTML、 CSS等技术来编写一些简单的 UI界面。而 iOS端,我们经常会使用到 UI设计、界面布局、代码结构、 API等…...
Flink JobManager的高可用配置
背景 在flink执行中,jobManager是一个负责执行流式应用执行和检查点生成的组件,一旦发生故障,那么其负责的所有应用都会被取消,所以我们需要对JobManager配置高可用的模式 JobManager高可用配置 配置JobManager的高可用需要使用…...
为什么Token手动添加到请求的Header中,通常使用“Authorization“字段?
为什么Token手动添加到请求的Header中,通常使用"Authorization"字段? 通常将Token放置在"Authorization"字段中的主要原因如下: 标准化:HTTP协议中定义了一些常见的头部字段,如"Authorizati…...
国际生态数据获取网络
1、https://lternet.edu/ 2、https://www.neonscience.org/ 3、https://www.tern.org.au/ 4、https://www.industry.gov.au/ 5、http://www.cbas.ac.cn/ 6、https://sdg.casearth.cn/datas/casearthData 7、https://data.casearth.cn/ 8、https://omai.casearth.cn/ai-l…...
爬虫逆向实战(34)-某视综数据(MD5、AES)
一、数据接口分析 主页地址:某视综 1、抓包 通过抓包可以发现数据接口是/rank/waiting/fans 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个sign参数 请求头是否加密? 无响应是否加密? 通过查…...
数据分析三剑客之Matplotlib
0.Matplotlib绘图和可视化 1.简介 我的前面两篇文章介绍了 Nimpy ,Pandas 。今天来介绍一下Matplotlib。 简单来说,Matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图&…...
Python Opencv实践 - LBP特征提取
参考资料: python skimage库LBP提取特征local_binary_pattern参数解释_local_binary_pattern函数_friedrichor的博客-CSDN博客 LBP特征笔记_亦枫Leonlew的博客-CSDN博客 import cv2 as cv import numpy as np import matplotlib.pyplot as plt from skimage.feat…...
Docker 搭建Redis Cluster 集群
环境: centos7 redis:7.0.5 三主三从,六个节点 一、下载redis镜像 docker pull redis:7.0.5 二、创建虚拟网卡 docker network create redis-cluster# 查看创建的Docker网卡 docker network ls 网卡类型为bridge桥接类型 三、准备redis配置文件 redi…...
解决谷歌浏览器会http网站自动变成https的问题
不知道是不是升级的缘故,最近打开公司一个http网站,会自动跳去https,用了网上说的这个方案,如下: 但发现还不行,这时我尝试用点击地址栏左边那锁的那个图标,图如下: 然后点击网站设…...
go小知识2
Golang开发新手常犯的50个错误_gezhonglei2007的博客-CSDN博客 一些题目整理,附带大佬的解释 1.go中哪些值不能寻址& 常量(const常量,字面值3.14,字符串“xxx”,函数或方法, map的val值) golang中接…...
zabbix监控H3C设备
背景 常见的服务和主机已经使用Prometheus进行监控了,但是网络设备还未配置监控。使用基于SNMP对网络设备进行监控。 设备概览 主要类型为H3C的路由器和交换机。 H3CS5560交换机 路由器MER5200 er8300 一台群晖的NAS服务 步骤 配置网络设备开启telnet远程&…...
国产化改造之Mysql迁移方案:Mysql Galera Cluster
一、背景 因某业务系统OS国产化改造,现需将生成环境Mysql 主从迁移到新部署的BCLinux OS主机上;如果保障业务不断,平滑迁移并成功割接将是本次方案的重要方向,现场环境涉及需迁移数据780G左右,目标主机OS版本ÿ…...
bootstrap表单类型
1.基本格式 <form><div class"form-group"><label>电子邮件</label><input type"email" class"form-control" placeholder"请输入你的电子邮件" /></div><div class"form-group"&g…...
第一章 SQL Server 数据库部署
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。 个人主页:小李会科技的…...
广西玉林网站建设正规公司/推广手段和渠道有哪些
分布式应用系统中,经常会用到zk,比如dubbo注册中心,kafka分布式集群等都用到zk这一工具。除了这些用来做分布式集群外,zk还有那西应用场景事我们可以使用到该工具的呢?所以接下来就是我们要了解的重点了。 首先在使用z…...
杭州网站建设哪家好/手机系统优化软件哪个好
$secretKey 你的secretKey;$srcStr GETfaceid.tencentcloudapi.com/?;// 文档中示例是POST的 这里改成GET 这里踩个坑- -$param ["Action"> DetectAuth,//默认"Nonce"> rand(1000,9999),"SecretId">"你的secretId",Regio…...
为爱直播视频/太原seo网络优化招聘网
afka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了一个较为直观的UI可让用户快速查看Kafka集群中的对象以及存储在topic中的消息,提供了一些专门面向开发人员和管理员的功能,主要特性包括: 快速查看所有Kafka…...
公司网站设计很好的/内部优化
浑浑噩噩已经走了这么长时间了,那么,留下点什么吧。 一种积累,一种出口。 转载于:https://www.cnblogs.com/Peong/p/10438157.html...
wordpress默认链接/淘大象关键词排名查询
Hive支持的数据类型如下: 原生类型: TINYINTSMALLINTINTBIGINTBOOLEANFLOATDOUBLESTRINGBINARY (Hive 0.8.0以上才可用)TIMESTAMP (Hive 0.8.0以上才可用) 复合类型: arrays: ARRAY<data_type>maps: MAP<primitive_type, data_type>structs: STRUCT…...
最新网球赛事新闻/谷歌seo搜索引擎优化
author YHC 主题允许你改变视觉效果,许多扩展主题的创建基于jQuery UI主题,没有任何官方发布的部分,你也可以创建一个已存在主题的子主题. Sunny Pepper Grinder Cupertino Dark Hive 下载 EasyUI 扩展示例代码: jquery-easyui-themes.zip...