RCS(限制性立方样条)使用方法更新(全)

1.使用目的

刻画连续性自变量和因变量之间的剂量反应关系,检验剂量反应关系是否线性(结果如图)

2.RCS的SAS实现

文献中多使用SAS宏程序完成RCS。常见的RCS宏程序有%RCS_Reg,%LGTPHCURV9

(程序及PDF介绍文档下载链接:http://bbs.pinggu.org/forum.php?mod=viewthread&tid=7139705,https://www.hsph.harvard.edu/donna-spiegelman/software/lgtphcurv9/)

两种宏程序的比较(如图)

补充:个人更喜欢使用第一个宏程序。当然在最近发表的文章中,两种宏程序的影子都可以见到(这里附上对应上述两种宏程序的两篇文献:Dietary Nonheme, Heme, and Total Iron Intake and the Risk of Diabetes in Adults: Results From the China Health and Nutrition Survey、Predicted lean body mass, fat mass, and all cause and cause specific mortality in men: prospective US cohort study)

3.RCS的SAS程序实例(以%RCS_Reg为例,详情见宏程序介绍文档)

%inc 'C:\sasbishe\RCS_Reg.sas';            /* 引用宏程序(对应放置宏程序的硬盘地址)*/

%RCS_Reg( infile=all116,

Main_spline_var= ogtt_1, knots_msv= 5 25 50 75 95,

typ_reg=log, dep_var= delivery_mode,

adjust_var= pregage pre_bmi bpa_mean parity smoke drink family_income diabetes_history  hpt_history height infant_sex ddif_ogtt_week,

Y_ref_line= 1,exp_beta=0,histogram=1,MAX_XAXIS=6.0);      /* 从前往后依次为:SAS数据集、需要rcs刻画的自变量,节点位置、对应的模型、因变量、调整变量、是否加入水平参考线(一般加入,y=1)、以OR或ln(OR)为纵坐标、是否加入直方图、横坐标最大值*/ 

4.RCS的R实现

无固定程序,仅参照前人的程序加以修改。参照丁香园论坛的两个帖子:https://www.dxy.cn/bbs/newweb/pc/post/40377818,https://www.dxy.cn/bbs/newweb/pc/post/43066827

library(rms)              /* 需要提前加载的package*/

d<-datadist(shuju)           /* 设置语言环境*/

options(datadist='d')        /* 设置语言环境*/

fit <- lrm(lga ~ rcs(ogtt_1, 5)+pregage+pre_bmi+bpa_mean+parity+smoke+drink+family_income+diabetes_history+hpt_history+height+infant_sex+ddif_ogtt_week,data=shuju)      /* lrm,好像glm也可以,结果一样。cox里替换fit,如fit<- cph(Surv(time,death) ~ rcs(age,4) + sex,data=data) 。rcs中5代表5个节点*/

print(fit)

orr=Predict(fit, ogtt_1,fun=exp, ref.zero=TRUE )

ggplot(Predict(fit, ogtt_1,fun=exp, ref.zero=TRUE))

d$limits$ogtt_1[2] <- 3.9      /* 设置参考值*/

fit <- update(fit)

P2<-ggplot()+geom_line(data=orr, aes(ogtt_1,yhat),linetype="solid",size=1,alpha = 0.7,colour="red")+ geom_ribbon(data=orr, aes(ogtt_1,ymin = lower, ymax = upper),alpha = 0.1,fill="red")       /* 绘图,使用的是ggplot2,*/

P2<-P2+theme_classic()+geom_hline(yintercept=1, linetype=2,size=1)+

 labs(title = "RCS", x="ogtt_1", y="OR (95%CI)")

P2

anova(fit)         /* 检验是否为非线性*/


按上述程序绘制(比较粗略,熟悉ggplot的可以继续调整)

最后附上使用R进行RCS的文献:Predictive Value of Fasting Glucose, Postload Glucose, and Hemoglobin A1con Risk of Diabetes and Complications in Chinese Adults

5.下一篇整理RCS的结果解释(敬请期待)

你可能感兴趣的:(RCS(限制性立方样条)使用方法更新(全))