4.5 years ago by

Cambridge, United Kingdom

From a practical perspective, the interpretation of your coefficients will change. In the first model with `~0`

, each coefficient represents the average of the samples at each level of `foo`

, i.e., the first coefficient represents the average for A, while the second represents the average of B. In the second model, the intercept represents the average of the samples for A, while the second coefficient represents the increase in the average of B over that of A. Indeed, the systematic component for the samples in B is the sum of the first and second coefficients, while the systematic component for samples in A is just comprised of the first coefficient.

Both models are valid inputs into `limma`

. The choice between the two depends on which one is easier to interpret. For complicated models, I like to do without the intercept as I can interpret each coefficient by itself, without having to mentally consider its meaning relative to some intercept value. However, for simple models like the one you presented above, the analysis may be easier with the intercept as you can just drop the second coefficient to get the difference between the two groups - there's no need to use `contrasts.fit`

.