相加交互效应函数发布—适用于逻辑回归、cox回归、glmm模型、gee模型

news2025/1/12 16:03:37

在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化,两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的:乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于(或小于)两次暴露单独效应的乘积。加性尺度上的相互作用意味着两次暴露的综合效应大于(或小于)两次暴露单独效应的总和。

在这里插入图片描述

目前在大量文章中只报道了乘法交互效应,而加法交互效应报道得较少。有文献表明,单单只用乘法交互效应低估了疾病协同的危险性,从而低估了发病率。

在这里插入图片描述

柳叶刀杂志:没有相乘效应并不代表没有相加效应。相乘模型,也要评估相加交互作用。

今天给大家演示一下,scitable包的scitb6函数,这是一个专门用于相加交互效应模型的函数,下面我给大家演示一下。
先导入数据和R包

setwd("E:/公众号文章2025年/一键相加交互函数")
library(interactionR)
bc<-read.csv("E:/r/test/jiaohu1.csv",sep=',',header=TRUE)

在这里插入图片描述

这个是interactionR包的示例数据,大家想必最关心的是可靠性的问题,先用两个权威的R包来生成结果,等会比较一下

model.glm <- glm(oc ~ alc * smk,
                 family = binomial(link = "logit"),
                 data = bc)
out<-interactionR(model.glm, 
                    exposure_names = c("alc", "smk"), 
                    ci.type = "mover", ci.level = 0.95, 
                    em = F, recode = F)

在这里插入图片描述
Reri:3.74,ap:0.41, si:1.87. 还是这个模型,咱们换个R包来做看,

library(epiR)
epi.interaction(model = model.glm, param = "product", coef = c(2,3,4), 
                conf.level = 0.95)

在这里插入图片描述

我们可以看到,两个R包的值都一样,但是可信区间不同,下面咱们使用scitb6函数来试一下,一句话代码出结果

library(scitable)
out<-scitb6(data=bc,x="alc",y="oc",Interaction="smk",cov = NULL,family="glm")

在这里插入图片描述
和上面2个R包基本一致,所以可靠性是绝对没有问题,其实虽然相加模型没有相乘好理解,但是毕竟公式摆在那里,基本不会算错的。

好的。下面咱们正式进入今天的主题,scitable包支持逻辑回归,cox回归,广义线性混合模型(glmm),广义估计方程(gee)的相加交互模型计算,下面我一一演示一下。

演示之前先说个题外话,我目前收集到2个文章模板觉得还行,结果是朝着这两个模板设计的
一个是下面这个文章:

在这里插入图片描述
在这里插入图片描述
另一个是文章:

在这里插入图片描述
在这里插入图片描述
怎么看这个结果,文字不怎么好说,专门在下面视频再说

正式开始,先导入我的一个不孕症数据

bc<-read.csv("E:/r/test/buyunzheng.csv",sep=',',header=TRUE)

在这里插入图片描述

数据有8个指标,最后两个是PSM匹配结果,我们不用理他,其余六个为:
Education:教育程度,age:年龄,parity产次,induced:人流次数,case:是否不孕,这是结局指标,spontaneous:自然流产次数。
有一些变量是分类变量,我们需要把它转换一下,我人为把年龄分成3段,好方便演示

bc$fage<-cut(bc$age,breaks = 3,labels = c(0,1,2))#平均分为3个区间,命名为0,1,2  可以看成低龄、中龄、高龄
##转分类变量成因子
bc$education<-ifelse(bc$education=="0-5yrs",0,ifelse(bc$education=="6-11yrs",1,2))
bc$spontaneous<-as.factor(bc$spontaneous)    # 可以看成没有流产、流产1次,流产2此以上
bc$case<-as.factor(bc$case)
bc$induced<-as.factor(bc$induced)
bc$education<-as.factor(bc$education)
bc$fage<-as.factor(bc$fage)

设置一下分层变量和协变量,方法和scitb5几乎一样,如果你用过前面的,可以轻松上手

cov1<-c("parity")
Interaction<-c("spontaneous")

一键生成表格,有两种格式,先说第一种

out<-scitb6(data=bc,x="fage",y="case",Interaction=Interaction,cov = cov1,family="glm")

在这里插入图片描述
看到这个你可能会说,这是什么呀,我知道你很懵逼,但是请你先别懵逼,我继续演示,等会再解释,绘制森林图

scitb6forest(out)

在这里插入图片描述
文章中的森林图就出来了,第二种格式

out<-scitb6(data=bc,x="fage",y="case",Interaction=Interaction,cov = cov1,family="glm",type = "B")

好了,两者结果都出来了,我来解释一下,我们先把第一个表格导出来

putoutdata(out)

查看一下生成结果

在这里插入图片描述
我们对这个结果手动改一下,这样感觉是不是就很熟悉了

在这里插入图片描述
还是不明白咱们再对比一下,

在这里插入图片描述
在这里插入图片描述

手动改一下就直接可以投稿了。下面介绍一下cox回归,差不多的,导入并整理数据

library(foreign)
library(survival)
bc <- read.spss("E:/r/test/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)
names(bc)
bc$er<-as.factor(bc$er)
bc$pr<-as.factor(bc$pr)
bc$ln_yesno<-as.factor(bc$ln_yesno)
bc$histgrad<-as.factor(bc$histgrad)
bc$pathscat<-as.factor(bc$pathscat)

设置协变量和分层变量

cov1<-c("er")
Interaction<-c("histgrad")

生成结果

out<-scitb6(data=bc,x="ln_yesno",y="status",Interaction=Interaction,cov = cov1,family="cox",time="time")
scitb6forest(out)

在这里插入图片描述
下面来个广义混合线性模型的,生成一个数据,其实就是前面的数据加个随机项

##先生成一个数据
can <- c(rep(1, times = 231), rep(0, times = 178), rep(1, times = 11), 
         rep(0, times = 38))
smk <- c(rep(1, times = 225), rep(0, times = 6), rep(1, times = 166), 
         rep(0, times = 12), rep(1, times = 8), rep(0, times = 3), rep(1, times = 18), 
         rep(0, times = 20))
alc <- c(rep(1, times = 409), rep(0, times = 49))
dat.df01 <- data.frame(alc, smk, can)
dat.df01$d <- rep(NA, times = nrow(dat.df01))
dat.df01$d[dat.df01$alc == 0 & dat.df01$smk == 0] <- 0
dat.df01$d[dat.df01$alc == 1 & dat.df01$smk == 0] <- 1
dat.df01$d[dat.df01$alc == 0 & dat.df01$smk == 1] <- 2
dat.df01$d[dat.df01$alc == 1 & dat.df01$smk == 1] <- 3
dat.df01$d <- factor(dat.df01$d)
set.seed(1234)
dat.df01$inst <- round(runif(n = nrow(dat.df01), min = 1, max = 5), digits = 0)

在这里插入图片描述
做法差不多的,就是加个ID和改下family

bc<-dat.df01
bc$alc<-as.factor(bc$alc)
bc$smk<-as.factor(bc$smk)
out<-scitb6(data=bc,x="alc",y="can",Interaction="smk",id="inst",cov = NULL,family="lme4")

在这里插入图片描述
最后就是gee模型

#######gee模型
out<-scitb6(data=bc,x="alc",y="can",Interaction="smk",id="inst",cov = NULL,family="gee")
scitb6forest(out)

在这里插入图片描述
可以看到gee和glmm模型算出来的东西基本一样。

看文字理解有点费劲,下面还有视频,欢迎观看

相加效应交互函数发布—适用于逻辑回归、cox回归、glmm、gee模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2275554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入解析 Flink 与 Spark 的性能差异

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…

工厂人员定位管理系统方案(二)人员精确定位系统架构设计,适用于工厂智能管理

哈喽~这里是维小帮&#xff0c;提供多个场所的定位管理方案&#xff0c;如需获取工厂人员定位管理系统解决方案可前往文章最下方获取&#xff0c;如有项目合作及技术交流欢迎私信我们哦~撒花 在上一篇文章中&#xff0c;我们初步探讨了工厂人员定位管理系统的需求背景以及定位方…

Wi-Fi Direct (P2P)原理及功能介绍

目录 Wi-Fi Direct &#xff08;P2P&#xff09;介绍Wi-Fi Direct P2P 概述P2P-GO&#xff08;P2P Group Owner&#xff09;工作流程 wifi-Direct使用windows11 wifi-directOpenwrtwifi的concurrent mode Linux环境下的配置工具必联wifi芯片P2P支持REF Wi-Fi Direct &#xff…

Linux第二课:LinuxC高级 学习记录day01

0、大纲 0.1、Linux 软件安装&#xff0c;用户管理&#xff0c;进程管理&#xff0c;shell 命令&#xff0c;硬链接和软连接&#xff0c;解压和压缩&#xff0c;功能性语句&#xff0c;结构性语句&#xff0c;分文件&#xff0c;make工具&#xff0c;shell脚本 0.2、C高级 …

L4-Prompt-Delta

Paper List PromptPapers:https://github.com/thunlp/PromptPapersDeltaPapers: https://github.com/thunlp/DeltaPapers Programming Toolkit OpemPrompt: https://github.com/thunlp/OpenPromptOpenDelta: https://github.com/thunlp/OpenDelta 一、传统微调方法&#xff1…

关于husky8.0 与 4.0的配置

husky的场景使用很多&#xff0c;一般大多场景是在配置git commit 命令拦截hook, 校验 commit-msg 格式规范。以下环境默认&#xff1a;git > 2.27.0, node >14 1、安装huskey8.0.1 npm install --save-dev husky8.0.1 2、初始化配置文件 在package.json scripts 属性…

ML汇总

Introduction and Overview 机器学习算法模型压缩Feature scaling 特征缩放损失函数正则化优化方式激活函数机器学习算法 逻辑回归: 用于二分类问题。它基于一个或多个预测变量建模二元结果的概率。 线性回归: 用于预测基于一个或多个预测变量的连续结果。它通过拟合线性方程来…

Day04-后端Web基础(Maven基础)

目录 Maven课程内容1. Maven初识1.1 什么是Maven?1.2 Maven的作用1.2.1 依赖管理1.2.2 项目构建1.2.3 统一项目结构 2. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Maven仓库2.4 Maven安装2.4.1 下载2.4.2 安装步骤 3. IDEA集成Maven3.1 配置Maven环境3.1.2 全局设置 3.2 Maven项…

spring boot解决swagger中的v2/api-docs泄露漏洞

在配置文件中添加以下配置 #解决/v2/api-docs泄露漏洞 springfox:documentation:swagger-ui:enabled: falseauto-startup: false 处理前&#xff1a; 处理后&#xff1a;

【Linux】深入理解文件系统(超详细)

目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 &#x1f4cc;补充&#xff1a; &#x1f4cc;通常网络中用高低电平&#xff0c;磁盘中用磁化方向来表示。以下是具体说明&#xff1a; &#x1f4cc;如果有一块磁盘要进行销毁该怎么办&#xff1f; 1-2 磁盘存储结构 ​编辑…

CSS如何让一个盒子或内容在指定区域中上下左右居中

要使用CSS让盒子或内容在其父元素中上下左右居中&#xff0c;可以使用多种方法。例如&#xff1a;flexbox布局、使用grid布局、box布局、使用position定位和transform结合、以及表格属性等等&#xff0c;相关属性来实现内容的上下左右的居中。 接下来我们使用以上的方法&#x…

用户注册模块用户校验(头条项目-05)

1 用户注册后端逻辑 1.1 接收参数 username request.POST.get(username) password request.POST.get(password) phone request.POST.get(phone) 1.2 校验参数 前端校验过的后端也要校验&#xff0c;后端的校验和前端的校验是⼀致的 # 判断参数是否⻬全 # 判断⽤户名是否…

Qt学习笔记第81到90讲

第81讲 串口调试助手实现自动发送 为这个名叫“定时发送”的QCheckBox编写槽函数。 想要做出定时发送的效果&#xff0c;必须引入QT框架下的毫秒级定时器QTimer&#xff0c;查阅手册了解详情。 在widget.h内添加新的私有成员变量&#xff1a; QTimer *timer; 在widget类的构造…

hutool-http实现离线爬虫

文章目录 1.数据爬取流程2.离线爬虫(Hutool-http实现)1.获取数据2.数据清洗3.为什么有各种类型的强转4.数据入库 3.测试完整代码 1.数据爬取流程 1.分析数据源(怎么获取) 2.拿到数据后怎么处理 3.写入数据库存储 2.离线爬虫(Hutool-http实现) 1.获取数据 这里返回的是jso…

【C语言】_使用冒泡排序模拟实现qsort函数

目录 1. 排序函数的参数 2. 排序函数函数体 2.1 比较元素的表示 2.2 交换函数Swap的实现 2.3 排序函数bubble_sort的实现 3. 测试整型数据排序 3.1 整型数据比较函数cmp_int的实现 3.2 整型数据排序后输出函数print_int的实现 3.3 整型数据测试函数test_int的实现 3…

ECharts饼图下钻

背景 项目上需要对Echarts饼图进行功能定制&#xff0c;实现点击颜色块&#xff0c;下钻显示下一层级占比 说明 饼图实现点击下钻/面包屑返回的功能 实现 数据结构 [{name: a,value: 1,children: [...]},... ]点击下钻 // 为图表绑定点击事件&#xff08;需要在destroy…

Java聊天小程序

拟设计一个基于 Java 技术的局域网在线聊天系统,实现客户端与服务器之间的实时通信。系统分为客户端和服务器端两类,客户端用于发送和接收消息,服务器端负责接收客户端请求并处理消息。客户端通过图形界面提供用户友好的操作界面,服务器端监听多个客户端的连接并管理消息通…

蓝桥杯嵌入式速通(1)

1.工程准备 创建一文件夹存放自己的代码&#xff0c;并在mdk中include上文件夹地址 把所有自身代码的头文件都放在headfile头文件中&#xff0c;之后只需要在新的文件中引用headfile即可 headfile中先提前可加入 #include "stdio.h" #include "string.h"…

net-http-transport 引发的句柄数(协程)泄漏问题

Reference 关于 Golang 中 http.Response.Body 未读取导致连接复用问题的一点研究https://manishrjain.com/must-close-golang-http-responsehttps://www.reddit.com/r/golang/comments/13fphyz/til_go_response_body_must_be_closed_even_if_you/?rdt35002https://medium.co…

TrustRAG:增强RAG系统鲁棒性与可信度的创新框架

在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLMs&#xff09;凭借其强大的语言处理能力在诸多领域大放异彩。检索增强生成&#xff08;RAG&#xff09;系统&#xff08;面向企业RAG&#xff08;Retrieval Augmented Generation&#xff09;系统的多维检索框架…