Modélisation non linéaire avec R

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Antoine Rostang
Messages : 3
Enregistré le : 06 Fév 2018, 16:05

Modélisation non linéaire avec R

Messagepar Antoine Rostang » 08 Fév 2018, 16:21

Bonjour,
je ne suis qu'un jeune doctorant qui débute avec R et vous remercie par ailleurs pour votre indulgence sur la maîtrise du langage R.
Mon problème:

J'ai 96 observations d'AUC suite à l'administration de doses croissantes d'un médicament sur 6 chiens. Chaque dose étant donnée chaque semaine, la concentration plasmatique étant < LOQ en moins de 24h, on considère qu'il n'y a pas d'influence de la dose précédente sur l'AUC suivant.
Le processus d'absorption étant via transporteurs actifs, on s'attend à une saturation des transporteurs au-delà d'un seuil à définir. Il n'a pas été trop compliqué de démontrer la non linéarité AUC/Dose. Maintenant, je cherche à savoir si à partir de ces données, je pourrais déterminer le seuil en question. En fouillant différents forums, je ne suis pas parvenu à le programmer.

J'ai essayé ce modèle, qui fonctionne très bien mais il est faux, ne prenant pas en considération la variable aléatoire "chien". Et si j'applique cette formule à chaque chien pris séparément,le modèle ne fonctionne pas.

Code : Tout sélectionner

LP<-  function (b, Theta0, Theta1, Theta2)
{
  Y<-Theta0+Theta1*(b-Theta2)
  Y[b>=Theta2]<-Theta0
  return(Y)
}

LP

Fit<-nls(log(AUC)~LP(POSO, Theta0, Theta1, Theta2), start=list(Theta0=5, Theta1=3, Theta2=0.5), data=da5)


Merci pour votre aide svp

Stéphane Adamowicz
Messages : 203
Enregistré le : 07 Mar 2012, 10:13
Contact :

Re: Modélisation non linéaire avec R

Messagepar Stéphane Adamowicz » 09 Fév 2018, 13:36

Bonjour,

votre message est un peu trop vague pour y répondre. Qu'entendez vous par le modèle ne fonctionne pas ?
Stéphane Adamowicz
INRA, UR 1115 Plantes et Systèmes de Culture Horticoles (PSH)
domaine St Paul, site agroparc
84914 Avignon, cedex 9

Antoine Rostang
Messages : 3
Enregistré le : 06 Fév 2018, 16:05

Re: Modélisation non linéaire avec R

Messagepar Antoine Rostang » 09 Fév 2018, 15:03

Bonjour,
nsl ne parvient pas à trouver les valeurs des Theta (je cherche Theta 2), mais je crois que cela est lié à un nombre insuffisant de données (96/6 = 16) . Si j'arrivais à prendre en compte l'ensemble des 96 données, mais en spécifiant le facteur aléatoire chien, je pense que le modèle pourrait fonctionner. Et c'est tout particulièrement ce programme que je peine à écrire. En modèle linéaire mixte, je sais l'écrire ((1|CHIEN)) mais toutes mes tentatives ici se sont soldées par un échec. Je crois avoir lu sur un forum que nls n'était pas le plus adapté, et qu'il me faudrait utiliser lmer mais je n'y suis pas non plus parvenu en fait...
Merci pour votre aide

Stéphane Adamowicz
Messages : 203
Enregistré le : 07 Mar 2012, 10:13
Contact :

Re: Modélisation non linéaire avec R

Messagepar Stéphane Adamowicz » 12 Fév 2018, 07:57

Bonjour,

il n'est pas rare que l'on soit contraint de tâtonner pour donner de bonnes valeurs de départ aux paramètres, et qu'il faille éventuellement en proposer de différentes pour chaque chien. Il est toujours recommandé de commencer par faire des diagrammes pour voir si les valeurs que l'on propose sont raisonnables. Ceci dit, l'algorithme par défaut n'est pas toujours le plus performant. Dans les cas difficiles, j'essaye d'autres algorithmes, souvent avec bonheur.
Stéphane Adamowicz

INRA, UR 1115 Plantes et Systèmes de Culture Horticoles (PSH)

domaine St Paul, site agroparc

84914 Avignon, cedex 9

Antoine Rostang
Messages : 3
Enregistré le : 06 Fév 2018, 16:05

Re: Modélisation non linéaire avec R

Messagepar Antoine Rostang » 13 Fév 2018, 11:58

Bonjour,

je n'arrive définitivement pas à le programmer.
On m'a conseillé nlme mais malgré tous les essais que j'ai tentés, je ne parviens pas à le faire fonctionner.
SI quelqu'un connait nlme ? ou une autre solution ? je veux deux droites (dont une horizontale Y = Theta0) et le point d'inflexion

D'avance merci pour votre aide

Code : Tout sélectionner

LP<-  function (b, Theta0, Theta1, Theta2)
{
  Y<-Theta0+Theta1*(b-Theta2)
  Y[b>=Theta2]<-Theta0
  return(Y)
}

Fit<-nlme(log(CONCENTRATION)~LP(POSO, Theta0, Theta1, Theta2), start=c(Theta0=2, Theta1=4.5, Theta2=0.8), data=da5,
          fixed  =Theta0+ Theta1+ Theta2~1,
          random=CHIEN~1)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité