R: Fehler in `nls` abfangen
Ich passe einige Exponentialdaten mit @ nls
.
Der Code, den ich benutze, ist:
fit <- nls(y ~ expFit(times, A, tau, C), start = c(A=100, tau=-3, C=0))
expFit
ist definiert al
expFit <- function(t, A, tau, C)
{
expFit <- A*(exp(-t/tau))+C
}
Dies funktioniert gut für die meisten meiner Daten, für die die angegebenen Startparameter (100, -3 und 0) gut funktionieren. Manchmal habe ich jedoch Daten, die mit diesen Parametern nicht gut übereinstimmen, und ich erhalte Fehler vonnls
(z. B. "singulärer Gradient" oder ähnliches). Wie "fange" ich diese Fehler ab?
Ich habe versucht, etwas wie @ zu t
fit <- NULL
fit <- nls(...)
if (is.null(fit))
{
// Try nls with other starting parameters
}
Aber das wird nicht funktionieren, weilnls
scheint die Ausführung und den Code nach @ anzuhaltnls
wird nicht ausgeführt ...
Irgendwelche Ideen
Danke, nico