Bonjour à tous,
Je dispose d'un jeu de données (cf. pièce jointe) avec une variable dépendante (Res) et deux variables indépendantes (ModeF et T; avec T la variable décrivant les 2 temps auxquels les données ont été recueillies). Je souhaite procéder à la régression linéaire suivante :
Cependant, les résidus du modèle présentent une hétéroscédasticité qui croit en fonction de ModeF. Plus ModeF augmente, plus l'hétéroscédasticité de mes résidus est importante. Pour résoudre ce problème, je souhaite procéder à une régression par les moindres carrés pondérés via la fonction "gls" du package "nlme" de R. Cette fonction présente un argument "weights" qui permet d'allouer moins d'importance aux points pour lesquels la variabilité est forte et inversement. Cependant, je ne sais pas comment renseigner l'argument "weights"!
Dans l'aide de R, on peut trouver un certain nombre de fonction de variance (appelée "VarClasses") tel que varExp que j'ai tenté d'utiliser:
m3=gls(Res~ModeF*T, a2, weights=varExp(a2$ModeF))
Mais j'obtiens le message d'erreur suivant:
1 2 3
| > m3=gls(Res~ModeF*T, a2, weights=varExp(a2$ModeF))
Error in Initialize.varExp(X[[1L]], ...) :
initial value for "varExp" should be of length 1 |
J'ai également tenté comme suit afin que le poids soit de moins en moins important au fur et à mesure que ModeF augmente:
m3=gls(Res~ModeF*T, a2, weights=(1/a2$ModeF))
Mais j'obtiens cette fois-ci l'erreur suivante:
1 2 3
| > m3=gls(Res~ModeF*T, a2, weights=(1/a2$ModeF^2))
Error in varFunc(weights) :
can only construct "varFunc" object from another "varFunc" object, a formula, or a character string |
Merci pour l'aide que vous pourrez m'apporter!
Partager