先祝大家新年快乐,新的一年蒸蒸日上,心想事成。近日有粉丝和我说投稿返修,编辑要求要对RCS曲线的可信区间进行标注,即需要把RCS改成下图的形式,
下面我们通过R语言来演示一下
library(foreign)
library(rms)
be <- read.spss("E:/r/test/ozone.sav",
use.value.labels=F, to.data.frame=T) #我的臭氧数据
names(be)
这里我们使用我们原来的臭氧的数据,主要描述的是臭氧浓度和大气一些相关指标的情况(公众号回复:臭氧,可以获得数据),数据中有七个变量,ozon每日臭氧水平为结局变量,Inversion base height(ibh)反转基准高度,Pressure gradient (mm Hg) 压力梯度(mm Hg),Visibility (miles) 能见度(英里),Temperature (degrees F) 温度(华氏度),Day of the year日期,vh我也不知道是什么,反正就是一参数,这里所有的变量都是连续的。
对数据进行整理
dd <- datadist(be) #为后续程序设定数据环境
options(datadist='dd') #为后续程序设定数据环境
建立模型
fit<-ols(ozon ~rcs(ibh, 4)+temp,data=be)
生成预测值
OR<-Predict(fit, ibh)
我们先对线条颜色和线型进行一个设定
line=c('95%cilower'=2,'Estimation'=1,'95%ciupper'=2)
cols=c('95%cilower'="black", 'Estimation'="black", '95%ciupper'="black")
绘图
ggplot(OR)+
geom_line(data=OR, aes(ibh,yhat,colour = 'Estimation', linetype = "Estimation"),size=1)+
geom_line(data=OR, aes(ibh,lower,colour = '95%cilower', linetype = "95%cilower"),size=1)+
geom_line(data=OR, aes(ibh,upper,colour = '95%ciupper', linetype = "95%ciupper"),size=1)+
scale_linetype_manual(name="线条说明",values = line)+
scale_colour_manual(name="线条说明",values=cols)+
theme_classic()+
theme(legend.position = c(.8,.8),
legend.key.width = unit(2,"cm"),panel.grid.major = element_blank(), panel.grid.minor = element_blank())