5
$\begingroup$

I'm trying to make sure I use the correct statistical tests on a group of experiments. Suppose I perform 5 experiments. In each experiment a single batch of cells is partitioned into 6 batches of equal size, 3 receive one treatment, and 3 receive another. After a period of time I take a measurement. So I have 5 experiments (biological replicates) x 2 treatments x 3 technical replicates each.

Here is the data:

structure(list(Experiment = c("a", "a", "a", "a", "a", "a", "b", 
"b", "b", "b", "b", "b", "c", "c", "c", "c", "c", "c", "a", "a", 
"a", "a", "a", "a", "b", "b", "b", "b", "b", "b", "c", "c", "c", 
"c", "c", "c", "d", "d", "d", "d", "d", "d", "e", "e", "e", "e", 
"e", "e"), Replicate = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("1", "2", "3"
), class = "factor"), Condition = c("Control", "Control", "Control", 
"Treatment", "Treatment", "Treatment", "Control", "Control", 
"Control", "Treatment", "Treatment", "Treatment", "Control", 
"Control", "Control", "Treatment", "Treatment", "Treatment", 
"Control", "Control", "Control", "Treatment", "Treatment", "Treatment", 
"Control", "Control", "Control", "Treatment", "Treatment", "Treatment", 
"Control", "Control", "Control", "Treatment", "Treatment", "Treatment", 
"Control", "Control", "Control", "Treatment", "Treatment", "Treatment", 
"Control", "Control", "Control", "Treatment", "Treatment", "Treatment"
), Outcome = c(4.587, 4.317, 2.701, 5.293, 6.341, 4.222, 1.922, 
2, 1.815, 1.515, 2.435, 2.408, 2.741, 3.1, 4.832, 3.851, 5.251, 
4.796, 4.587, 4.317, 2.701, 5.293, 6.341, 4.222, 1.922, 2, 1.815, 
1.515, 2.435, 2.408, 2.741, 3.1, 4.832, 3.851, 5.251, 4.796, 
4.34262726045549, 5.07005370965656, 3.023745836476, 5.23437121243791, 
6.38505931216395, 3.72020626149008, 1.8174210928025, 2.03374053072335, 
2.24793604273508, 1.43128735459152, 1.96194778022775, 3.2230322670882
)), row.names = c("7", "8", "9", "10", "11", "12", "24", "25", 
"26", "30", "31", "32", "36", "37", "38", "42", "43", "44", "71", 
"81", "91", "101", "111", "121", "241", "251", "261", "301", 
"311", "321", "361", "371", "381", "421", "431", "441", "72", 
"82", "92", "102", "112", "122", "242", "252", "262", "302", 
"312", "322"), .Names = c("Experiment", "Replicate", "Condition", 
"Outcome"), class = "data.frame")

My question is, would it be appropriate to model this with a mixed model? If so, would this model be proper:

lmer(data = experiment_data, Outcome~Condition + (1|Experiment/Replicate))

Or do I even need to include replicate in here? Can I just do:

lmer(data = experiment_data, Outcome~Condition + (1|Experiment))

I know one safe way to analyze the data would be to pool the technical replicates into a single mean value, but this seems like a waste of data. Furthermore, I'm interested in looking at how much variability is induced by technical and biological replication.

Thank you for the help!

$\endgroup$
3
$\begingroup$

It's good to see what seems to be a well-thought-out experimental design that thoughtfully examines different sources of variability. Your last model could be what you need, but you might need to change it somewhat depending on the types of differences you are expecting to find among biological replicates (called "Experiments" in this case.)

What you call "Replicates" shouldn't need to be coded here, as statistical analysis programs will typically treat all observations having the same set of predictor variables as (technical) replicates. That's the case with R, as you are using. So I see no reason to use your first model.

The way you have coded the Experiment term in the second model is correct if the baseline value of Outcome differs among Experiments but the effect of Condition is the same among Experiments. That is, you have allowed for a random intercept depending on Experiment, but the same main effect of Condition among all Experiments. If you expect that the effect of Condition also might vary among Experiments, then you should modify your model to allow for random slopes, too. This site's lmer cheat sheet shows details of how to think about the issues involved and to code according to the hypotheses you wish to test.

With your second model, the estimated random-effects variance would provide a measure of variability in baseline Outcome values among Experiments. The residual error would provide a measure of technical variability after Condition and that variability in baseline Outcome values are taken into account.

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.