una procesos porque necesario libros estadistico empresa ejemplos ejemplo control cartas calidad r exception-handling curve-fitting nls

procesos - R: detecta errores en `nls`



ejemplo de control estadistico de procesos en una empresa (1)

Usualmente uso este truco:

params<-... # setup default params. while(TRUE){ fit<-NULL try(fit<-nls(...)); # does not stop in the case of error if(!is.null(fit))break; # if nls works, then quit from the loop params<-... # change the params for nls }

Estoy ajustando algunos datos exponenciales usando nls .

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 los cuales los parámetros de inicio proporcionados (100, -3 y 0) funcionan bien. A veces, sin embargo, tengo datos que no van bien con esos parámetros y obtengo errores de nls (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á porque nls parece detener la ejecución y el código después de que nls no se ejecute ...

¿Algunas ideas?

Gracias nico