# Testing for Normality

As part of an assignment I have to do a leakage study for a chemical product. We have been provided with data from 8 different batches, with 12 observations from each batch. The observed variable represents concentration levels. The batches are numbered B1 to B7, with batch B1 being the ground truth. Some of the batches from B2 to B7 could have been affected by leakage resulting in an increase in concentration levels. We have to decide which batches could have been affected.

The sample mean and sample standard deviation of each batch is different. Further the samples do not appear to be from normal distribution

The first step I want to do is to apply transformation and check for normality. However I have these doubts:

1. Is it correct to pool data from all batches, apply transformations and then test for normality?
2. If I handle each batch separately, it might be that different batches require different transformations to achieve normality. How do I proceed in this case?

Thanks.

1) If you know the groups are expected to have different distributions and your interest is in characterizing those differences, then it does not make sense to pool them because pooling assumes they come from the same distribution.

2) If you apply different data transformations to different groups, then the resulting data are on different scales and can't be easily compared.

Given your concerns about the normality assumption and just 12 data points per group, you might want to consider non-parametric techniques, e.g., compare samples B2-B8 to the ground truth using Mann-Whitney U tests.

• Thanks Slow loris. We have to use parametric tests for the assignment. In this case is it valid to test each batch separately for normality and adapt the type 1 error since type 1 error will be inflated leading to the test rejecting normality for some batches even if they are normal? However I am not sure how we adapt type 1 error. Does it simply involve taking a lower significance level e.g. .01 instead of .05 ? – artemis May 16 '16 at 12:28

Normality assumptions in linear models and ANOVAs are about the models' residuals, not of the variables themselves.

in R is very easy:

mod = lm(concentration ~ batches)
plot(mod)


The second plot (a QQ plot) will give you the required information: if the points are (approximatively) on the line, than the normality assumption of your model is satisfied.

If you want an explicit test you could perform a shapiro-wilk on the residuals.

shapiro.test(mod\$residuals)


That is a general and correct approach. that said, if you don't have any other variables in your model, only a continuous outcome and a factorial predictor (branches) you could as well check normality for each individual branch raw data, it would be analogous, just more cumbersome.

Finally doing different transformations on different branches seems like a very bad idea. You should think at what the meaning is of comparing the raw data of one branch with (say) the log of another branch. If it make sense for your research topic, than it will make sense in the statistics as well, and the opposite.

• if the qqplots show strange violations of normality, follow Slow loris great advice, and go with pairwise mann-whitney tests! – Johann May 15 '16 at 14:37
• But that QQ plot is based on the assumption that the errors have the same variance -- you've already been told that's not the case, so the QQ plot could indicate non-normality when you actually have it in each group – Glen_b May 16 '16 at 2:14
• "you've already been told that's not the case", where? – Johann May 16 '16 at 12:33
• In the question – Glen_b May 16 '16 at 12:49