How to adjust data for "continuous" covariates ?
2
3
Entering edit mode
9.1 years ago
housebie ▴ 50

We know packages like SVA and ComBat, which can be used to adjust data for batch effects or biological artifacts. However, in most cases, all adjusting variables are treated as factors. So I want to know whether anyone could suggest me any package where in I could adjust for the "continuous" variables/covariates. I have multiple of them to adjust for. Could anyone suggest me an easy-to-use method?

I have also read about "cbcbSEQ" with a modified ComBat function (Post: How To Adjust Data For Confounding Covariates Before Pca?). Has anyone tried it for continuous variables?

R • 14k views
0
Entering edit mode

In R you can just include the values of the continuous variable in your design matrix

0
Entering edit mode

@russ_hyde.. thanks for your reply. But I do not quite understand how do I do that. I do not want to include these covariates in my linear model. I would like to adjust for them separately in my data and then work with the adjusted residual matrix.

10
Entering edit mode
9.1 years ago

So maybe fit a linear model through your response variable as a function of the covariates you want to correct for. Then extract the residuals from the model and use those as your new response variable. E.g.:

## Example data:
n<- 100
dat<- data.frame(y= c(rnorm(n= n, mean= 1), rnorm(n= n, mean= 2)), sex= rep(c('A', 'B'), each= n), age= c(rnorm(n= n, mean= 1), rnorm(n= n, mean= 5)))

## Response y varies with age:
cor.test(dat$y, dat$age)

## Fit model:
lm1<- lm(y ~ sex + age, data= dat)

## Now residuals are not correlated with age:
cor.test(lm1$residuals, dat$age)

## Residuals vs original
plot(lm1$residuals, dat$y)
## ... Now use lm1$residuals instead of dat$y

Does it make sense?

0
Entering edit mode

Thanks a ton @dariober.

0
Entering edit mode

that sounds like a problem you should solve

0
Entering edit mode

@dariober I just have another question here. In this case, sex is the phenotype and not the covariate we want to correct for. So does this mean that, residuals that we are able to get here, are independent of the phenotype (in this case: sex)? And only depends on the covariates?

So in other words, giving another phenotype here, instead of sex, could have not altered the residuals at all??

0
Entering edit mode
## ... Now use lm1$residuals instead of dat$y

Would you please be able to explain Why this residuals are used as new phenotype and how?

0
Entering edit mode

@Bioinformatics_NewComer, Did you figure this one out ? Using residual as adjusted value does not make sense to me. Thanks.

0
Entering edit mode

This may be of help to you.

0
Entering edit mode

@dariober, I am new to this concept and have one question for you. Do we take negative residuals as it is or get the magnitude of residuals as adjusted data. Thanks

1
Entering edit mode
4.4 years ago
fansili2013 ▴ 30

https://stats.stackexchange.com/questions/286850/linear-regression-confounder

0
Entering edit mode

In case that URL goes out of date, could you expand on your criticisms of @dariober s answer please @fansil2013