新版亚组交互效应函数(P for interaction)newscitb5 1.3版本发布--用于一键生成交互效应表
在SCI文章中,交互效应表格(通常是表五)能为文章锦上添花,增加文章的信服力,增加结果的可信程度,还能进行数据挖掘。什么是亚组,通常就是特殊类型人群,比如男女,种族等,就是说你的数据放入特殊人群中结果还可靠吗?如果在各个特殊人群中,你的结果很稳定,说明你的结论很可靠。如果亚组的结论和你的数据数据结论相反,你可以拿来做个新论题。还可以比较不同亚组之间有无区别,比如做了心脏支架和没做支架的区别,可以发现很多新思路,易于数据挖掘。

目前不少粉丝私信问我,上面这种亚组交互的表格怎么做,
在既往咱们已经在文章《scitb5函数2.1版本(交互效应函数P for interaction)发布----用于一键生成交互效应表、森林图》中已经介绍了可以生成亚组交互表格的scitb5函数,但是在X为分类变量的时候,生成的亚组交互函数是如下图所示这样的

这两个表格是有区别的,主要是参照物不同,就拿第一个表格的SEX这栏来说,第一个表格主要是两个亚组男和女的情况,在男的这个亚组中,Q2-4是和Q1进行比较,女的亚组中也是一样,Q2-4是和Q1进行比较。因此会有两个Ref,因为分成了两个层。
在第二个表格进行了另外一种方式对数据的处理,等于是把数据分层了8个亚组,女性Q1组,女性Q2组,女性Q3组,女性Q4组,男性Q1组,男性Q2组,男性Q3组,男性Q4组,以女性女性Q1组为参考,其他数据和它进行了参考。
两种方法各有所长,都有文章进行发表,既往的scitb5函数生成的是第二种表格。
应粉丝的要求,我又编写了新的亚组交互函数用于生成下图也就是第一张图的这种表格,就叫newscitb5函数,想要取个响亮的名字真费劲

下面我来给大家演示一下,这种表格我们Y只能是二分类的,X可以是连续的和分类的,但最后都按分类的来处理。
咱们先导入数据和我写的函数,需要survival包和lmtest支持,这两个包要先安装
bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
bc <- na.omit(bc)

这是一个关于早产低体重儿的数据(公众号回复:早产数据,可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数,bwt 新生儿体重数值。
我们先把分类变量转成因子
bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$low<-factor(bc$low)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)
bc$smoke<-factor(bc$smoke)
导入我写的函数,导入成功的话应该左下角出现13个函数
source("E:/r/myfit/newscisub13.R")

接下来咱们需要定义协变量和分层因子,cov1就是你模型中的协变量,Interaction就是你的分层变量
cov1<-c("age")
Interaction<-c("ht","ui","smoke")
生成数据,data就是你的数据,x就是你研究的变量,y就是你的结局变量,结局变量必须是分类变量,Interaction就是你的分层变量,cov就是你的协变量,family="glm"这里是固定的
out<-newscitb5(data=bc,x="race",y="low",Interaction=Interaction,cov = cov1,family="glm")

这样表格就可以轻松生成了。下面咱们来手动检验一下咱们的结果对不对,以ht为例子,如果你购买了既往的scitb5函数,也可以这样做出上面表格
先把数据分层ht的两个亚组数据
dat1<-subset(bc,bc$ht==0)
dat2<-subset(bc,bc$ht==1)
生成两个亚组的数据模型
fit1<-glm(low~race+age,family = "binomial",data = dat1)
fit2<-glm(low~race+age,family = "binomial",data = dat2)
生成两个模型结果

咱们可以看到手动手动算出来和咱们的表格一模一样,如果你购买了是scitb5,再把做出来的交互值填进去就做好啦。
下面咱们来做一个下图这样带有 p for trend的

做出这样p for trend的必须有两个条件,第一个是我们观察的变量X必须是连续变量,2是转换后的分类必须大于3个等级,就是像上图一样必须有G0,G1和G2一共3个,只有2个是做不出来趋势的。你看第一张图的时候它的X变量也是一个连续变量,做了分位数后再行亚组比较的
cov1<-c("ui")
Interaction<-c("ht","race","smoke")
out<-newscitb5(data=bc,x="age",y="low",Interaction=Interaction,cov = cov1,family="glm",contain=F)

出现下面红字并不是报错,而是提醒你观察变量X是个连续变量

有些细心的粉丝可能发现了ht等于1的时候有个p for trend的值没有算出来,是缺失的,为什么会这样呢?下面我来手动算下给大家看看,方法是参照了文章《手把手教你R语言计算校正混杂因素后的P for trend》,我这里就不解释了,直接算了
咱们先要把年龄进行分段然后进行标识
fenwei<-quantile(bc$age,c(0,.25,.50,.75,1))
Q<-cut(bc$age,breaks=c(fenwei),right = F,labels = c(0,1,2,3))#把 age 划分为 4 个等分到区间

但是传统方法算出来有个小缺点,它的最右侧不算进去,所以咱们可以看到有一个缺失,这里我使用我自编小程序转换一下
Q<-rankvar(bc$age,4)
bc$Q<-Q

大家看下我这里是没有缺失值的,其他都一样,然后和刚才一样把数据分组
dat1<-subset(bc,bc$ht==0)
dat2<-subset(bc,bc$ht==1)
再dat1中把中位数加进去
library(dplyr)
dat1<-dat1 %>% group_by(Q) %>%mutate(Median= median(age,na.rm=TRUE))%>%ungroup()

上图可以看到中位数已经生成,带入模型就可以了
f<-glm(low~Median+ui,family = "binomial",data = dat1)
summary(f)

最后咱们可以看到P值是0.361和咱们计算的一模一样,如果你是手动计算有缺失值的话可能会和我算的差一点,但是也应该差不多
接下来咱们来看看为什么 ht==1这组跑不出来,主要再数据结构上ui这里只有一个分类

我们可以看到只有一个分类是组成不了模型的
dat2<-dat2 %>% group_by(Q) %>%mutate(Median= median(age,na.rm=TRUE))%>%ungroup()
f<-glm(low~Median+ui,family = "binomial",data = dat2)

所以有时候不是数据多少的问题,结构也很重要。接着这个问题,如果使用函数过程中遇到这个报错
Error in getpfi(xlv, xxname, yvname, Interaction, flmadj, tmp0, xvname_, :
找不到对象’mdli’

也是一模一样的情况,你的代码没错,函数也没错,就是你的交互变量的亚组数据太少,生成不了模型,处理就是:可以删除莫格数据过少的亚组变量,或者增加数据量。
最后介绍一下怎么调节分位数回归的个数,默认是4个,我换个大点的数据来演示一下
library(foreign)
bc <- read.spss("E:/r/Breast cancer survival agec.sav",use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)

我们先来看看数据(公众号回复:乳腺癌,可以获得数据):
age表示年龄,pathsize表示病理肿瘤大小(厘米),lnpos表示腋窝淋巴结阳性,histgrad表示病理组织学等级,er表示雌激素受体状态,pr表示孕激素受体状态,status结局事件是否死亡,pathscat表示病理肿瘤大小类别(分组变量),ln_yesno表示是否有淋巴结肿大,time是生存时间,后面的agec是我们自己设定的,不用管它。
分类变量转成因子
bc <- na.omit(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("ln_yesno","histgrad")
生成数据,默认是4个分组
out<-newscitb5(data=bc,x="age",y="status",Interaction=Interaction,cov = cov1,family="glm")

想要调节成5个只需调节num参数
out<-newscitb5(data=bc,x="age",y="status",Interaction=Interaction,cov = cov1,family="glm",num=5)

这样就轻松生成了。这个过程还生成了每个分位数的P值,但是不知道怎么做表格,所以没有导出来。COX回归版本正在写,还要等一等。
如果还是不会可以看下面视频操作。
新版亚组交互效应函数(P for interaction)newscitb5 1.3版本发布--用于一键生成交互效应表
有问题可以私信我。获取新版亚组交互函数,可以看下面这篇文章
新版亚组交互效应函数(P for interaction)newscitb5 1.3版本发布–用于一键生成交互效应表
相关文章:
新版亚组交互效应函数(P for interaction)newscitb5 1.3版本发布--用于一键生成交互效应表
在SCI文章中,交互效应表格(通常是表五)能为文章锦上添花,增加文章的信服力,增加结果的可信程度,还能进行数据挖掘。什么是亚组,通常就是特殊类型人群,比如男女,种族等&am…...
gpt讲 Observable 对象
什么是 Observable? Observable 是一种用于处理异步数据流的数据类型。它可以发出多个值,这些值可以是同步或者异步产生的,并且可以在时间上发生变化。在 Angular 中,HttpClient 返回的响应对象、事件流以及许多其他异步任务都可…...
STM32的SPI接口详解
目录 1.SPI简介 2.SPI工作原理 3.SPI时序 3.1 CPOL(Clock Polarity,时钟极性): 3.2 CPHA(Clock Phase,时钟相位): 3.3 四种工作模式 4.相关代码 4.1使能片选信号 4.2使能通…...
谷歌+火狐浏览器——实现生成二维码并实现拖动——js技能提升
最新遇到的问题:前两个二维码拖动不了,只有第三个一维码生成后,才可以拖拽 【问题】:出现在都是绝对定位,但是没有指定z-index导致的。 解决办法:在方法中添加一个变量 renderDrag(id) {var isDragging f…...
128陷阱详解(从源码分析)
1、128陷阱描述 Integer 整型 -128~127 超过这个范围,比较会不准确 例子 public static void main(String[] args) {Integer a128;Integer b128;Integer e127;Integer f127;System.out.println(ab); //输出falseSystem.out.println(a.equals(b)); //输出trueS…...
点云处理实操 基于多项式重构的平滑和法线估计
目录 基于多项式重构的平滑和法线估计 一、什么是移动最小二乘法(Moving Least Squares, MLS) 二、算法原理 三、算法应用 四、PCL代码实践 基于多项式重构的平滑和法线估计 原文地址:Smoothing and normal estimation based on polynomial reconstruction — Point Cl…...
MongoDB在Linux下的安装与基本操作指南
MongoDB是一款高性能、开源的NoSQL数据库系统,特别适合处理大规模数据存储应用。本文将详细介绍MongoDB在Linux系统(以Ubuntu为例)上的安装步骤,以及如何进行基本的数据库操作,帮助你快速上手MongoDB。 一、在Linux上…...
端口占用快速解决
netstat -aon|findsstr 8989 taskkill /pid 13221 -t -f 命令解释 1.检查网络连接状态 2.终止特定进程 netstat -aon | findstr 8989 netstat: 这是一个网络状态统计工具,可以显示活动的网络连接、路由表、接口表、多播成员信息等。-a: 显示所有连接和监听端口。通…...
普中51单片机:矩阵按键扫描与应用详解(五)
文章目录 引言电路图开发板IO连接矩阵键盘的工作原理行列扫描逐行/逐列扫描 LCD1602代码库代码演示——暴力扫描代码演示——数码管(行列式)代码演示——线翻转法代码演示——LCD1602密码锁 引言 矩阵按键是一种通过行列交叉连接的按键阵列,可以有效地减少单片机I/…...
SQLite Glob 子句
SQLite Glob 子句 SQLite 的 GLOB 子句是一种强大的搜索工具,用于在数据库中执行模式匹配操作。它类似于 SQL 中的 LIKE 子句,但 GLOB 使用的是基于文件系统的通配符,而不是 SQL 的百分比 (%) 和下划线 (_) 通配符。在本文中,我们…...
Redis基础教程(十七):Redis数据备份与恢复
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝Ὁ…...
基于FPGA的千兆以太网设计(1)----大白话解释什么是以太网
1、什么是以太网? 还记得初学以太网的时候,我就被一大堆专业名词给整懵了:什么以太网,互联网,MAC,IP,局域网,万维网,网络分层模型等等等等。慢着!我学的不是以太网吗?怎么出来这么一大堆东西? 啊!以太网究竟是什么?别急,我接下来就尽量用通俗的大白话来给你解释…...
wordpress的restfull API使用教程,之如何用postman调试API,以便能使用vue等前端框架开发主题
文章目录 API开发手册在postman中调试这里以 post 一篇文章为例,讲解如何调试: 步骤 1:生成应用密码步骤 2:配置Postman步骤 3:创建文章 参考链接 API开发手册 官方API手册:https://developer.wordpress.o…...
刷题刷题刷题
P1123 取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路: 从1,1开始dfs,若行数x>n则立马刷新最大值退出搜索,若y>m则进入下一行从第一列开始搜索即x1,y1,对当前的搜索点x,y的八个方向进行1,因为不能相邻 AC:…...
【Spring Boot】统一异常处理
目录 统一异常处理一. 概念二. 全局异常处理三. 处理特定异常 统一异常处理 一. 概念 其实统一异常是运用了AOP(对某一类事情的集中处理)的思维,简单概括就是在我们进行前后端数据交互的时候,抛出的任何的异常都能够自动捕获然后…...
java —— tomcat 部署项目
一、通过 war 包部署 1、将项目导出为 war 包; 2、将 war 包放置在 tomcat 目录下的 webapps 文件夹下,该 war 包稍时便自动解析为项目文件夹; 3、启动 tomcat 的 /bin 目录下的 startup.bat 文件,此时即可从浏览器访问项目首页…...
数据库的优点和缺点分别是什么
数据库作为数据存储和管理的核心组件,具有一系列显著的优点,同时也存在一些潜在的缺点。以下是对数据库优点和缺点的详细分析: 数据库的优点 数据一致性:数据库通过事务管理、锁机制、并发控制等技术手段,确保多个用户…...
考研数学暑期规划|50天吃透1000+660!
1000660这个组合当然可以 只不过1000的难度并不适合大多数人,很多同学跟的是张宇老师,但是最后却因为张宇1000题太难而改用其他的习题册比如880或者严选题之类的 当然,如果你的目标分数是120,可以去做1000题,因为100…...
GPT-5 一年半后发布?我们可能所受影响与应用领域
前言: IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。此外,穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述…...
CSS上下悬浮特效
要实现一个上下悬浮的特效,可以使用CSS的keyframes规则和动画属性。以下是一个简单的示例: 代码示例 /* 定义一个名为floating的动画 */ keyframes floating {0% {transform: translateY(0); /* 初始位置 */}50% {transform: translateY(-4px); /* 向上…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
