Duncan’s statistical test for blocks designed experiment with full factorial scheme

EDIT: Already got an answer to question 4 (programming). Question will remain on theoretical issues about factorial experiment designed in blocks and Duncan's test.

Given one experiment designed in blocks and with a full factorial scheme with two independent variables with two levels each (2 x 2):

Factor 1: Genetic Material (A and B);
Factor 2" Fertilizer (C and D);
Number of blocks: 3;
Repetition of each treatment inside a block: 2;
Attribute of interest (DV): height (H);


This is a reproducible example of my data [in R]:

block_number = c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3)
genetic_material = c("A","A","A","A","B","B","B","B","A","A","A","A","B","B","B","B","A","A","A","A","B","B","B","B")
fertilizer = c("C","C","D","D","C","C","D","D","C","C","D","D","C","C","D","D","C","C","D","D","C","C","D","D")
repetition_inside_block = c(1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2)
H = c(23,34,21,12,45,23,44,21,11,12,34,23,43,21,14,16,24,32,52,11,32,25,21,23)
data = data.frame(cbind(block_number,genetic_material,fertilizer,repetition_inside_block,H))

1. What are good practices to analyze differences in mean between the different levels of the factors, in this type of experiment?

I am planning to use Duncan's new multiple range test for comparison of means between levels inside each variable and between variables, but I am not sure if it is the best alternative.

2. What does the following sentence mean?

There are some critics relying on Duncan’s test like the following:

“Duncan's test does not control family wise error rate at the specified alpha level. It has more power than the other post tests, but only because it doesn't control the error rate properly”

Source of quotation: R “agricolae” package, Duncan.test function.

3. Am I on the right track using Duncan’s test? If no, what would be a better option, in this situation?

I know this test is widely used in agricultural experiments (which is my case), and that there are better chances to reject null hypothesis (means are equal) than a Tukey test, for example.

4. For the above dataset how may I run Duncan’s test on R.?**

Answer to the last question: I got it using fat2.rbd1 function (it is specific for full factorial experiment 2 x 2) from package ExpDes.

I think I have the answers for these questions:

Answers for questions (1), (2) and (3)
Since you want to compare averages between treatments, I would recommend to you to try first Tukey's test that is the most rigorous among the existent tests. Tukey's test is good if you want to avoid type I erros (reject null hypothesis, when null hypothesis is true).

For example:

Considering null hypothesis = Ho
Average treatment 1 = u
Average treatment 2 = uo
Ho: u = uo
H : u < uo


However, if in your results you are expecting a significant difference and you don't observe this difference using Tukey's test, then you should try Duncan's test since it differentiate more easily the treatments than Tukey. However, Duncan's test is more hard-work than Tukey, because Duncan's test requires calculation of several minimum significant differences (m.s.d.) and you have to ordinate the averages from the highest to the lowest. In the ordered set of averages, the comparison between the highest and lowest average corresponds to a range that covers all "N" averages. If the difference between the highest and lowest average is significant, it is estimated another m.s.d. to compare means covering a range of N - 1, and so on.

In R, since you have repetitions inside the blocks, first, I would recommend to calculate the averages in excel and make a table with these averages of blocks so you can use the follow script in R:

fat2.rbd(factor1, factor2, block, response)


You should make a table with the factors, blocks and responses in these order in the excel, and save it in csv to run the data.
The script:

fat2.rbd(factor1, factor2, block, response)


It will automatically give to you the factorial ANOVA and Tukey's test.

To run Duncan's test you should use the follow script:

fat2.rbd(factor1, factor2, block, response, mcomp="duncan")


It will give to you the factorial ANOVA and Duncan's test. In ANOVA you will see if there are interactions among the Genetic Materials and the Fertilizers.
If there is no interaction between the factors, you can explain the behavior of your data with the following chart:
However, if there is interaction between Genetic Material and Fertilizer, a possible behavior could look like the following: