1) Error(Facteur.aleatoire / Facteur.fixe) : typique du split-plot, cette syntaxe s'emploie lorsque le facteur aléatoire est au sommet de la hiérarchie. Elle semble aisée à transcrire dans les fonctions alternatives lme() ou lmer(), et on en trouve de nombreux exemples sur le net.
2) Error(Facteur.aleatoire %in% Facteur.fixe) : À l'inverse de la précédente, cette syntaxe exprime que le facteur aléatoire est niché dans le facteur fixe. Je n'ai pas compris comment cette disposition peut être spécifiée dans les fonctions lme(), lmer() ou ezANOVA(), ni trouvé d'exemples semblables traités avec elles dans la littérature ou sur le net.
Pourtant, le problème semble banal si l'on considère l'exemple suivant qui motive la présente requête : Nous avons cultivé des sujets (des plantes) sous divers régimes nutritionnels (Facteur fixe Nutrition) dans un dispositif aléatoire équilibré. À la récolte, chaque plante a été séparée en trois classes d'organes (Facteur fixe Organe: Feuilles, Tiges et Racines) qui ont été analysées pour leur composition minérale et organique. Nous attendons de l'analyse statistique de mesurer la sensibilité des organes à la nutrition, et si cette sensibilité est la même pour tous les organes (interaction Organe x Nutrition). En somme, les facteurs fixes "Nutrition" et "Organe" sont croisés, mais les Organes sont appariés sur les mêmes plantes, elle-mêmes nichées dans la nutrition. Voici, à titre d'exemple, l'analyse de variance de la teneur en saccharose :
Code : Tout sélectionner
> summary(aov(Saccharose ~ Nutrition*Organe + Error(Plant %in% Nutrition), data=Data))
Error: Plant:Nutrition
Df Sum Sq Mean Sq F value Pr(>F)
Nutrition 3 0.7754 0.25847 43.25 2.73e-05 ***
Residuals 8 0.0478 0.00598
---
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
Organe 2 0.01450 0.007252 1.007 0.387
Nutrition:Organe 6 0.06621 0.011036 1.532 0.231
Residuals 16 0.11526 0.007204
Cette procédure me satisferait pleinement si elle ne souffrait pas de deux limitations :
1) les fonctions residuals() et fitted() ne sont pas disponibles lorsqu'aov() comporte un terme Error. Avec quelques lignes de programmation, on arrive néanmoins à les extraire, mais ce n'est pas très générique ...
2) Suite à un accident, l'un des composés analysés comporte 2 données manquantes. Dans ce cas, en plus des problèmes posés par les calculs de SCE de type I, aov() "disjoncte" en testant le facteur Organe deux fois, une fois par terme d'erreur ...
Quelqu'un pourrait-il m'aider à trouver une alternative à aov() pour ce type de modèle statistique ?