Il y a sur ce forum un exemple traité (code, données et publi) de construction d'un modèle mixte sur des données de croissance. Le pb se rapproche bcp du vôtre. Voir
http://forums.cirad.fr/logiciel-R/viewtopic.php?t=245
Dans le cas de vos données, je ne vois pas bien si vous avez "seulement" 2 observations par an et par site, ou si les observations sont répétées chaque année pour chaque catégorie enclos / exclos. Si vous avez bcp de répétitions par site, vous pouvez vous permettre de coder l'année en facteur et de mettre cette variable dans les effets fixes. Le modèle peut être ajusté avec bcp de fcts différentes dans plusieurs packages R, par exemple lme dans le package nlme:
Code : Tout sélectionner
library(nlme)
fm1 <- lme(recouvrement ~ A + B + T, random = ~ 1 | S, data = mydata)
où mydata est le data.frame contenant les données et s est la variable décrivant le site.
* Attention au codage de T (doit être un facteur). En passant, ce serait une très mauvaise idée d'utiliser les noms t et s dans le script car ce sont des noms de fonction R ==> risque de conflit.
* dans ce cas, l'autocorrélation des observations est prise en compte par l'effet aléatoire et il n'y a pas lieu de modéliser l'autocorrélation des résidus, sauf à rechercher une structure spatiale.
Sinon (2 observations / site / an), vous n'aurez pas assez de données pour estimer correctement ce modèle et il faudra une autre stratégie. Je vois deux possibilités:
1. Mettre l'année en effet aléatoire, i.e., vous aurez deux effets aléatoires "croisés" (crossed random effects). La solution la plus simple sous R est d'utiliser le package lme4, le modèle pouvant s'écrire:
Code : Tout sélectionner
library(lme4)
fm2 <- lmer(recouvrement ~ A + B + (1 | t) + (1 | s), data = mydata)
Dans ce cas, pas besoin de spécifier une structure d'autocorrélation des résidus.
2. Si l'exploration graphique révèle une structure de corrélation simple dans les données, vous pouvez ignorer l'année dans les effets fixes et aléatoires, et représenter l'autocorrélation des résidus avec un modèle explicite. Je n'ai pas le temps de rentrer dans les détails: consulter la référence indiquée avec l'analyse des données de croissance. Il vous faudra utiliser le package nlme:
Code : Tout sélectionner
library(nlme)
fm3 <- lme(recouvrement ~ A + B,
random = ~ 1 | S,
correlation = corAR1(form = ~ 1 | Time),
data = mydata)
pour modéliser l'autocorrélation des observations successives par une modèle auto-régressif d'ordre 1. Attention, il faudrait probablement coder l'année sous forme de valeurs entières commençant à 1 (1997 = 1, 1998 = 2,...).
Il faut du temps pour comprendre ces modèles et l'ensemble des concepts et méthodes qui sont mises en oeuvre dans ce cas. Le bouquin de Pinheiro et Bates est très bien fait mais il vous faudra y consacrer qques semaines de lecture, exercices, etc.
Attention, les packages nlme et lme4 ne doivent pas être chargés au cours de la même session (conflits) ==> démarrer deux sessions parallèles ou successives pour ajuster les modèles.
Bon courage,
Renaud