[R] Split plot analysis problems

Mark Difford mark_difford at yahoo.co.uk
Wed Jul 22 16:47:37 CEST 2009


Hi Jean-Paul,

>> ... since R is not able to extract residuals?

R can extract the residuals, but they are a "hidden" in models with an error
structure

##
str(aov(PH~Community*Mowing*Water + Error(Block)))
residuals(aov(PH~Community*Mowing*Water + Error(Block))$Block)
residuals(aov(PH~Community*Mowing*Water + Error(Block))$Within)

Regards, Mark.


Jean-Paul Maalouf 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 at 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.
> 
> 

-- 
View this message in context: http://www.nabble.com/Split-plot-analysis-problems-tp24589402p24607912.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list