Je dois transcrire un code SAS en un code R. Je travaille sur des données longitudinales et je veux spécifier la structure de covariance des résidus (en l'occurrence un processus auto-régressif d'ordre 1).
Le code SAS est le suivant :
Code : Tout sélectionner
Proc mixed data=df;
class id td;
model Y=t /solution;
repeated td/ subject=id type=AR(1) LOCAL;
l'option LOCAL permettant d'obtenir une erreur indépendante en plus de l'erreur autocorrélée.
Le package nlme est censé me permettre de spécifier ce type de structure (ce que ne permet pas lme4).
Je pensais réussir avec la fonction lme() mais je n'y suis pas parvenu. Après d'âpres recherches sur la toile, il se trouve que c'est gls() qu'il faut utiliser "Be sure to switch to gls when you remove the random effects." lu sur stackoverflow http://goo.gl/5FzCd
Code : Tout sélectionner
gls(Y~t, data=df, na.action = (na.omit), method = "REML",
correlation=corAR1(form=~1|id))
Avec cette syntaxe j'obtiens la même estimation (que la syntaxe SAS sans l'option LOCAL) pour le phi (AR1), mais j'ai une différence au niveau de l'erreur.
Quelqu'un peut-il m'éclairer... J'ai l'impression de ne plus comprendre ce que je fais, et pire, je n'y arrive pas
Cordialement