Thanks a lot for your answer.
My blocks are geographically well-separated, and within each block my
four treatments are randomized. Therefore I am choosing the first model.
Do you have any idea on how can I verify preliminary assumptions in
this model (normality of the residuals and variance homogeneity),
since R is not able to extract residuals?
residuals(aov(PH~Community*Mowing*Water + Error(Block)))
NULL
Regards,
JPM
Quoting Kevin W <kw.st...@gmail.com>:
I don't think you are clear enough about the layout within each block. If
the four treatments are randomized, I would choose the first model.
KW
On Tue, Jul 21, 2009 at 9:38 AM, Jean-Paul Maalouf <
jean-paul.maal...@u-bordeaux1.fr> wrote:
Hello,
I would be very grateful if someone could give me a hand with my split plot
design problems.
So here is my design :
I am studying the crossed-effects of water (wet/dry) and mowing
(mowed/not-mowed = nm) on plant height (PH) within 2 types of plant
communities (Xerobromion and Mesobromion) :
- Within each type of communities, I have localised 4 blocks
- In each block, I have defined 4 plots in order to have the 4 possible
treatments of both the water and mowing factors : nm/dry ; mowed/dry ;
mowed/wet ; nm/wet.
Here is my data table :
Community Block Mowing Water PH
1 Meso b1 Mowed Wet 7.40
2 Meso b1 nm Wet 13.10
3 Meso b1 Mowed Dry 5.55
4 Meso b1 nm Dry 10.35
5 Meso b2 nm Dry 10.70
6 Meso b2 Mowed Dry 6.38
7 Meso b2 nm Wet 9.75
8 Meso b2 Mowed Wet 6.35
9 Meso b3 nm Wet 9.60
10 Meso b3 Mowed Dry 5.10
11 Meso b3 nm Dry 10.05
12 Meso b3 Mowed Wet 6.25
13 Meso b4 nm Wet 9.00
14 Meso b4 Mowed Wet 6.50
15 Meso b4 nm Dry 7.75
16 Meso b4 Mowed Dry 5.90
17 Xero b5 nm Wet 7.69
18 Xero b5 Mowed Wet 8.11
19 Xero b5 nm Dry 3.98
20 Xero b5 Mowed Dry 3.69
21 Xero b6 nm Wet 5.24
22 Xero b6 Mowed Wet 4.22
23 Xero b6 nm Dry 6.55
24 Xero b6 Mowed Dry 4.40
25 Xero b7 Mowed Dry 3.79
26 Xero b7 nm Dry 3.91
27 Xero b7 nm Wet 9.00
28 Xero b7 Mowed Wet 8.50
29 Xero b8 Mowed Dry 3.33
30 Xero b8 nm Wet 6.25
31 Xero b8 Mowed Wet 8.00
32 Xero b8 nm Dry 6.33
I actually have 2 questions :
I wrote my model in two different ways, and there were differences in
P-Values according to the model written :
First model : summary(aov(PH~Community*Mowing*Water + Error(Block)))
Error: Block
Df Sum Sq Mean Sq F value Pr(>F)
Community 1 42.182 42.182 24.407 0.002603 **
Residuals 6 10.370 1.728
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
Mowing 1 40.007 40.007 21.1747 0.0002215 ***
Water 1 23.120 23.120 12.2370 0.0025673 **
Community:Mowing 1 21.060 21.060 11.1467 0.0036554 **
Community:Water 1 6.901 6.901 3.6524 0.0720478 .
Mowing:Water 1 1.611 1.611 0.8527 0.3680090
Community:Mowing:Water 1 0.858 0.858 0.4542 0.5089331
Residuals 18 34.008 1.889
---
- Second model (assuming that Mowing*Water are nested inside the Block
factor) :
summary(aov(PH~Community*Mowing*Water + Error(Block/(Mowing*Water))))
Error: Block
Df Sum Sq Mean Sq F value Pr(>F)
Community 1 42.182 42.182 24.407 0.002603 **
Residuals 6 10.370 1.728
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
Error: Block:Mowing
Df Sum Sq Mean Sq F value Pr(>F)
Mowing 1 40.007 40.007 37.791 0.0008489 ***
Community:Mowing 1 21.060 21.060 19.893 0.0042820 **
Residuals 6 6.352 1.059
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
Error: Block:Water
Df Sum Sq Mean Sq F value Pr(>F)
Water 1 23.1200 23.1200 6.0725 0.04884 *
Community:Water 1 6.9006 6.9006 1.8125 0.22685
Residuals 6 22.8439 3.8073
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
Error: Block:Mowing:Water
Df Sum Sq Mean Sq F value Pr(>F)
Mowing:Water 1 1.6110 1.6110 2.0085 0.2062
Community:Mowing:Water 1 0.8581 0.8581 1.0697 0.3409
Residuals 6 4.8126 0.8021
Both models give me interesting (but different!) results. Which one would
be the most appropriate?
Second question : How can I verify preliminary assumptions (normality of
residuals and variance homogeneity) in this kind of models?
When I ask R to extract residuals, the answer is "NULL":
residuals(aov(PH~Community*Mowing*Water + Error(Block/(Mowing*Water))))
NULL
residuals(aov(PH~Community*Mowing*Water + Error(Block)))
NULL
A huge thanks to the one who will rescue (or at least try to rescue) my
PhD!
Sincerely,
--
Jean-Paul Maalouf
UMR 1202 BIOGECO
Inra - Université Bordeaux 1
Bâtiment B8, Avenue des Facultés
33405 Talence, France
Tel : 05 40008772
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Jean-Paul Maalouf
UMR 1202 BIOGECO
Inra - Université Bordeaux 1
Bâtiment B8, Avenue des Facultés
33405 Talence, France
Tel : 05 40008772
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.