分享

技术文档 | 另类相关性分析:基于广义相加模型(GAM)的组学数据关联分析

 夏夜悠凉 2020-06-23

前言

在组学数据测序分析时,往往会涉及与临床特征数据关联分析。然而,临床特征数据与组学数据通常不会是简单的线性关系。一般情况下,我们可以通过散点图,初步判断其非线性关系,然而这种策略无法判断非线性关系的形式。那么如何从复杂的多维度的临床特征中找出与组学数据最相关的特征呢?本推文简单介绍广义相加模型(GAM:Generalized Additive Model),它允许我们在预先不知晓因变量与自变量之间关系的情况下,提供了一种非线性平滑项拟合模型的方法。

     概念

GAM, Generalized additive model, are simply a class of statistical Models in which the usual Linear relationship between the Response and Predictors are replaced by several Non linear smooth functions to model and capture the Non linearities in the data.

要点:当解释变量与效应变量间关系不明确时,通常可以使用广义相加模型来检测比变量间是否具有非线性关系。广义相加模型通过光滑样条函数、核函数或者局部回归光滑函数,对变量进行拟合

特点:介于普通线性模型和复杂的机器学习技术之间,给我们提供了理解并对于复杂系统建模的可能。

优点:GAMs是一种非线性拟合的方法,并且非常灵活,没有严格的方法限制

缺点:出现underfitting(欠拟合)和overfitting(过拟合)的问题。

R语言实现

一个简单的例子:菌群shannon指数与BMI,Age,Height数据的关联分析(可以加入更复杂的临床特征,PS:必须数字化指标):

library(mgcv) #包载入 使用里面的gam函数
mydata<-select(alpha,c(shannon,BMI,Age,Height))#数据导入
head(mydata)#检查下数据

shannon BMI Age Height
1 5.487247 22.8 61 148
2 4.433649 18.5 47 178
3 5.035471 19.1 48 169
4 2.636941 23.7 52 168
5 5.575832 21.6 56 158
6 6.099742 19.1 48 150

gam_model<-gam(shannon~s(BMI)# shannon为相应变量,BMI为解释变量
summary(gam_model)

数据返回

Family: gaussian
Link function: identity

Formula:
y ~ s(BMI)

Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.079 0.165 30.78 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
edf Ref.df F p-value
s(BMI) 1.255 1.468 1.489 0.177

R-sq.(adj) = 0.0507 Deviance explained = 8.38%
GCV = 1.0728 Scale est. = 1.0075 n = 37

结果解读:

  1. Family = gaussian 表示模型假定高斯正态分布,并且link function是identity,表明模型并没有转换prediction。

  2. Edf 表示自由度,越接近1表示拟合为直线(表示是线性关系),当自由度比1大,则表示为曲线关系,edf表示了拟合线的复杂程度。

  3. BMI对菌群shannon指数的影响水平p-value=0.177,解释能力为8.38%,说明影响不明显。

将三个变量(BMI,Age,Height)同时作为解释变量。

gam_model<-gam(shannon~s(BMI)+s(Age)+s(Height)+s(Height),data=mydata)
summary(gam_model)#输出计算结果

数据返回

Family: gaussian
Link function: identity

Formula:
shannon ~ s(BMI) + s(Age) + s(Height) + s(Height)

Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.0791 0.1442 35.23 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
edf Ref.df F p-value
s(BMI) 1.000 1.000 1.012 0.3234
s(Age) 7.349 8.252 1.994 0.0912 .
s(Height) 1.000 1.000 0.507 0.4824
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) = 0.275 Deviance explained = 46.3%
GCV = 1.0679 Scale est. = 0.76923 n = 37

模型诊断(常规check):

plot_gam_check(gam_model)

 

有了GAMs模型之后可以直接plot,看模型拟合的状况:

plot.gam(gam_model)

————————————————

参考文献

  1. https:///generalized-additive-models/

  2. https://zhuanlan.zhihu.com/p/112870342

  3. https://m-clark./generalized-additive-models/introduction.html

  4. https://www.douban.com/note/726787100/

作者/赵大侠  审核 编辑/Zinky

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多