R: pegando erros no `nls`
Estou ajustando alguns dados exponenciais usandonls
.
O código que estou usando é:
fit <- nls(y ~ expFit(times, A, tau, C), start = c(A=100, tau=-3, C=0))
expFit
é definido como
expFit <- function(t, A, tau, C)
{
expFit <- A*(exp(-t/tau))+C
}
Isso funciona bem para a maioria dos meus dados, para os quais os parâmetros de partida fornecidos (100, -3 e 0) funcionam bem. Às vezes, porém, tenho dados que não vão bem com esses parâmetros e recebo erros denls
(por exemplo, "gradiente singular" ou coisas assim). Como "pego" esses erros?
Eu tentei fazer algo como
fit <- NULL
fit <- nls(...)
if (is.null(fit))
{
// Try nls with other starting parameters
}
Mas isso não vai funcionar porquenls
parece parar a execução e o código apósnls
não será executado ...
Alguma ideia?
Obrigado nico