【发布时间】:2016-07-09 00:05:53
【问题描述】:
我正在使用 Rstudio。我使用以下代码(从documentation 的示例代码复制)使用包rms 中的函数nomogram 创建了列线图:
library(rms)
n <- 1000 # define sample size
set.seed(17) # so can reproduce the results
age <- rnorm(n, 50, 10)
blood.pressure <- rnorm(n, 120, 15)
cholesterol <- rnorm(n, 200, 25)
sex <- factor(sample(c('female','male'), n,TRUE))
# Specify population model for log odds that Y=1
L <- .4*(sex=='male') + .045*(age-50) +
(log(cholesterol - 10)-5.2)*(-2*(sex=='female') + 2*(sex=='male'))
# Simulate binary y to have Prob(y=1) = 1/[1+exp(-L)]
y <- ifelse(runif(n) < plogis(L), 1, 0)
ddist <- datadist(age, blood.pressure, cholesterol, sex)
options(datadist='ddist')
f <- lrm(y ~ lsp(age,50)+sex*rcs(cholesterol,4)+blood.pressure)
nom <- nomogram(f, fun=function(x)1/(1+exp(-x)), # or fun=plogis
fun.at=c(.001,.01,.05,seq(.1,.9,by=.1),.95,.99,.999),
funlabel="Risk of Death")
#Instead of fun.at, could have specified fun.lp.at=logit of
#sequence above - faster and slightly more accurate
plot(nom, xfrac=.45)
此代码生成列线图,但没有连接每个比例的线(称为等值线)以帮助从图中预测所需变量(“死亡风险”)。通常,列线图具有预测的等值线 (example from wikipedia)。但是在这里,我如何预测变量值?
编辑:
来自文档:
列线图没有表示总和的线,但它有一个 读取评分点的参考线(默认范围 0--100)。一次 读者手动对分数进行合计,预测值可以是 在底部阅读。
我不明白这一点。从点的规模来看,似乎应该在没有等值线的情况下进行预测。但如何?有人可以用这个例子详细说明我如何阅读列线图来预测所需的变量吗?非常感谢!
编辑 2(仅供参考):
在赏金的描述中,我说的是等值线。开始赏金时,我不知道nomogram 函数不提供等值线,而是有积分比例。
【问题讨论】:
-
为了获得最优质的答案,我建议使用内置数据集重写问题。 stackoverflow.com/help/mcve 此外,强烈建议您将自己限制为每个问题一个问题。还有一件事——禁止请求外部材料的链接。
-
顺便说一句,您从哪里读到应该能够使用列线图对象进行预测?如果这不是该功能的设计目的,那么这不是它的设计目的。不过,您应该能够使用 logit 回归进行预测。此外,您想要的是带有 isopleth 的 parallel-scale 列线图。
-
@Hack-R 我已更改代码以使用内置数据集并删除了关于预测的第二个问题。
-
@Hack-R 我还添加了指向文档的链接,以确认可以通过列线图进行预测。感谢您的投入。我认为现在应该删除反对票。
标签: r regression