How to remove effect of different batch variances in linear modelling

I have a dataset with 300 rows/genes and 900 columns/samples. The data were collected in 10 different batches, and study design was balanced in all of the batches. However, there is a huge difference in variances of each gene across multiple batches (1-5 units). I assume because of this, I am not getting statistically significant results because higher variance batches reduce the t-statistics.

One approach, I was taking is removing those high variance batches and do t-tests on small variance batches. However, is there any method that I can use which can account for different batch variances?

a <- rnorm(20, mean = 15, sd = 2) b <- rnorm(20, mean = 13, sd = 2) boxplot(a,b) t.test(a,b) data: a and b t = 2.8167, df = 36.319, p-value = 0.007799 

Now I add another batch with same means but higher standard deviation-

A <- c(a,rnorm(20, mean = 15, sd = 5)) B <- c(b,rnorm(20, mean = 13, sd = 5)) boxplot(A,B) t.test(A,B) data: A and B t = 0.69185, df = 77.973, p-value = 0.4911  As I add another batch with higher standard deviation, I lose significance.

• Take a look at stats.stackexchange.com/q/256860/121522 – mkt - Reinstate Monica Apr 9 '18 at 18:11
• The page focuses on heteroscedasticity where data for output groups have different variances. In my case, when I join two batches ('a' -> 'A') of the same group because of the higher variance of added batch I lose significance. Is there a way to consider this batch variance while performing t-test or other tests? – Shubham Gupta Apr 9 '18 at 21:34