R信息解析:追随top期刊手把手教你做1个临床预判模型
发布日期:2022-11-15 作者:康为 点击:
临床预判模型也是大家较为感兴致的,今日就带着大家看一篇临床预判模型的文章,以及用1个例子给大家过一遍作法。
这篇文章来自护理行业高级期刊的文章,文章名在以下
Ballesta-Castillejos A, Gómez-Salgado J, Rodríguez-Almagro J, Hernández-Martínez A. Development and validation of a predictive model of exclusive breastfeeding at hospital discharge: Retrospective cohort study. Int J Nurs Stud. 2021 May;117:103898. doi: 10.1016/j.ijnurstu.2021.103898. Epub 2021 Feb 7. PMID: 33636452.
文章作家做了个入院时纯洁母乳豢养的预判模型,信息来自2个队列,1个队列做模型,此外1个拿来验证。样件量的计算用的是“10个样件1个变量”的规范,预判结局变量是个二分类,变量筛选的方式仍然是单原因有意思的都归入预判模型中,详细的建模方式是logistic回归模型。接着用AUC进行模型的评价。
在结果报表上,作家报表了一切的有意思的预判原因,每个原因会展现OR和OR的置信区间,还有总体模型的评估指标,含盖展现了模型的ROC曲线,和AUC,作家还展现了不同几率阶截断值下的模型的Sensitivity, Specificity, PPV, NPV, LR+, LR-。如图:
作家全部文章是用SPSS做出去的,今日给大家写写论文中的各类指标全是什么意思并且怎样用R话语做出去论文中须要报表的各类指标。理论铺垫
首先给大家写灵敏度(Sensitivity)与特异度(Specificity),这2个物品全是对于二分类结局来讲的,大家先瞅瞅以下的图:
咱们真正的结果有两类也许,模型的预判也有两类也许,上图的AD表示模型预判对的个案数目,如此灵敏度就是:在真的有病了,你的模型有多大也许检查出去,表示为
Sensitivity: A/(A+C) × 100
在论文中就是这个母亲真的是纯洁母乳豢养的,模型有多大也许辨认为真的纯洁母乳豢养。
特异度就是:我是真的真的没病,你的模型有多大也许说我真的没病,表示为:
Specificity: D/(D+B) × 100
在论文中就是这个母亲真的不会去纯洁母乳豢养的,模型有多大也许辨认为真的不仅纯母乳豢养。
有类学友说,我知晓个模型预判确切率不就好了吗,用(A+D)/(A+B+C+D)来评价模型不就好了吗?搞如此麻烦。。
不可如此想的,例如你如今有1个傻瓜模型,这个模型傻到它只会将一切的人都预判为没病,恰好这个模型被用在了1个常态人群中,接着咱们发掘这个傻瓜模型的准确率也是100%,这个就很离谱,因此并模型预判确切性是不可广泛评价模型体现的,须要借助Sensitivity, Specificity。
咱们再看 PPV, NPV这2个指标:
Positive Predictive Value: A/(A+B) × 100
Negative Predictive Value: D/(D+C) × 100
看上面的公式,相信大家都看得出这2个实则就是模型的阴性预判确切性和阳性预判确切性,也能够从特定角度阐明模型的体现。
再看LR+和 LR-,这2个就是阴性似然比 (positive likelihood ratio, LR+)和 阳性似然比
(positive likelihood ratio, LR+),似然比的概念请考虑下一段英文描绘:
Likelihood ratio (LR) is the ratio of two probabilities: (i) probability that a given test result may be expected in a diseased individual and (ii) probability that the same result will occur in a healthy subject.
如此:(LR+) = sensitivity / (1 - specificity),意义就是真阴性率与假阴性率之比。阐明模型准确判定阴性的也许性是错误判定阴性也许性的倍数。比值越大,实验结果阴性时为真阴性的几率越大。
(LR-) = (1 - sensitivity) / specificity,意义就是假阳性率与真阳性率之比。表示错误判定阳性的也许性是准确判定阳性也许性的倍数。其比值越少,实验结果阳性时为真阳性的也许性越大。
因此大家记住:阴性似然比越大越好,阳性似然比越少越好。
最终再把上面的一切的内容总结1个表献给可恶的粉丝们,嘿嘿。以下就是1个分类结局预判变量须要报表的许多模型评价指标:
再回过头想想咱们所谓的阴性或者阳性,假设用logistics回归做的话自身这个阴性阳性的鉴别全是能够设定的,由于咱们的模型拟合出去的是呼应几率,就是Logit公式里面的那个p值,你能够以p=0.5为咱们鉴别阴阴性的cutoff,固然你还能够以0.9或者0.1为cutoff,cutoff不同自然咱们模型灵敏度和特异度就不同了,就是说灵敏度和特异度是紧随cutoff不同而改变着的,因此要安稳地评价模型体现还须要此外的指标,这个时候咱们就引出了1个很首要的概念:ROC曲线和曲线以下积AUC。在实战中解读ROC曲线
我如今手上有信息如下:
我要做1个default的预判模型,default是个二分类变量,取值为“No” 和“Yes”,为了简洁我预判原因只参考1个balance。因而我创建1个logistics模型:
model_glm = glm(default ~ balance, data = default_trn, family = "binomial")
咱们将预判为Yes的几率为0.1的时候成为cutoff值,区分预判结局(p<0.1的时候为No,p>0.1的时候为Yes),一样地咱们还能够将cutoff设置为0.5,0.9。接着咱们分别看一看模型的灵敏度和特异度:
test_pred_10 = get_logistic_pred(model_glm, data = default_tst, res = "default",
pos = "Yes", neg = "No", cut = 0.1)
test_pred_50 = get_logistic_pred(model_glm, data = default_tst, res = "default",
pos = "Yes", neg = "No", cut = 0.5)
test_pred_90 = get_logistic_pred(model_glm, data = default_tst, res = "default",
pos = "Yes", neg = "No", cut = 0.9)
test_tab_10 = table(predicted = test_pred_10, actual = default_tst$default)
test_tab_50 = table(predicted = test_pred_50, actual = default_tst$default)
test_tab_90 = table(predicted = test_pred_90, actual = default_tst$default)
test_con_mat_10 = confusionMatrix(test_tab_10, positive = "Yes")
test_con_mat_50 = confusionMatrix(test_tab_50, positive = "Yes")
test_con_mat_90 = confusionMatrix(test_tab_90, positive = "Yes")
metrics = rbind(
c(test_con_mat_10$overall["Accuracy"],
test_con_mat_10$byClass["Sensitivity"],
test_con_mat_10$byClass["Specificity"]),
c(test_con_mat_50$overall["Accuracy"],
test_con_mat_50$byClass["Sensitivity"],
test_con_mat_50$byClass["Specificity"]),
c(test_con_mat_90$overall["Accuracy"],
test_con_mat_90$byClass["Sensitivity"],
test_con_mat_90$byClass["Specificity"])
)
rownames(metrics) = c("c = 0.10", "c = 0.50", "c = 0.90")
metrics
运作代码后获得呼应几率不同cutoff值的状况下模型的灵敏度和特异度,如下图:
能够看见咱们设定的呼应几率的cutoff值不同,就是判定阴阳的规范不同,咱们获得的模型的灵敏度和特异度就是不同的。
以上不过为了再次给大家直观地阐明咱们的模型的灵敏度和特异度是取决于咱们的呼应几率界值的,你判定阴阳的规范会直接牵连模型的灵敏度和特异度,因而,咱们换个思想,针对1个模型,咱们将灵敏度成为横坐标,特异度成为纵坐标,接着cutoff轻易取,咱们生成一条曲线,这就参考了一切的cutoff状况了,就能够安稳地评价模型的体现了,这条曲线就是ROC曲线。
如此咱们希望的是1个模型它的灵敏度高的时候,特异度也能高,表现到曲线上就是曲线下的面积可以越大越好。预判模型R话语实操
此部份给大家写怎样做出论文中的各类指标,并且怎样绘出ROC曲线。
仍然是用上一部份的信息,仍然是做balance预判default的模型:
model_glm = glm(default ~ balance, data = default_trn, family = "binomial")
模型流出结果如下:
结果中有流出模型的截距和balance的β值,咱们能够用如下代码获得balance的OR值并且置信区间:
exp(cbind(OR = coef(model_glm), confint(model_glm)))
运作上面的代码就能够获得balance的OR值和OR的置信区间:
同时咱们有远古的真正值,咱们模型拟合好了以后能够用该模型进行预判,获得预判值,生成搅浑矩阵:
model_glm_pred = ifelse(predict(model_glm, type = "response") > 0.5, "Yes", "No")
在矩阵中就能够获得哪类是远古信息真正的No和Yes,哪类是模型预判出去的No和Yes:
上面就是咱们自身信息做出去的搅浑矩阵,接着大家就能够直接带公式计算出须要报表的模型的Sensitivity, Specificity, PPV, NPV, LR+, LR-了。
同时大家能够用pROC包中的roc函数一行代码绘制出ROC曲线并获得曲线以下积,例如我做的模型,写出代码如下:
test_roc = roc(default_tst$default ~ test_prob, plot = TRUE, print.auc = TRUE)
就能够获得ROC曲线和曲线以下积了:
上面的一切操控全是能够在SPSS中完结的,论文作家也是用SPSS做的。大家感兴致去阅读原论文哈。小结
今日结合刊登文章给大家写了分类结局的预判模型须要报表哪类指标,指标的意思并且怎样用R做1个分类结局的预判模型,感激大家耐烦看完,自身的文章都写的很细,首要代码都在原文中,期望大家都能够自身做一做,请转发本文到同伙圈后私信答复“信息链接”获得一切信息和自己采集的学习资料。假设对您有用请先记得珍藏,再点赞分享。
也欢迎大家的看法和倡议,大家想了解什么统计方式都能够在文章下留言,说不定我看到了就会给你写教学哦,有疑问欢迎私信。
假设你是1个大学本科生或研发生,假设你正在由于你的统计功课、信息解析、模型建立,科研统计设计等忧愁,假设你在应用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话语做meta解析
R信息解析:用R话语做潜类型解析LCA
R信息解析:什么是人群归因分数Population Attributable Fraction
R信息解析:手把手教你画列线图(Nomogram)及理解结果
R信息解析:偏向性评分匹配完好实例(R实行)
R文本发掘:感情解析
R信息解析:怎样用R做验证性因子解析及绘图,实例操练
R信息解析:有调整的中介
R信息解析:怎样用R做多重插补,实例操练
R信息解析:多分类逻辑回归
R文本发掘:中文词云形成,以2021新年贺辞为例
R信息解析:临床预判模型的样件量讨论及R实行
R信息解析:混合效应模型实例
R信息解析:随机截距交叉滞后RI-CLPM与传统交叉滞后CLPM
R信息解析:多程度模型全面阐明
R信息解析:怎样做潜在剖面解析Mplus
R信息解析:主成份解析及可视化
R信息解析:生存解析的作法与阐明续
R信息解析:竞争危害模型的作法妥协释二
R信息解析:怎样做逻辑斯蒂回归
R信息解析:开拓性因子解析
R信息解析:交叉滞后模型非专业阐明
R信息解析:线性回归的作法和优化实例
R信息解析:多元逻辑斯蒂回归的作法
R信息解析:非专业讲解潜变量增长模型
R信息解析:竞争危害模型的作法妥协释
R信息解析:中介功效与调整功效的解析与阐明
R信息解析:混合效应模型的可视解除释,再不懂就真没方法
R信息解析:潜增长模型LGM的作法妥协释,及其与混合模型对照
信息可视化——R话语分组较为时图形增加P值和明显性程度
R信息解析:构造方程模型绘图并且模型较为,实例操练
本文网址:http://www.xizd.com/news/1887.html
相关标签:预判模型,总体模型,模型预判,傻瓜模型,这个模型,评价模型,模型评价,模型灵敏度,logistics模型,1个模型,1个模型它,模型流出,流出模型,程度模型,方程模型,效应模型实例,危害模型,滞后模型,增长模型,效应模型,模型LGM,混合模型
最近浏览:
相关产品:
相关新闻:
- 服务经营| 优化决策在医疗健康行业的理论+实践
- 种子磁力链接聚合搜索工具-magnetW老司机必备的5个资源网站,第3个还能搜索种子BT!除了常见的搜索引擎,您还须要知晓这类良知的搜索神器python爬虫入门01:教你在 Chrome 浏览器轻盈抓包这5个在线资源网站较强大,能帮你搜到99%的资源!5款SteamVR动作游戏分享举荐10款必玩的热点VR游戏举荐,不玩你的Oculus Quest VR眼镜就白买了体会完这个新品后,我感觉爽用VR的日子要来了设施太贵内容太坑?VR前景令人担心,谁才是顺利路上的绊脚石热点经典VR游戏分享清点,5款优秀Meta
- 模型展上多奇葩:往年的WF展上的几个有趣(沙雕)模型
- 剑桥华人队伍搞出多模态医学大模型!单个消费级显卡就能布置
- 提前一周预测流感,中国首个AI流感实时预测模型登《柳叶刀》子刊
- 中国学者开发崭新痴呆危害预判模型 可提早十年预判痴呆发病
- 法证先锋:3D打印解剖模型在法庭上大现身手 证实原告言行
- “四大海”创建的中医人体模型分析《伤寒论》|《医圣心印》连载8
- 港科大褚晓文:医疗场景下的 AutoML,模型参数量更小、分类准确率更高
- 晶体-细胞互相功效的蛋白质组学:肾结石研发的模型