广义估计方程分析简介
什么是广义估计方程分析(Generalized estimating equation analysis,GEE)?
参考:
https://mp.weixin.qq.com/s/nJb94D61Tb7Cc6jGzPrlxw
临床研究中经常遇到重复测量数据或相关数据的问题,如研究一种药物时,需要观察患者在治疗前后的指标变化。这些数据之间存在相关性和依赖结构,传统的分析方法可能无法很好的处理这些问题。广义估计方程是一种基于广义线性模型的非参数估计方法,可以有效处理这类数据分析问题。GEE是一种灵活的方法,对于不同类型的数据都可以适用。它可以通过考虑观测之间的相关性来提高参数估计的准确度,并且不需要对数据的概率分析进行过多的假设。在临床医学领域,广义估计方程的应用得到了广泛关注,并且已经在很多研究中证明了它的有效性。
原理和概念:
广义估计方程设计两部分内容,一是模型的选择,二是矩阵结构。在模型的选择方面,可以根据具体的问题选择适当的广义线性模型,如logit,probit或正态等函数。在建立模型时,需要考虑自变量和因变量之间的函数关系,并通过最大似然估计方法对模型参数进行估计。
在矩阵结构方法,GEE需要考虑观测之间的相关性和依赖结构,即协方差结构。常见的协方差结构包括独立、交叉、自相关等形式。通过选择适当的协方差结构,可以更好的描述数据之间的相关性,从而提高参数估计的准确性。
GEE的核心思想是建立一组广义估计方程,利用加权修正对参数进行估计,从而得到更文件的结果。在这个过程中,GEE采用了类似于迭代夹权最小二乘法的方法,以最小化误差函数。
GEE概念主要包括以下几个要素:1.依赖结构,指的是观测数据之间的相关性和依赖关系,常见的依赖结构包括自相关结构、交叉分类结构等。2.线性预测模型,使用广义线性模型作为GEE的基础模型,其中自变量可以是连续变量,分类变量或其他形式的数据。3.广义估计方程,通过建立一组方程,利用加权修正对参数进行估计,从而得到更可靠的结果。
标签:#微生物组数据分析 #MicrobiomeStatPlot #广义估计方程分析 #R语言可视化 #Generalized estimating equation analysis
作者:First draft(初稿):Defeng Bai(白德凤);Proofreading(校对):Ma Chuang(马闯) and Jiani Xun(荀佳妮);Text tutorial(文字教程):Defeng Bai(白德凤)
源代码及测试数据链接:
https://github.com/YongxinLiu/MicrobiomeStatPlot/项目中目录 3.Visualization_and_interpretation/GeneralizedEstimatingEquationAnalysis
或公众号后台回复“MicrobiomeStatPlot”领取
这是Jakob Stokholm课题组2023年发表于Nature Medicine上的文章,第一作者为Cristina Leal Rodríguez,题目为:The infant gut virome is associated with preschool asthma risk independently of bacteria.https://doi.org/10.1038/s41591-023-02685-x
图 5 b | 病毒组特征得分与细菌组特征得分在学龄前哮喘中的关系。
根据病毒组和细菌(16S)哮喘特征评分(左,病毒组;右,16S)和相应的双侧P值,使用广义估计方程分析(GEE)对生命前5年的哮喘轨迹进行风险分析。儿童被分为高分组(橙色实线,高于中位数)和低分组(黄色虚线,低于中位数)。显示了每年与正在进行的哮喘诊断的相关性P<0.001,P<0.01,P<0.05。NS无显著性差异(P>0.05)。通过双侧逻辑回归获得的P值。
结果
鉴于学龄前哮喘通常有一个短暂的过程,病毒组和细菌组评分也被用于研究哮喘在生命的前5年的持续性——通过时间相互作用。从基线到每个时间点,在温带病毒组特征得分高(高于中位数)和低(低于中位数)的儿童之间比较哮喘的患病率(OR=1.87(1.24–2.83);P=0.003)和菌群(OR=1.71(1.13-2.58);P=0.01)(图5b)。此外,每年测试的病毒组评分与正在进行的哮喘诊断之间的相关性突出表明,病毒组评分表明哮喘的表型更为短暂,而细菌组则表明表型更为持久。
源代码及测试数据链接:
https://github.com/YongxinLiu/MicrobiomeStatPlot/
或公众号后台回复“MicrobiomeStatPlot”领取
软件包安装
# 基于CRAN安装R包,检测没有则安装
p_list = c("geepack", "tidyverse")
for(p in p_list){if (!requireNamespace(p)){install.packages(p)}
library(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)}
# 加载R包 Load the package
suppressWarnings(suppressMessages(library(geepack)))
suppressWarnings(suppressMessages(library(tidyverse)))
实战
参考:
https://mp.weixin.qq.com/s/1TCxQ2sQ9DvtlEP2N4Jnqg
对于纵向研究的数据或者重复测量数据,不能简单的使用方差分析、广义线性回归等方法,因为数据之间极可能存在一定程度的相关性,比如说同一动物连续一周观测提问,前一天的体温与后一天的体温之间是存在关联的,而不是独立的。广义估计方程可以简单理解为广义线性混合模型的拓展,是一种半参数化方法,相较之下所受的条件限制较少,同时结果更加稳健。
# 载入数据集
# Load data
data("dietox")
# 数据预处理:因子化处理
# Data preprocessing: factorization
dietox <- dietox %>%
mutate(Cu = factor(Cu),
Evit = factor(Evit))
# 定义模型公式
# Define fomula
model_formula <- Weight ~ Time + Evit + Cu
# 独立相关结构假设模型(Independence correlation structure)
gee_independent <- geeglm(model_formula, id = Pig, data = dietox,
family = gaussian, corstr = "ind")
summary(gee_independent)
#>
#> Call:
#> geeglm(formula = model_formula, family = gaussian, data = dietox,
#> id = Pig, corstr = "ind")
#>
#> Coefficients:
#> Estimate Std.err Wald Pr(>|W|)
#> (Intercept) 15.07283 1.42190 112.371 <2e-16 ***
#> Time 6.94829 0.07979 7582.549 <2e-16 ***
#> EvitEvit100 2.08126 1.84178 1.277 0.258
#> EvitEvit200 -1.11327 1.84830 0.363 0.547
#> CuCu035 -0.78865 1.53486 0.264 0.607
#> CuCu175 1.77672 1.82134 0.952 0.329
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation structure = independence
#> Estimated Scale Parameters:
#>
#> Estimate Std.err
#> (Intercept) 48.28 9.309
#> Number of clusters: 72 Maximum cluster size: 12
anova(gee_independent)
# 结果解读:Time变量显著影响体重
# Interpretation of results: Time variable significantly affects weight
# 交换相关结构假设模型(Exchangeable correlation structure)
gee_exchangeable <- geeglm(model_formula, id = Pig, data = dietox,
family = gaussian, corstr = "ex")
summary(gee_exchangeable)
#>
#> Call:
#> geeglm(formula = model_formula, family = gaussian, data = dietox,
#> id = Pig, corstr = "ex")
#>
#> Coefficients:
#> Estimate Std.err Wald Pr(>|W|)
#> (Intercept) 15.0984 1.4206 112.96 <2e-16 ***
#> Time 6.9426 0.0796 7605.79 <2e-16 ***
#> EvitEvit100 2.0414 1.8431 1.23 0.27
#> EvitEvit200 -1.1103 1.8452 0.36 0.55
#> CuCu035 -0.7652 1.5354 0.25 0.62
#> CuCu175 1.7871 1.8189 0.97 0.33
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation structure = exchangeable
#> Estimated Scale Parameters:
#>
#> Estimate Std.err
#> (Intercept) 48.3 9.31
#> Link = identity
#>
#> Estimated Correlation Parameters:
#> Estimate Std.err
#> alpha 0.766 0.0326
#> Number of clusters: 72 Maximum cluster size: 12
anova(gee_exchangeable)
# 结果解读:Time变量依然是唯一显著的影响因素
# Interpretation of results: Time variable is still the only significant influencing factor
# AR(1) 自回归相关结构假设模型(Autoregressive correlation structure)
gee_ar1 <- geeglm(model_formula, id = Pig, data = dietox,
family = gaussian, corstr = "ar1")
summary(gee_ar1)
#>
#> Call:
#> geeglm(formula = model_formula, family = gaussian, data = dietox,
#> id = Pig, corstr = "ar1")
#>
#> Coefficients:
#> Estimate Std.err Wald Pr(>|W|)
#> (Intercept) 17.6124 1.3354 173.95 <2e-16 ***
#> Time 6.7324 0.0756 7921.11 <2e-16 ***
#> EvitEvit100 2.3782 1.7676 1.81 0.18
#> EvitEvit200 -0.9779 1.7369 0.32 0.57
#> CuCu035 -0.3976 1.3928 0.08 0.78
#> CuCu175 1.2376 1.7376 0.51 0.48
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation structure = ar1
#> Estimated Scale Parameters:
#>
#> Estimate Std.err
#> (Intercept) 50.5 9.41
#> Link = identity
#>
#> Estimated Correlation Parameters:
#> Estimate Std.err
#> alpha 0.933 0.0116
#> Number of clusters: 72 Maximum cluster size: 12
anova(gee_ar1)
# 结果解读:Time变量继续保持显著性,系数与标准误几乎未变
# Interpretation of results: The Time variable continues to remain significant, and the coefficient and standard error have almost remained unchanged.
# 非结构化相关结构假设模型(Unstructured correlation structure)
gee_unstructured <- geeglm(model_formula, id = Pig, data = dietox,
family = gaussian, corstr = "unstructured")
anova(gee_unstructured)
# 结果解读:Evit变量在该相关结构下显示出了一定的影响,系数与标准误有所变化
# Result interpretation: The Evit variable shows a certain influence under this correlation structure, and the coefficient and standard error have changed
# 结果汇总
# Results summary
model_summaries <- list(
"Independence" = summary(gee_independent),
"Exchangeable" = summary(gee_exchangeable),
"AR(1)" = summary(gee_ar1),
"Unstructured" = summary(gee_unstructured)
)
# 从模型结果中可以看出,Time变量在不同的相关结构假设下均表现出显著的影响,
# 而Evit变量仅在非结构化相关假设下表现出显著性,这表明不同的相关结构选择可能对模型结果有一定影响。
# It can be seen from the model results that the Time variable shows significant influence under different correlation structural assumptions.
# The Evit variable only shows significance under the unstructured correlation assumption, which indicates that different correlation structure choices may have a certain impact on the model results.
使用此脚本,请引用下文:
Yong-Xin Liu, Lei Chen, Tengfei Ma, Xiaofang Li, Maosheng Zheng, Xin Zhou, Liang Chen, Xubo Qian, Jiao Xi, Hongye Lu, Huiluo Cao, Xiaoya Ma, Bian Bian, Pengfan Zhang, Jiqiu Wu, Ren-You Gan, Baolei Jia, Linyang Sun, Zhicheng Ju, Yunyun Gao, Tao Wen, Tong Chen. 2023. EasyAmplicon: An easy-to-use, open-source, reproducible, and community-based pipeline for amplicon data analysis in microbiome research. iMeta 2: e83. https://doi.org/10.1002/imt2.83
Copyright 2016-2024 Defeng Bai baidefeng@caas.cn, Chuang Ma 22720765@stu.ahau.edu.cn, Jiani Xun 15231572937@163.com, Yong-Xin Liu liuyongxin@caas.cn
猜你喜欢
iMeta高引文章 fastp 复杂热图 ggtree 绘图imageGP 网络iNAP
iMeta网页工具 代谢组MetOrigin 美吉云乳酸化预测DeepKla
iMeta综述 肠菌菌群 植物菌群 口腔菌群 蛋白质结构预测
10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature
一文读懂:宏基因组 寄生虫益处 进化树 必备技能:提问 搜索 Endnote
16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
写在后面
为鼓励读者交流快速解决科研困难,我们建立了“宏基因组”讨论群,己有国内外6000+ 科研人员加入。请添加主编微信meta-genomics带你入群,务必备注“姓名-单位-研究方向-职称/年级”。高级职称请注明身份,另有海内外微生物PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。
点击阅读原文