写在前面的话,本函数只支持NHANES数据(复杂调查数据)的逻辑回归和线性回归,其他类型均不支持,请注意甄别,电子产品,买错不能退换。
在SCI文章中,交互效应表格(通常是表五)能为文章锦上添花,增加文章的信服力,增加结果的可信程度,还能进行数据挖掘。什么是亚组,通常就是特殊类型人群,比如男女,种族等,就是说你的数据放入特殊人群中结果还可靠吗?如果在各个特殊人群中,你的结果很稳定,说明你的结论很可靠。如果亚组的结论和你的数据数据结论相反,你可以拿来做个新论题。还可以比较不同亚组之间有无区别,比如做了心脏支架和没做支架的区别,可以发现很多新思路,易于数据挖掘。
在既往文章《NHANES数据(复杂调查数据)亚组交互函数2.2版(P for interaction)发布—用于一键生成交互效应表》中,咱们发布了svy.scitb5函数,反响还不错,基本没啥大问题,有个小问题是部分结果只能得到可信区间,算不出来P值,这个其实是survey包的问题,对于协变量过多而你的数据相对较少的话,生成模型较复杂,模型残差自由度消耗为零,所以算不出来,因此发布了2.3版,我来演示一下
导入数据和函数
library(survey)
setwd("E:/r/fensi/20240725P交互")
source("E:/r/test/2.2svyscitb5.R")
data <- read.csv("Clean_SUA_SHBG.csv",sep=',',header=TRUE)
names(data)
data<-as.data.frame(data)
这个是粉丝的数据,就不介绍了,分类变量转成因子
data$gender <- factor(data$gender)
data$race <- factor(data$race)
data$education <- factor(data$education)
data$moderate_activity <- factor(data$moderate_activity)
data$BMI_Class <- factor(data$BMI_Class)
定义协变量和分层变量
cov1<-c("age","gender","race","education","PIR","BMI","BMI_Class","Cholesterol_mg_dL","total_protein_g_dL",
"Triglycerides_mg_dL","ALT_U_L","albumin_g_dL","ALP_IU_L","AST_U_L","urea_nitrogen_mg_dL",
"Ca_mg_dL","r_IU_L","LDH_IU_L","P_mg_dL","cotinine_ng_mL","moderate_activity")
Interaction<-c("BMI_Class","gender","race","education")
生成调查函数
nhs <-
svydesign(
data = data,
ids = ~ psu,
strata = ~ strata,
weights = ~ wtmec2yr,
nest = TRUE,
survey.lonely.psu = "adjust")
生成亚组交互效应表
out<-svy.scitb5(data=data,x="Uric_acid_mg_dL",y="SHBG",Interaction=Interaction,cov
= cov1,family="svyglm",method="Wald",dec=4, svydstr=nhs, pdec=4, p.intervaue=4) #x连续,Y连续
我们可以看到算不出P值,两个方法:1.是减少你的协变量 2.是添加参数df.resid=T,
out<-svy.scitb5(data=data,x="Uric_acid_mg_dL",y="SHBG",Interaction=Interaction,cov
= cov1,family="svyglm",method="Wald",dec=4, svydstr=nhs, pdec=4, p.intervaue=4,
df.resid=T) #x连续,Y连续
这样P值就算出来啦,上面的交互效应p值算出出来目前没啥好办法,只能减少你的协变量,我估计是有某个协变量分布有点问题,减掉就可以了,但是只能你自己尝试了。
购买本函数2.2版本的粉丝不需要重新购买,再重新回复一次就可以了,购买过本函数既往版本的也可以截图私信我获取最新版本。