利用NHANES数据库发SCI?这个方法太火了(一)

文摘   科学   2024-05-16 21:02   湖南  
 
大家好!全新meta分析教程开课了,细节拉满,长期更新一完就会。欢迎有meta分析学习和发文需求的老师和朋友订阅!目前已更新2集,文章链接:
1、PROSPERO注册平台快速注册小秘籍
2、Meta分析的统计异质性检验,你真的能解读清楚吗?



借助NHANES数据库发文的热度依然不减,对SCI有想法但手里头又没有合适的数据的老师或者同学,真的可以考虑好好筹备一番,抓住“福利的尾巴”。

从NHANES数据库中挖掘特异性的指标,然后将其与疾病相关联,是常用的思路。最近几年,“Mixture analysis”(混合物分析)发展壮大,随之而来的是几种统计分析方法,现在已经发展为大热或必备方法(或者,该称之为套路),例如:

加权分位数和 (Weighted quantile Sum,WQS)回归;

贝叶斯核机回归 (Bayesian Kernel Machine Regression,BKMR)

前段时间,我们对此做了简单的介绍,还不太了解的朋友可以先看看前面发布的文章:

2区SCI!使用贝叶斯核机回归进行NHANES数据库分析

本次分享如何实现加权分位数和(WQS)回归。
一、连续变量的WQS回归
WQS回归是一种对高维数据进行多元回归的统计方法,具有环境暴露、表观/基因组学和代谢组学等中常见的复杂相关模式。该模型构建了一个经验加权指数,估计预测变量(暴露)对结果的混合效应,然后可以在具有相关协变量的回归模型中使用该指数来检验指数与因变量或结果的关联。每个单独的预测变量对总体指数效应的贡献可以通过估计权重的相对强度来评估,因为这些成分是量化的,因此处于同一尺度上。检简言之,WQS可以有效避免传统回归分析方法对多重共线性等处理不足的缺点。
R包gWQS” 将 WQS 回归扩展到具有连续和分类结果,并实现了随机子集 WQS 和重复保持 WQS,可以输出预测变量总体指数效应的参数估计和显著性检验,以及分配给每个预测变量的估计权重,这些权重确定每个变量对WQS指数和结果变量之间关系的相关贡献。

接下来,笔者将以“gWQS”工具包作者提供的示例作为参照,为大家分享具体分析步骤。

数据集:采用R包内置的示例数据进行分析。

# 查看内置的示例数据,yLBX是连续型的因变量,ybinLBX是二分类变量str(wqs_data)help(wqs_data)
# 提取混合变量(要研究的自变量)PCBs = names(wqs_data)[1:34]

先做个探索性建模,看看混合变量对结局变量的影响是正向还是反向。

# 建模# yLBX是因变量,pwqs表示正向效应,nwqs表示负向,#  mix_name是混合变量名# q指定分位数,validation指定验证集占比# b指定bootstrap次数(建议增加到最少100)# rh是重复次数(建议增加到最少100)# family指定分布类型(此处为高斯即正态分布)res1 = gwqs(yLBX ~ pwqs + nwqs, mix_name = PCBs, data = wqs_data,                   q = 10, validation = 0.6, b = 5, b1_pos = TRUE, rh = 2,                  family = "gaussian", seed = 123)
summary(res1)

代码的解释在上述方框内部,结果如下:

因为此建模函数底层是glm,所以直接summary就可以出来结果。直接看pwqs和nwqs的置信区间,可见pwqs显著,nwqs不显著。

可视化结果:

# bar plotgwqs_barplot(res1)# scatter plot y vs wqsgwqs_scatterplot(res1)# scatter plot residuals vs fitted valuesgwqs_fitted_vs_resid(res1)# boxplot of the weights estimated at each repeated holdout stepgwqs_boxplot(results2i)



第一张是变量重要性图,看着跟随机森林的类似。第2和第3张是常见的回归诊断。最后一张是多次采样的估计权重误差。这些图美观性差点意思,可以提取相关结果,通过ggplot2自行绘制好看的图。
# 获取估计权重的确切值head(res1$final_weights)
# WQS回归的权重表gwqs_weights_tab(res1)

ggplot2绘图步骤略。简单展示:

由于负向效应不显著,所以可以直接拟合下面的模型。

res2 = gwqs(yLBX ~ wqs, mix_name = PCBs, data = wqs_data,             q = 10, validation = 0.6, b = 5, b1_pos = TRUE, rh = 2,            family = "gaussian", seed = 123)
summary(res2)


二、增加协变量
很简单,直接在公式右侧加,以sex为例,该变量已经因子化处理了。
res3 = gwqs(yLBX ~ wqs + sex, mix_name = PCBs, data = wqs_data,                   q = 10, validation = 0.6, b = 5, b1_pos = TRUE, rh = 2,                  family = "gaussian", seed = 123)summary(res3)

控制性别后,wqs还是显著的。绘图及其他步骤与上述的一样。

三、二分类变量的WQS回归
res4 = gwqs(ybinLBX ~ wqs, mix_name = PCBs, data = wqs_data,              q = 10, validation = 0.6, b = 5, b1_pos = TRUE, rh = 2,             family = "binomial", seed = 123)summary(res4)

这里可以来个有意思的指标(ROC曲线)。
gwqs_ROC(res4, wqs_data)


同样的,如果对默认给的图不满意,可以自己美化。
最后,还有其他扩展功能,比如说在建模时可以进行lasso正则化,对于变量数太多的情况,可以考虑对系数进行压缩。限于篇幅,这里就不展示了。

分享到这里就结束了,统计分析的发展真的很快,恰好笔者本人也喜欢看文献,边看边探索,不嫌弃的话,大家可以关注我们公众号,并建议把我们的公众号设为星标有进展会第一时间跟大家分享。



小提醒:笔者水平有限,上述内容如有不当之处,还望海涵。如果你在科研学习中遇到了疑问,恰好也想跟网友们交流,可以加入我们建立的“护理科研交流群”。这是一个完全自由、开放、免费、没有套路的纯交流群。加群方式:后台私信关键词“加群”。

参考文献:

[1]R包'gWQS'的帮助文档。

[2]https://renzetti.r-universe.dev/gWQS/doc/manual.html

封面和正文图片来自R软件输出结果,本文仅供学习、分享使用,如有侵权,请联系我们删除,谢谢。

护理统计随笔
专注护理科研设计和统计分析。别人不会告诉你的干货,可以来这里找!
 最新文章