Я пытаюсь подогнать ~100 наборов данных к формуле триэкспоненциального распада, и данные часто не подходят. Это нормально, но я не могу подавить миллионы предупреждений, которые это производит. Поскольку это часть скрипта уценки, в итоге я получаю страницы и страницы повторяющихся предупреждающих сообщений.
Вот пример моих данных, которые я назвал DF
:
structure(list(Time_min = c(19, 34, 49, 64, 94, 124, 154, 184,
214, 244, 304), Concentration = c(477.08, 284.26, 189.16, 134.66,
74.32, 53.04, 28.16, 16.78, 9.24, 8.7, 4.42)), row.names = c(NA,
-11L), class = "data.frame")
И вот пример того, что я пробовал:
StartGuess <- data.frame(A = c(100, 500),
alpha = c(0.01, 0.5),
B = c(100, 500),
beta = c(0.001, 0.05),
G = c(10, 100),
gamma = c(0.0001, 0.01))
suppressMessages(nls2::nls2(Concentration ~ A * exp(-alpha * Time_min) +
B * exp(-beta * Time_min) +
G * exp(-gamma * Time_min),
data = DF, start = StartGuess))
suppressWarnings(nls2::nls2(Concentration ~ A * exp(-alpha * Time_min) +
B * exp(-beta * Time_min) +
G * exp(-gamma * Time_min),
data = DF, start = StartGuess))
suppressWarnings(
suppressMessages(nls2::nls2(Concentration ~ A * exp(-alpha * Time_min) +
B * exp(-beta * Time_min) +
G * exp(-gamma * Time_min),
data = DF, start = StartGuess)))
Как бы я ни пытался что-то подавить, я получаю список ошибок, таких как:
Error in numericDeriv(form[[3L]], names(ind), env) :
Missing value or an infinity produced when evaluating the model
Error in (function (formula, data = parent.frame(), start, control = nls.control(), :
singular gradient
Чтобы было ясно, я ожидаю сообщения и ошибки, потому что знаю, что мне часто не хватает данных для адекватного описания триэкспоненциального распада, но должен быть какой-то способ подавить все эти предупреждения, не должно быть?