当使用logistics回归分析绘制列线图和ROC曲线时候,能得到回归模型与ROC具体的内容,但是plot无法出图。希望帮我解决究竟是哪里出了问题。
接下来是我的示例数据与相关代码
> dput(train_data)
structure(list(Death = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), levels = c("0",
"1"), class = "factor"), TMB = c(5.6, 1.9, 0.9, 0.9, 1.4, 4.2,
0.9, 1.4, 4.7, 5.6, 2.8, 6.1, 3.7, 0.9, 1.9, 1.4, 8.4, 2.8, 0.5,
1.4, 3.3, 2.8, 2.8, 0.9, 1.9, 1.9, 3.3, 0.5, 0.5, 1.4, 2.3, 1.9,
0.9, 2.3, 3.7, 0.5, 7, 1.9, 1.4, 2.3, 3.7, 2.3, 1.9, 5.6, 1.4,
7, 0.9, 8.9, 2.3, 1.4, 0.9, 2.3, 7, 2.3, 3.3, 0.9, 0.5, 2.3,
3.3, 3.3, 0.5, 55.3, 0.5, 1.9, 0.9, 14.5, 0.9, 0.9, 4.7, 5.6,
1.9, 2.3, 2.8, 1.4, 1.9, 2.8, 1.4, 0.9, 0.5, 1.9, 2.3, 2.3, 1.9,
1.9, 1.4, 1.9, 4.2, 0.9, 1.4, 0.5, 1.4, 1.9, 0.9, 0.5, 0.9, 1.9,
6.6, 1.9, 2.8, 1.4, 0.5, 0.9), Patho_CNB = structure(c(1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L), levels = c("IDC", "ILC", "other"), class = "factor"),
TP53 = structure(c(1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L,
1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L,
1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L), levels = c("0", "1"), class = "factor"), PTEN = structure(c(1L,
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), levels = c("0",
"1"), class = "factor"), PIK3CA = structure(c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), levels = c("0", "1"), class = "factor"),
NF1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L), levels = c("0", "1"), class = "factor"), TP53_pathway = structure(c(1L,
2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L,
2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L,
2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L,
2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L), levels = c("0",
"1"), class = "factor"), RTK_RAS_pathway = structure(c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L,
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L), levels = c("0",
"1"), class = "factor")), row.names = c(6L, 9L, 10L, 11L,
12L, 14L, 27L, 28L, 30L, 36L, 38L, 39L, 41L, 46L, 48L, 51L, 54L,
58L, 64L, 67L, 70L, 72L, 79L, 81L, 84L, 86L, 90L, 92L, 94L, 95L,
100L, 102L, 104L, 108L, 117L, 119L, 121L, 122L, 124L, 125L, 126L,
131L, 132L, 134L, 137L, 140L, 141L, 143L, 145L, 147L, 1321L,
1322L, 1324L, 1326L, 1328L, 1331L, 1335L, 1339L, 1341L, 1342L,
1343L, 1347L, 1349L, 1351L, 1354L, 1355L, 1361L, 1366L, 1368L,
1370L, 1371L, 1374L, 1375L, 1377L, 1385L, 1389L, 1390L, 1395L,
1398L, 1401L, 1404L, 1407L, 1408L, 1411L, 1415L, 1416L, 1417L,
1422L, 1423L, 1426L, 1428L, 1431L, 1433L, 1443L, 1446L, 1447L,
1452L, 1459L, 1460L, 1463L, 1467L, 1470L), class = "data.frame")
for (i in names(train_data)[c(1,3:9)]){train_data[,i] <- as.factor(train_data[,i])}
d <- datadist(train_data)
options(datadist="d")
fit <- lrm(Death~Patho_CNB+TP53+PTEN+PIK3CA+NF1+TP53_pathway+RTK_RAS_pathway,
data = train_data,x=TRUE,y=TRUE)
nom <- nomogram(fit,
fun = plogis,
funlabel="Risk of Death")
plot(nom,lp=FALSE)
train_pred <- predict(fit,
newdata=train_data,
type = "fitted")
train_roc <- roc(train_data$Death,train_pred)
auc(train_roc)# AUC
ci(train_roc) #AUC95%CI
plot(train_roc)