Überraschenderweise konnte ich mit Google keine Antwort auf die folgende Frage finden:
Ich habe einige biologische Daten von mehreren Personen, die mit der Zeit ein grob sigmoides Wachstumsverhalten zeigen. Daher möchte ich es mit einem logistischen Standardwachstum modellieren
P(t) = k*p0*exp(r*t) / (k+p0*(exp(r*t)-1))
wobei p0 der Startwert bei t = 0 ist, k die asymptotische Grenze bei t → unendlich ist und r die Wachstumsgeschwindigkeit ist. Soweit ich sehen kann, kann ich dies leicht mit nls modellieren (mangelndes Verständnis meinerseits: Warum kann ich etwas Ähnliches nicht mit Standard-Logit-Regression durch Skalieren von Zeit und Daten modellieren? Proportionen, aber selten http://www.stata-journal.com/article.html?article=st0147 Die nächste Frage zu dieser Tangente wäre, ob das Modell möglicherweise Ausreißer> 1) handhaben kann.
Nun möchte ich einige feste (hauptsächlich kategoriale) und einige zufällige (eine individuelle ID und möglicherweise auch eine Studien-ID) Effekte auf die drei Parameter k, p0 und r zulassen. Ist nlme der beste Weg, dies zu tun? Das SSlogis-Modell scheint für das, was ich versuche, sinnvoll zu sein. Ist das richtig? Ist eines der folgenden Modelle von Anfang an sinnvoll? Ich kann die Startwerte scheinbar nicht richtig ermitteln und update () scheint nur für zufällige Effekte zu funktionieren, nicht für festgelegte - irgendwelche Hinweise?
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))
Da ich neu in nichtlinearen gemischten Modellen im Besonderen und nichtlinearen Modellen im Allgemeinen bin, würde ich mich über einige Leseempfehlungen oder Links zu Tutorials / FAQs mit neuen Fragen freuen.
quelle
Antworten:
Ich wollte einige der Dinge teilen, die ich gelernt habe, seit ich diese Frage gestellt habe. nlme scheint ein vernünftiger Weg zu sein, um nichtlineare Mischeffekte in R zu modellieren. Beginnen Sie mit einem einfachen Basismodell:
Verwenden Sie dann update, um die Modellkomplexität zu erhöhen. Der Start-Parameter ist etwas schwierig zu handhaben, es kann einige Bastelarbeiten erfordern, um die Reihenfolge herauszufinden. Beachten Sie, wie der neue feste Effekt für var1 in Asym dem regulären festen Effekt für Asym folgt.
lme4 schien gegenüber den Ausreißern in meinem Datensatz robuster zu sein und eine zuverlässigere Konvergenz für die komplexeren Modelle zu bieten. Es scheint jedoch der Nachteil zu sein, dass die relevanten Wahrscheinlichkeitsfunktionen manuell angegeben werden müssen. Das folgende ist das logistische Wachstumsmodell mit einer festen Auswirkung von var1 (binär) auf Asym. Sie können auf ähnliche Weise feste Effekte für xmid und scal hinzufügen. Beachten Sie die seltsame Art und Weise, das Modell mithilfe einer Doppelformel als Ergebnis anzugeben - feste Effekte - zufällige Effekte.
quelle