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

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

在这里插入图片描述

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

在这里插入图片描述

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

今天给大家演示一下,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.rhkb.cn/news/43.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ECharts饼图下钻

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

MySQL-事务

事务特性 在关系型数据库管理系统中&#xff0c;事务必须满足 4 个特性&#xff0c;即所谓的 ACID。 原子性&#xff08;Atomicity&#xff09; 事务是一个原子操作单元&#xff0c;其对数据的修改&#xff0c;要么全都执行&#xff0c;要么全都不执行。 修改操作>修改B…

C# 元组

总目录 C# 语法总目录 C# 元组 C# 介绍元组1. 元组元素命名2. 元组的解构3. 元组的比较 总结参考链接 C# 介绍 C#主要应用于桌面应用程序开发、Web应用程序开发、移动应用程序开发、游戏开发、云和服务开发、数据库开发、科学计算、物联网&#xff08;IoT&#xff09;应用程序、…

用 Python 绘制可爱的招财猫

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​ ​​​​​​​​​ ​​​​ 招财猫&#xff0c;也被称为“幸运猫”&#xff0c;是一种象征财富和好运的吉祥物&#xff0c;经常…

Java多线程

一、线程的简介: 1.普通方法调用和多线程: 2.程序、进程和线程: 在操作系统中运行的程序就是进程&#xff0c;一个进程可以有多个线程 程序是指令和数据的有序集合&#xff0c;其本身没有任何运行的含义&#xff0c;是一个静态的概念&#xff1b; 进程则是执行程序的一次执…

IP 地址与蜜罐技术

基于IP的地址的蜜罐技术是一种主动防御策略&#xff0c;它能够通过在网络上布置的一些看似正常没问题的IP地址来吸引恶意者的注意&#xff0c;将恶意者引导到预先布置好的伪装的目标之中。 如何实现蜜罐技术 当恶意攻击者在网络中四处扫描&#xff0c;寻找可入侵的目标时&…

鸿蒙面试 2025-01-09

鸿蒙分布式理念&#xff1f;&#xff08;个人认为理解就好&#xff09; 鸿蒙操作系统的分布式理念主要体现在其独特的“流转”能力和相关的分布式操作上。在鸿蒙系统中&#xff0c;“流转”是指涉多端的分布式操作&#xff0c;它打破了设备之间的界限&#xff0c;实现了多设备…

GDPU Android移动应用 重点习题集

目录 程序填空 ppt摘选 题目摘选 “就这两页ppt&#xff0c;你还背不了吗” “。。。” 打开ppt后 “Sorry咯&#xff0c;还真背不了&#x1f61c;” 更新日志 考后的更新日志 没想到重点勾了一堆&#xff0c;还愣是没考到其中的内容&#xff0c;翻了一下&#xff0c;原…

Unity3d 基于Barracuda推理库和YOLO算法实现对象检测功能

前言 近年来&#xff0c;随着AI技术的发展&#xff0c;在游戏引擎中实现和运行机器学习模型的需求也逐渐显现。Unity3d引擎官方推出深度学习推理框架–Barracuda &#xff0c;旨在帮助开发者在Unity3d中轻松地实现和运行机器学习模型&#xff0c;它的主要功能是支持在 Unity 中…

【Notepad++】Notepad++如何删除包含某个字符串所在的行

Notepad如何删除包含某个字符串所在的行 一&#xff0c;简介二&#xff0c;操作方法三&#xff0c;总结 一&#xff0c;简介 在使用beyoundcompare软件进行对比的时候&#xff0c;常常会出现一些无关紧要的地方&#xff0c;且所在行的内容是变化的&#xff0c;不方便进行比较&…

机器学习笔记合集

大家好&#xff0c;这里是好评笔记&#xff0c;公主 号&#xff1a;Goodnote。本笔记的任务是解读机器学习实践/面试过程中可能会用到的知识点&#xff0c;内容通俗易懂&#xff0c;入门、实习和校招轻松搞定。 笔记介绍 本笔记的任务是解读机器学习实践/面试过程中可能会用到…

OCR文字识别—基于PP-OCR模型实现ONNX C++推理部署

概述 PaddleOCR 是一款基于 PaddlePaddle 深度学习平台的开源 OCR 工具。PP-OCR是PaddleOCR自研的实用的超轻量OCR系统。它是一个两阶段的OCR系统&#xff0c;其中文本检测算法选用DB&#xff0c;文本识别算法选用CRNN&#xff0c;并在检测和识别模块之间添加文本方向分类器&a…

湘潭大学人机交互复习

老师没给题型也没划重点&#xff0c;随便看看复习了 什么是人机交互 人机交互&#xff08;Human-Computer Interaction&#xff0c;HCI&#xff09;是关于设计、评价和实现供人们使用的交互式计算机系统&#xff0c;并围绕相关的主要现象进行研究的学科。 人机交互研究内容 …

离线录制激光雷达数据进行建图

目前有一个2D激光雷达&#xff0c;自己控制小车运行一段时间&#xff0c;离线获取到激光雷达数据后运行如下代码进行离线建图。 roslaunch cartographer_ros demo_revo_lds.launch bag_filename:/home/firefly/AutoCar/data/rplidar_s2/2025-01-08-02-08-33.bag实际效果如下 d…

通信与网络安全管理之ISO七层模型与TCP/IP模型

一.ISO参考模型 OSI七层模型一般指开放系统互连参考模型 (Open System Interconnect 简称OSI&#xff09;是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型&#xff0c;为开放式互连信息系统提供了一种功能结构的框架。 它从低到高分别是…

Linux权限

目录 一.Linux权限的概念 二.Linux权限管理 1.文件访问者的分类 2.文件类型和访问权限 1.文件类型 2.基本权限 3.文件权限的表示方法 1.字符表示法 2.八进制表示法 4.文件权限的相关访问方法 1.chmod 2.chown 3.chgrp 4.粘滞位 三.权限总结 一.Linux权限的概念 …

UML系列之Rational Rose笔记三:活动图(泳道图)

一、新建活动图&#xff08;泳道图&#xff09; 依旧在用例视图里面&#xff0c;新建一个activity diagram&#xff1b;新建好之后&#xff0c;就可以绘制活动图了&#xff1a; 正常每个活动需要一个开始&#xff0c;点击黑点&#xff0c;然后在图中某个位置安放&#xff0c;接…

react-quill 富文本组件编写和应用

index.tsx文件 import React, { useRef, useState } from react; import { Modal, Button } from antd; import RichEditor from ./RichEditor;const AnchorTouchHistory: React.FC () > {const editorRef useRef<any>(null);const [isModalVisible, setIsModalVis…

基于mybatis-plus历史背景下的多租户平台改造

前言 别误会&#xff0c;本篇【并不是】 要用mybatis-plus自身的多租户方案&#xff1a;在表中加一个tenant_id字段来区分不同的租户数据。并不是的&#xff01; 而是在假设业务系统已经使用mybatis-plus多数据源的前提下&#xff0c;如何实现业务数据库隔开的多租户系统。 这…

大数据技术实训:Hadoop完全分布式运行模式配置

准备&#xff1a; 1&#xff09;准备3台客户机&#xff08;关闭防火墙、静态ip、主机名称&#xff09; 2&#xff09;安装JDK 3&#xff09;配置环境变量 4&#xff09;安装Hadoop 5&#xff09;配置环境变量 6&#xff09;配置集群 7&#xff09;单点启动 8&#xff09;配置ss…