rm(list=ls())##清除之前数据
library(rms) ###加载rms包#
library(foreign)
library(survival)
library(rmda)
##install.packages("DynNom")
library(DynNom)
setwd("C://Users//zhanglingyu//Desktop//测试") #设置工作目录
rt<- read.table('测试.txt',header=T,sep="\t")
head(rt) #查看前5行的数据
str(rt)
##接着对所有变量数据进行打包
ddist <- datadist(rt) #将数据打包
options(datadist='ddist')
model1<- lrm(rt$fustat ~ Age+Gender+Tau+EMPG+Glu+HCY+VB12+ALB, data = rt)
summary(model1)
par(mgp=c(1.6,0.6,0),mar=c(2,2,2,2)) ##设置画布
nomogram <- nomogram(model1,fun=function(x)1/(1+exp(-x)), ##逻辑回归计算公式
fun.at = c(0.001,0.01,0.05,seq(0.1,0.9,by=0.1),0.95,0.99,0.999),#风险轴刻度
funlabel = "Risk of Alzheimer Disease", #风险轴便签
lp=T, ##是否显示系数轴
conf.int = F, ##每个得分的置信度区间,用横线表示,横线越长置信度越
abbrev = F#是否用简称代表因子变量
)
plot(nomogram,
#1.变量与图形的占比
xfrac=.35,
#2.变量字体加粗
cex.var=1,
#3.数轴:字体的大小
cex.axis=0.8,
#4.数轴:刻度的长度
tcl=-0.5,
#5.数轴:文字与刻度的距离
lmgp=0.3,
#6.数轴:刻度下的文字,1=连续显示,2=隔一个显示一个
label.every=1,
#7.1个页面有几个数轴(这个可以压缩行间距)
naxes=13,
#8.垂直线的颜色.
col.grid=gray(c(0.8, 0.95)),
#9.线性预测轴名字
lplabel="Linear Predictorlp",
#10变量分数名字
points.label='Points',
#11总分名字
total.points.label='Total Points',
force.label=F#没啥用TRUE强制标记的每个刻度线都绘制标签,我也没研究明白
)
#运行以展示Nomogram每个变量的分数
model1
##生成改良诺模图
plot(nomogram,col.grid = c("Tomato2","DodgerBlue"))