Étonnamment, je n'ai pas pu trouver de réponse à la question suivante en utilisant Google:
J'ai quelques données biologiques de plusieurs individus qui montrent un comportement de croissance à peu près sigmoïde dans le temps. Je souhaite donc le modéliser en utilisant une croissance logistique standard
P(t) = k*p0*exp(r*t) / (k+p0*(exp(r*t)-1))
avec p0 étant la valeur de départ à t = 0, k étant la limite asymptotique à t-> infini et r étant la vitesse de croissance. Pour autant que je puisse voir, je peux facilement modéliser cela en utilisant nls (manque de compréhension de ma part: pourquoi ne puis-je pas modéliser quelque chose de similaire en utilisant la régression logit standard en ajustant le temps et les données? EDIT: Merci Nick, apparemment les gens le font par exemple pour proportions, mais rarement http://www.stata-journal.com/article.html?article=st0147 . La prochaine question sur cette tangente serait de savoir si le modèle peut éventuellement gérer des valeurs aberrantes> 1).
Maintenant, je souhaite autoriser certains effets fixes (principalement catégoriques) et aléatoires (un ID individuel et éventuellement aussi un ID d'étude) sur les trois paramètres k, p0 et r. Nlme est-il la meilleure façon de procéder? Le modèle SSlogis semble raisonnable pour ce que j'essaie de faire, est-ce correct? L'un des modèles suivants est-il un modèle raisonnable pour commencer? Je n'arrive pas à obtenir les bonnes valeurs de départ et update () ne semble fonctionner que pour des effets aléatoires, pas fixes - des indices?
nlme(y ~ k*p0*exp(r*t) / (k+p0*(exp(r*t)-1)), ## not working at all (bad numerical properties?)
data = data,
fixed = k + p0 + r ~ var1 + var2,
random = k + p0 + r ~ 1|UID,
start = c(p0=1, k=100, r=1))
nlme(y ~ SSlogis(t, Asym, xmid, scal), ## not working, as start= is inappropriate
data = data,
fixed = Asym + xmid + scal ~ var1 + var2, ## works fine with ~ 1
random = Asym + xmid + scal ~ 1|UID,
start = getInitial(y ~ SSlogis(Dauer, Asym, xmid, scal), data = data))
Comme je suis nouveau dans les modèles mixtes non linéaires en particulier et les modèles non linéaires en général, j'apprécierais quelques recommandations de lecture ou des liens vers des tutoriels / FAQ avec des questions pour les débutants.
Réponses:
Je voulais partager certaines des choses que j'ai apprises depuis que j'ai posé cette question. nlme semble être un moyen raisonnable de modéliser des effets mixtes non linéaires dans R. Commencez avec un modèle de base simple:
Utilisez ensuite la mise à jour pour augmenter la complexité du modèle. Le paramètre de démarrage est légèrement délicat à travailler, il peut prendre un peu de bricolage pour comprendre l'ordre. Notez comment le nouvel effet fixe pour var1 sur Asym suit l'effet fixe régulier pour Asym.
lme4 semblait plus robuste contre les valeurs aberrantes de mon ensemble de données et semblait offrir une convergence plus fiable pour les modèles plus complexes. Cependant, il semble que l'inconvénient soit que les fonctions de vraisemblance pertinentes doivent être spécifiées manuellement. Ce qui suit est le modèle de croissance logistique avec un effet fixe de var1 (binaire) sur Asym. Vous pouvez ajouter des effets fixes sur xmid et scal de la même manière. Notez l'étrange façon de spécifier le modèle en utilisant une double formule comme résultat ~ effets fixes ~ effets aléatoires.
la source