网站导航栏固定,mysql做网站怎么查看数据库,买了虚拟主机怎么做网站,网络营销推广计划在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化#xff0c;两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的#xff1a;乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于#xff08;…在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于或小于两次暴露单独效应的乘积。加性尺度上的相互作用意味着两次暴露的综合效应大于或小于两次暴露单独效应的总和。 目前在大量文章中只报道了乘法交互效应而加法交互效应报道得较少。有文献表明单单只用乘法交互效应低估了疾病协同的危险性从而低估了发病率。 柳叶刀杂志没有相乘效应并不代表没有相加效应。相乘模型也要评估相加交互作用。
今天给大家演示一下scitable包的scitb6函数这是一个专门用于相加交互效应模型的函数下面我给大家演示一下。 先导入数据和R包
setwd(E:/公众号文章2025年/一键相加交互函数)
library(interactionR)
bc-read.csv(E:/r/test/jiaohu1.csv,sep,,headerTRUE)这个是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)Reri3.74ap: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(databc,xalc,yoc,Interactionsmk,cov NULL,familyglm)和上面2个R包基本一致所以可靠性是绝对没有问题其实虽然相加模型没有相乘好理解但是毕竟公式摆在那里基本不会算错的。
好的。下面咱们正式进入今天的主题scitable包支持逻辑回归cox回归广义线性混合模型glmm广义估计方程gee的相加交互模型计算下面我一一演示一下。
演示之前先说个题外话我目前收集到2个文章模板觉得还行结果是朝着这两个模板设计的 一个是下面这个文章 另一个是文章 怎么看这个结果文字不怎么好说专门在下面视频再说
正式开始先导入我的一个不孕症数据
bc-read.csv(E:/r/test/buyunzheng.csv,sep,,headerTRUE)数据有8个指标最后两个是PSM匹配结果我们不用理他其余六个为 Education教育程度age:年龄parity产次induced人流次数case是否不孕这是结局指标spontaneous自然流产次数。 有一些变量是分类变量我们需要把它转换一下我人为把年龄分成3段好方便演示
bc$fage-cut(bc$age,breaks 3,labels c(0,1,2))#平均分为3个区间命名为012 可以看成低龄、中龄、高龄
##转分类变量成因子
bc$education-ifelse(bc$education0-5yrs,0,ifelse(bc$education6-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(databc,xfage,ycase,InteractionInteraction,cov cov1,familyglm)看到这个你可能会说这是什么呀我知道你很懵逼但是请你先别懵逼我继续演示等会再解释绘制森林图
scitb6forest(out)文章中的森林图就出来了第二种格式
out-scitb6(databc,xfage,ycase,InteractionInteraction,cov cov1,familyglm,type B)好了两者结果都出来了我来解释一下我们先把第一个表格导出来
putoutdata(out)查看一下生成结果 我们对这个结果手动改一下这样感觉是不是就很熟悉了 还是不明白咱们再对比一下 手动改一下就直接可以投稿了。下面介绍一下cox回归差不多的导入并整理数据
library(foreign)
library(survival)
bc - read.spss(E:/r/test/Breast cancer survival agec.sav,use.value.labelsF, to.data.frameT)
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(databc,xln_yesno,ystatus,InteractionInteraction,cov cov1,familycox,timetime)
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(databc,xalc,ycan,Interactionsmk,idinst,cov NULL,familylme4)最后就是gee模型
#######gee模型
out-scitb6(databc,xalc,ycan,Interactionsmk,idinst,cov NULL,familygee)
scitb6forest(out)可以看到gee和glmm模型算出来的东西基本一样。
看文字理解有点费劲下面还有视频欢迎观看 相加效应交互函数发布—适用于逻辑回归、cox回归、glmm、gee模型