##CVAI与T2DM风险之间的rcs模型。
##模型调整了年龄、性别、受教育程度、居住地和婚姻状况、吸烟状况、饮酒状况、睡眠时间、收缩压和舒张压。
install.packages(c('segmented','rms'))
library(segmented)
library(splines)
library(Hmisc)
library(rms)
library(ggplot2)
##attach函数加一个名为base的数据框,意味着将数据框加到搜索路径中,可直接访问列名,用完后detach
attach(base)
##把分析用到的变量都加进去datadist()
dd<- datadist(DM,CVAI,age,gender,sbp,dbp,education,location,marital,drinking,smoking,sleep)
##用options设置全局选项
options(datadist = 'dd')
##构建模型 lrm()函数 ,(结局~rcs(暴露,3次方)+协变量,data)
fit<-lrm(DM ~ rcs(CVAI,3)+age+gender+sbp+dbp+education+location+marital+drinking+
smoking+sleep, data=base)
##annova函数查看整体的p值和非线性模型的p值,小于0.05证明x和y存在非线性的关系
anova(fit)
##可视化模型,美化
OR=Predict(fit,CVAI, ref.zero=TRUE, fun=exp)
ggplot(OR)+
ylab('OR(95%CI)')+
geom_line(color = "#FF0066")+ #绘制拟合线
geom_hline(yintercept = 1,color = 'red', linetype = 'dashed')+ #绘制参考线1
geom_ribbon(aes(ymin = lower, ymax = upper), fill = 'pink', alpha = 0.6)+ #绘制置信区间颜色
theme(plot.background = element_rect(fill = "white"), # 设置背景颜色为白色
panel.background = element_rect(fill = "white"), # 确保面板背景也是白色
panel.grid = element_blank(), # 去掉背景网格
axis.line = element_line(color = "black")) # 确保坐标轴线是黑色的
标签:rms,语言,##,代码,library,rcs,attach,base
From: https://blog.csdn.net/2402_87751128/article/details/143675122