[R] problème utilisation_ GNLS : moindres carrés généralisés

problème utilisation_ GNLS : moindres carrés généralisés [R] - Divers - Programmation

Marsh Posté le 24-01-2012 à 15:27:26    

Bonjour les amis,
 
C'est la première fois que je viens du côté de "R", j'ai un soucis avec une fonction. Je veux ajuster par moindres carrés un modèle donné et pour cela j'utilise une fonction de régression avec une variance hétérogène via gnls. Mais j'ai toujours une erreur qui apparaît.
 

Code :
  1. # les declarations
  2. # le fichier dat contient les températures dans la première colonne et les poids dans la seconde colonne.
  3. ble=read.table("ble.dat",header=TRUE)
  4. attach(ble)
  5. library(nlme)
  6. # la fonction de régression avec deux paramètres : theta 1 et theta 2
  7. Freg = function(x,theta) {
  8.   theta[1]*exp((theta[2]*x))
  9. }
  10. # ajustement par moindres carrés de la fonction
  11. ajust3 = gnls(poids~Freg(temperature,theta),data=ble,start=list(theta = c(75,0.002)),weights=varPower())


 
En lançant ajust3 j’obtiens cette erreur :

Erreur dans model.frame.default(formula = ~. + poids + temperature + theta, :
les longueurs des variables diffèrent (trouvé pour 'theta')

 
Voilà, j'espère que ça vous inspire et que vous avez une petite idée  :D  
Merci ^^


Message édité par deltamoins le 24-01-2012 à 18:37:23
Reply

Marsh Posté le 24-01-2012 à 15:27:26   

Reply

Marsh Posté le 25-01-2012 à 20:38:51    

Alors le problème est RESOLU, il fallait faire ceci :  
 
#changer la forme de la déclaration de la fonction
Freg2 = function(x,theta1,theta2,theta3) {
  theta1*exp((theta2*x)^theta3)
}
 
#et faire l'appel de la fonction dans la méthode des moindres carres comme ça :
ajustGNLS2 = gnls(poids~Freg2(temperature,theta1,theta2,theta3),data=ble,start=c(theta1=75,theta2=0.002,theta3=4),weights=varPower())

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed