1.使用目的
刻畫(huà)連續(xù)性自變量和因變量之間的劑量反應(yīng)關(guān)系,檢驗(yàn)劑量反應(yīng)關(guān)系是否線(xiàn)性(結(jié)果如圖)
2.RCS的SAS實(shí)現(xiàn)
文獻(xiàn)中多使用SAS宏程序完成RCS互站。常見(jiàn)的RCS宏程序有%RCS_Reg廉丽,%LGTPHCURV9
(程序及PDF介紹文檔下載鏈接:http://bbs.pinggu.org/forum.php?mod=viewthread&tid=7139705职烧,https://www.hsph.harvard.edu/donna-spiegelman/software/lgtphcurv9/)
兩種宏程序的比較(如圖)
補(bǔ)充:個(gè)人更喜歡使用第一個(gè)宏程序貌踏。當(dāng)然在最近發(fā)表的文章中十气,兩種宏程序的影子都可以見(jiàn)到(這里附上對(duì)應(yīng)上述兩種宏程序的兩篇文獻(xiàn):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程序?qū)嵗ㄒ?RCS_Reg為例瑟枫,詳情見(jiàn)宏程序介紹文檔)
%inc 'C:\sasbishe\RCS_Reg.sas';? ? ? ? ? ? /* 引用宏程序(對(duì)應(yīng)放置宏程序的硬盤(pán)地址)*/
%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數(shù)據(jù)集、需要rcs刻畫(huà)的自變量指攒,節(jié)點(diǎn)位置慷妙、對(duì)應(yīng)的模型、因變量允悦、調(diào)整變量膝擂、是否加入水平參考線(xiàn)(一般加入,y=1)架馋、以O(shè)R或ln(OR)為縱坐標(biāo)、是否加入直方圖叉寂、橫坐標(biāo)最大值*/?
4.RCS的R實(shí)現(xiàn)
無(wú)固定程序铣墨,僅參照前人的程序加以修改办绝。參照丁香園論壇的兩個(gè)帖子:https://www.dxy.cn/bbs/newweb/pc/post/40377818伊约,https://www.dxy.cn/bbs/newweb/pc/post/43066827
library(rms)? ? ? ? ? ? ??/* 需要提前加載的package*/
d<-datadist(shuju)? ? ? ? ???/* 設(shè)置語(yǔ)言環(huán)境*/
options(datadist='d')? ? ? ??/* 設(shè)置語(yǔ)言環(huán)境*/
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也可以孕蝉,結(jié)果一樣屡律。cox里替換fit,如fit<- cph(Surv(time,death) ~ rcs(age,4) + sex,data=data) 降淮。rcs中5代表5個(gè)節(jié)點(diǎn)*/
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? ? ??/* 設(shè)置參考值*/
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)? ? ? ???/* 檢驗(yàn)是否為非線(xiàn)性*/
最后附上使用R進(jìn)行RCS的文獻(xiàn):Predictive?Value?of?Fasting?Glucose,?Postload?Glucose,?and?Hemoglobin?A1con?Risk?of?Diabetes?and?Complications?in?Chinese?Adults
5.下一篇整理RCS的結(jié)果解釋?zhuān)ň凑?qǐng)期待)