Bonjour,
J'ai essayé la solution de François sur des données simulées et j'arrive à un problème de "gradient singulier" en utilisant la fonction f ou une autre pour ramener a1 entre 0 et 100. Peut-être est-ce du à mon exemple, mais peut-être que le cas va se représenter.
Une autre solution plus artisanale peut-être tout simplement de récupérer les modèles pour lesquels les valeurs de a1 sortent de la gamme attendue et de ré-estimer les paramètres en fixant a1 à 100 si son estimation est supérieure à 100 et 0 si <0.
Code : Tout sélectionner
nls(y ~ logit(100, b1, c1, t), tab, start = list(b1= 10, c1 = 10))
Comme ceci tu fixes la valeur de a1 et tu n'estimes plus que ce qui se passe pour b1 et c1. Attention toutefois aux répercussions sur les degrés de libertés, matrice de variance-covariance, estimation des écarts-types des paramètres, etc.
Tout dépend de ce que tu cherches à faire.
La deuxième solution s'est de réfléchir au pourquoi du comment, de se demander si le modèle est adapté et à la pertinence des résultats quand tu bornes a1 et à la signification de tout ça, mais là on sort largement du cadre de ce forum.
Cordialement,
Maxime