我们经常做的研究就是建立预测模型,我常常问自己,建的模型有啥实际应用价值?
直到我了解到列线图这个东西,才知道模型可以通过列线图转化为实际的应用工具。
列线图也叫Nomogram,中文常称为诺莫图:
Nomograms are visual and intuitive, which helps the general population and health managers to undersand the risk of diseases more easily
简单来说这个东西就是来帮助病人或者医生来预测某种结局的风险的工具,其核心是背后的预测模型。
今天还是手把手带大家做一个列线图。
实例描述
今天我们用到的数据为R自带的泰坦尼克邮轮数据集titanic3。数据大概如下图:
里面有乘客的死亡情况(二分类)和乘客的各种特征。那么我们关心的是:如何根据乘客的年龄age,性别sex和客舱等级pclass来预测乘客的死亡情况。我们打算画一个列线图出来。
R操作
做列线图必不可少的一步操作就是总结一下数据的分布,这一步的目的就是画图时好依照这个分布规定画图的尺度,我们要用到的方法是datadist:
datadist:For a given set of variables or a data frame, determines summaries of variables for effect and plotting ranges, values to adjust to, and overall ranges for Predict, , gg, , survplot, and nomogram.rms.
代码如下:
t.data <- datadist(titanic3) options(datadist = 't.data')
然后我们就可以拟合模型紧接着画列线图了:
fit <- lrm(formula = survived ~ age + pclass + sex, data = titanic3) plot(nomogram(fit, fun = function(x)plogis(x)))
上图就是我们用乘客的年龄,性别和客舱等级预测其死亡情况的列线图,在这个图中第一行叫做points就是每一个变量的评分参照,对于任意一个乘客我们可以计算所有预测变量的总分,然后总分可以通过total points映射到线性得分 linearPredictor 上进而得到该乘客的死亡概率。
比如,对于一个1等舱的一位40岁的女性来说,她的死亡概率为0.4,怎么得到的呢?
40岁得50分,1等舱得84分,男性0分,那么总分大概是134分,对应的死亡概率差不多0.4:
虽然我们知道如何看列线图做解释了,但是我们现在画的这个列线图还不好使用,如果你把它打印下来估计还需要拿一个直尺才对的准。所以我们考虑给它画上参考线:
plot(nomogram(fit, fun = function(x)plogis(x)),col.grid = gray(c, 0.95)))
这样是不是就方便多了,哈哈。列线图还有很多可以改动的地方,大家有兴趣慢慢探索哈。
小结
今天给大家写了列线图的简单做法,之后给大家写写更复杂的,大家一定记住,列线图只是一个模型的可视化,它的本质是后面的预测模型,所以你得预测模型一定要对这个列线图才有用。
感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请关注后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞转发。
也欢迎大家的意见和建议。
如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、论文、报告、考试等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。
如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取最详细和耐心的指导。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧,打工人!
往期内容:
机器学习:逻辑回归分类器(一)
R数据分析:多分类逻辑回归
R数据分析:逻辑斯蒂回归与泊松回归
R数据分析:多元逻辑斯蒂回归的做法
R数据分析:如何做逻辑斯蒂回归