R: errores de captura en `nls`
Estoy ajustando algunos datos exponenciales usandonls
.
El código que estoy usando es:
fit <- nls(y ~ expFit(times, A, tau, C), start = c(A=100, tau=-3, C=0))
expFit
Se define como
expFit <- function(t, A, tau, C)
{
expFit <- A*(exp(-t/tau))+C
}
Esto funciona bien para la mayoría de mis datos, para lo cual los parámetros iniciales proporcionados (100, -3 y 0) funcionan bien. A veces, sin embargo, tengo datos que no van bien con esos parámetros y recibo errores denls
(por ejemplo, "gradiente singular" o cosas por el estilo). ¿Cómo "atrapo" estos errores?
Traté de hacer algo como
fit <- NULL
fit <- nls(...)
if (is.null(fit))
{
// Try nls with other starting parameters
}
Pero esto no funcionará porquenls
parece detener la ejecución y el código despuésnls
no se ejecutará ...
¿Algunas ideas?
Gracias nico