新版亚组交互效应函数(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); /* 向上…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
