表型矫正(adjustment)

学习统计最好能理论结合编程,效率会比较高,所以遇到统计问题时,我都先问一下(google)有没有代码,先扒一扒。在Rstudio中,光标放在一个函数上,F2能显示这个函数的代码,非常有用。今天说一下表型矫正问题,之前困扰了我一段时间,不知道怎么处理,现在搞清楚了。

在多数情况下,我们分析表型数据(测的各种指标)的本质是进行变异分析,也就是哪些因素对表型起了作用,显著与否。举一个简单的模型(数学公式):
y=\mu + coef*Treatment+e
\mu是均值, coef是系数,e是残差(residuals/error),就是不能被解释的部分。

表型矫正可以归为数据预处理部分。一般而言,我们不关注这个因素,但它对结果又有比较重要的作用,所以提前矫正一下(不矫正就容易得到错误的结果)。当然把这个因素放到大模型中也是一样的,但如果后边的模型如果很复杂(计算量大或是不容易收敛),这一步就要单独来做。怎么做呢?

依旧以上面那个模型为例,比如我们想要把Treatment这个效应矫正掉,就从表型值y中减掉效应值(coef*Treatment)这一部分即可。残差就是e=y-\mu - coef*Treatment,拟合值就是\hat{y}=\mu + coef*Treatment。下面给出具体的代码:

# model
lm_jj <- lm(y ~ Treatment, data = jj)

# Treatment adjustment
## coefficients[2] is coef
## coefficients[1] is \mu
y_adj <- jj$y - lm_jj$coefficients[2] * lm_jj$Treatment

# residuals
residuals(lm_jj)
## or
resid_jj <- jj$y - lm_jj$coefficients[1] - lm_jj$coefficients[2] * lm_jj$Treatment

## y estiamted values
y_est <- jj$y - residuals(lm_jj)

-end-

你可能感兴趣的:(表型矫正(adjustment))