plink进行GWAS分析时,协变量都要是数字协变量,因子协变量需要转化为dummy变量(哑变量)然后与数字协变量合并,通过--covar进行合并。
注意:GWAS中的协变量和一般模型中的协变量是不一样的。
「一般模型:」
❝协变量是指数字类型的变量。 ❞
「GWAS模型中:」
「举个例子:」
library(learnasreml)
data(fm)
head(fm)
str(fm)
这个Rep有5个水平(5个重复),是因子类型。在方差分析中,它为因子:
# mod anova
mod = aov(dj ~ Rep, data=fm)
summary(mod)
coef(mod)
这里面,Rep的方差分析,自由度为4,用coef查看系数时,给出每个水平的效应值。
在回归分析里面,它也为因子:
mod2 = lm(dj ~ Rep, data=fm)
summary(mod2)
anova(mod2)
在回归分析中,用的是lm函数,用summary给出每个水平的效应值,以及T检验的结果。用anova会打印出方差分析的结果。
上面的例子可以看出aov和lm函数是等价的。
如果我们将Rep变为虚拟变量,然后进行数字变量的回归分析,是什么样的?
library(useful)
xx = build.x(~Rep-1,data=fm,contrasts = F)
dat = cbind(xx[,-1],dj = fm$dj) %>% as.data.frame()
head(dat)
str(dat)
用R包useful
的函数build.x
将因子变为虚拟变量(数值变量),然后进行回归分析。
mod3 = lm(dj ~.,data=dat)
summary(mod3)
结果可以看出,用因子变为的虚拟变量(数字变量)结果是一样的。说明二者是等价的。
「这也是说明了,在GWAS分析中,你以为因子和变量是两个类型,但是在GWAS模型中,他们最后都变为了协变量。」
注意:
写到这里,我想到了一句话:
❝当你将方差分析和回归分析看做是一样的东西时,你就进阶了。 ❞
所以,统计课本里面,方差分析和线性回归分析,都是基于一般线性模型(GLM),放到GWAS分析中,就可以解释因子协变量和数字协变量,以及PCA协变量的区别了。
❝无它,在GWAS模型中,都会变为数值协变量。 ❞
「下一次推文,讲解如何在plink中构建协变量,包括PCA和因子协变量。欢迎继续关注。」