公众号
“医学论文与统计分析”公众号
扫码关注公众号

统计咨询
“公共数据库与孟德尔随机化”公众号
扫码关注公众号

意见反馈
邮箱:17357190071@163.com
微信:aq566665

自变量太多怎么筛选?这篇文章如何从249个变量筛出11个

Administrator
发布于 2025-07-24 / 44 阅读
0
0

2024年12月6日,顶刊Lancet子刊《eClinicalMedicine》(医学一区top,IF=9.6)发表了一篇题为:“Novel type 2 diabetes prediction score based on traditional risk factors and circulating metabolites: model derivation and validation in two large cohort studies”的研究论文,旨在评估在临床使用的剑桥糖尿病风险评分(CDRS)基础上添加代谢组学生物标志物对评估2型糖尿病10年风险的增量预测价值。

(如果你需要全文,请在医学论文与统计分析微信公众号后台回复关键词“pdf”。如果你对预测模型感兴趣,来看看我们临床预测模型服务吧,一对一指导!详情可咨询助教,微信号:aq566665)

研究设计

在这项研究中,研究者用了两个大型队列研究推导和验证预测模型。

  • 模型推导和内部验证:纳入了86,232名英国生物银行(UKB)参与者(在2006年3月13日至2010年10月1日期间招募),将队列拆分为训练集(70%)和测试集(30%)。

  • 外部验证:纳入了4383名来自德国ESTHER队列的参与者(在2000年7月1日至2002年6月30日期间招募)。

研究人员对参与者进行了10年的随访,以评估2型糖尿病的发病率。

图1 参与者纳排流程图

√CDRS是一种预测工具,用于评估个人未来发展为2型糖尿病的风险。

这个评分系统包括年龄、性别、身体质量指数(BMI)、糖尿病家族史、吸烟状况、抗高血压药物和类固醇的处方。如果可以采集血液样本,建议使用临床CDRS,其中还包括HbA1c。

√代谢组学分析

Nightingale Health的高通量NMR代谢组学平台用于测量随机选择的UKB参与者基线血浆样本中的250种代谢物,以及ESTHER队列中具有足够血液样本质量的所有基线血清样本。

因为在两个队列的大多数参与者中甘油无法测量,甘油被排除在外,留下249个代谢物用于分析。

自变量它是如何筛选的

本文的自变量筛选很有意思,为了进行变量选择,研究者采用了LASSO方法,使用Cox比例风险模型和r包“glmnet”(版本4.1-7)。将临床CDRS和所有代谢物浓度作为自变量,2型糖尿病发生率作为因变量。

在训练集内,研究者进行了1000个重抽样样本的bootstrap过程,以增强变量选择过程的稳定性和泛化性。

  • 对于每个bootstrap样本,我们进行10次交叉验证,以识别正则化参数λ的最佳值,使交叉验证误差最小化。

  • LASSO Cox比例风险模型在每个重抽样的样本中使用最优λ进行拟合,这使一些系数接近于零,而其他系数完全接近于零。

  • 我们记录了在每个bootstrap样本的最终Cox比例风险模型中具有非零系数的代谢物,这些代谢物被选择。

  • 完成所有的1000个bootstrap样本后,我们计算这1000个bootstrap样本中每个代谢物的选择频率,作为它被选择的次数的百分比。

随后根据代谢物的选择频率进行排序,范围从0%到100%。

在1000个bootstrap样本中,LASSO选择的代谢物至少有95%(这个阈值之前已经给出)是被选择的,可以增强模型的泛化能力并最小化模型过拟合。将筛选出的代谢物纳入临床CDRS构建新的预测模型。

最终,通过LASSO分析和bootstrapping法,研究者选择了11种代谢物来增强训练集中临床CDRS对2型糖尿病风险的预测能力。

图2 11种代谢物的Pearson相关系数相关矩阵

如何理解它的自变量筛选

全套过程,我想大家看得眼花缭乱,但确实做到了“增强变量选择过程的稳定性和泛化”的目的。

基于lasso的方法筛选自变量是常规套路,但lasso的方法存在不确定性,或者存在着过拟合的可能性。
一般来说我们干完lasso就结束了。它不!这篇论文在lasso基础上用了一些其他方法。
一个是实现泛化性,用的是十折交叉方法,那就可以减少过拟合的方法,哪个场景下模型验证效果最好的,意味着泛化能力最强,这个时候的lasso模型是最好的。
第二个是实现稳定性,lasso结果不稳定怎么办?那就来1000次,1000个lasso方法95%都存在着的自变量。

高明!这套组合拳,老郑我看得觉得有意思。

他们家的变量实在是太多了。太富裕了,随便你折腾,最终都有足够的自变量纳入模型。

下次你们也试试。


评论

收银台

订单信息

应付金额 积分

模块介绍

请加我们助教二维码或加入Zstats使用群
Zstats交流群

Zstats交流群

助教二维码

联系助教

选择支付方式

请输入助教告诉您的积分券

如果不填写积分券,将直接使用当前余额支付

正在创建订单...

请稍候,正在为您生成支付订单

支付二维码

请使用扫描二维码完成支付

等待支付中...

二维码获取失败

支付二维码获取失败,请点击重新获取

正在处理余额支付...

请稍候,正在为您完成支付

正在处理充值并支付...

正在使用积分券兑换,然后完成支付 正在使用当前余额完成支付

支付成功!

您的订单已支付完成,页面将在 秒后自动关闭

支付失败

支付过程中出现错误,请重新选择支付方式

平台说明