前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >临床模型如何评估?快学一下C统计量

临床模型如何评估?快学一下C统计量

作者头像
用户6317549
发布2020-06-04 18:07:01
8.4K1
发布2020-06-04 18:07:01
举报
文章被收录于专栏:科研猫科研猫

本文作者:西红柿

责任编辑:馋猫

背景

在前两部分的模型构建文章中(预测模型研究利器-列线图(Logistic回归);【姊妹篇】预测模型研究利器-列线图(Cox回归)),我们提到使用R来构建Logistic回归模型和Cox回归模型,并简要介绍了模型的C统计量,但并未着重介绍。

在本节中,我们将详细介绍使用R来计算Logistic回归模型的C统计量。实际上,Logistic回归模型的受试者工作特征曲线(ROC)是基于预测的概率。ROC曲线下面积(AUC)等于C-统计量,所以IBM SPSS软件也可以计算C-统计量,在此不再赘述。

当我们通过训练集建立回归模型时,我们如何科学地评估回归模型预测的准确性?例如,有两个算命先生,每个算命先生在街角都有一个摊位,王小姐希望让其中一位算命先生告诉自己其婚姻的命运。她应该问谁,张先生还是李先生?一种简单的选择方法是选择过往算命更准确的算命先生。但是,这只能通过过去客户的口口相传才能知道。临床预测模型与此类似。最基本的要求是确保预测准确。那么,你如何评估预测模型是否准确?一般情况下,一个预测模型的优劣可以用以下三个方面来评价。

01

鉴别指数

它指的是回归模型区分患病/无病,有效/无效和死亡/存活结果的预测能力。例如,有100人,其中50人被诊断患有疾病,而50人没有疾病;我们使用某种预测方法预测的结果为45名患病和55名未患病。然后,在这45个人中,与真正生病的50个人相重叠的人数直接决定了你的模型预测能力的准确性,我们称之为“准确度”,其通常通过ROC曲线和C统计量来衡量(Logistic回归模型中的AUC等于C统计量)。当然, NRI(Net Reclassification Index)和IDI(integrated discrimination improvement)是其他度量的一部分。我们将在下面的章节进一步解释。

02

一致性和校准曲线

它是指实际发生的概率与预测的概率的一致性。我们仍然引用上面的例子。我们预测了100个人,但并不意味着我们真正使用该模型来预测一个人是否患有该疾病。该模型仅仅是根据大于某个临界值(例如0.5)的概率来确定人是否患有疾病,从而为我们提供了某人患病的可能性。例如,有100个人,我们最终将通过模型获得100个从0到1的概率。我们按从小到大的顺序对100个概率进行排名,然后将其分为10组,每组10个人。实际几率实际上是这10个人中疾病的比例,预测概率是每个组预测的10个概率的平均值,然后将两个数字进行比较,一个作为横坐标,一个作为纵坐标,由此获得校准图,并且还可以计算图的95%范围。

在逻辑回归模型中,有时一致性也可以通过Hosmer Lemeshow拟合优度检验来衡量。校准曲线是实际发生率actual incidence和预测发生率的散点图。从统计学上讲,校准曲线是Hosmer-Lemeshow拟合优度测试的可视化结果。

值得注意的是,差异较大的模型可能校正效果较差。例如,它可以确定一个人患疾病的风险是另一个人的五倍。它确定两个人的风险分别为5%和1%。实际上,两者的风险分别为50%和10%。该模型非常离谱,是一个不好的校准例子。可以使用Hosmer Lemeshow测试模型的校准性。如果结果具有统计意义,则预测值和观察值之间会有差异。差异discrimination和校准calibration是对模型的重要评估,但是许多新开发的模型并未得到充分评估。对心血管系统风险预测模型的系统回顾发现,只有63%的模型报告了差异,甚至更少的模型,只有36%报告了校准。

03

R平方

确定系数(通常也称为“ R平方”),也经常用作衡量模型准确性的标准,可以算作是鉴别指数和一致性系数的组合。模型确定系数R2较为全面,但略有粗糙。

下面,我们以一个前面的经典案例作为此次分析的例子,用R语言来计算一下上面讲的C统计量(Logistic回归模型中,等同于AUC)的几种计算方法。

案例分析

01

背景

Hosmer和Lemeshow在1989年研究了婴儿低出生体重的影响因素。结果变量是是否分娩低出生体重的婴儿(变量名“ low”,二分变量,1 =低出生体重,出生体重<2500 g;0 =非低出生体重),考虑因素(独立变量)可能包括:孕前孕妇体重(lwt,单位:磅);孕妇年龄(年龄,单位:年);孕妇在怀孕期间吸烟(0 =不吸烟,1 =吸烟);怀孕前早产(Ptl,单位:次);出生母亲是否患有高血压(ht,0 =没有,1 =患有);子宫对收缩,催产素和其他刺激的压力(ui,0 =否,1 =是); 怀孕前三个月的社区医师就诊次数(ftv,单位:次);种族(种族,1 =白种人,2 =黑种人,3 =其他种族)。在本示例中,我们整理了数据并将其命名为“ Lowweight.sav”,该数据存储在当前工作路径中。为了方便,大家可以在文末联系客服,下载数据和代码。

02

分析

在这种情况下,因变量是二元结果变量(无论出生体重是否低)。本研究的目的是调查低出生体重儿的独立影响因素,这与二元Logistic回归的应用条件一致。我们以“age+ ftv + ht + lwt + pwt +smoke+ ui +race”为自变量,以“ low”为因变量来构建Logistic回归方程。基于此Logistic回归模型,我们有三种方法来计算其C-统计量C-Statistics:

  1. 方法1:使用rms包中的lrm()函数来构建逻辑回归模型,并直接读取模型“ Rank Discrim. Indexes”参数C,即C统计量。
  2. 方法2:构建逻辑回归模型,使用predict()函数计算模型的预测概率,然后使用ROCR软件包根据预测的结果绘制ROC曲线概率,然后计算曲线下的面积(AUC),即C统计量。注意:此方法与SPSS中的计算方法一致。
  3. 方法3:建立Logistic回归模型,应用Hmisc软件包中的somers2函数直接计算ROC曲线下面积AUC,predict()函数计算模型预测概率。注:此方法与SPSS中的计算方法一致。

03

实现过程

首先,导入数据集

将婴儿体重和人类物种进行分类

方法1

使用rms包中的lrm()函数来构建逻辑回归模型,并直接读取模型“ Rank Discrim. Indexes”参数C,即C统计量。C-Statistics = 0.738.

方法2

构建逻辑回归模型,使用predict()函数计算模型的预测概率,然后使用ROCR软件包根据预测的结果绘制ROC曲线概率,然后计算曲线下的面积(AUC),即C统计量。注意:此方法与SPSS中的计算方法一致。

首先,计算构建Logistic回归模型的预测概率。

然后,使用prediction()函数构建对象“pred”,并使用performance()函数构建对象性能以绘制ROC曲线

绘制ROC曲线,如下图所示

使用performance()函数计算ROC曲线下面积(AUC)为C-统计量=0.7382008,与上述计算结果一致

方法3

Hmisc包somers2()函数计算,Auc=0.7382,与上述计算结果一致

小结

到目前为止,本节中对Logistic回归中计算C统计量的三种方法的演示已经完成。实际上,无论使用哪种方法,都不会直接给出C统计的标准误,因此置信区间的计算非常麻烦。如果要报告各种实际需求的C统计量置信区间,可以考虑使用SPSS软件进行ROC分析。SPSS软件可以直接给出AUC的标准误差和置信区间。大家可以自己尝试。此外,如果要比较两个模型(AUC或C统计)的ROC曲线下的面积,可以参考以下公式:

您可以根据Z值查看Z分布表以获得P值。或者直接用Delong test也可以比较。如果不会比较的话,可以参考我们的教程【科研猫·统计】ROC曲线(2):一码到底,这篇文章中有漂亮的ROC分析代码和自动化评估参数输出,以及Delong test两两比较。

参考文献:Zhi-Rui Zhou, Wei-Wei Wang, Yan Li, et al. In-depth mining of clinical data: the construction of clinical prediction model with R.Annals of Translational Medicine.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在前两部分的模型构建文章中(预测模型研究利器-列线图(Logistic回归);【姊妹篇】预测模型研究利器-列线图(Cox回归)),我们提到使用R来构建Logistic回归模型和Cox回归模型,并简要介绍了模型的C统计量,但并未着重介绍。
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档