#r #output #nonlinear-optimization #convergence
#r #вывод #нелинейная оптимизация #сходимость
Вопрос:
Я использую solnp() в R. Я знаю, что результат конвергенции, равный 0, указывает на успешную конвергенцию. Но в чем разница между значениями 1 или 2? Кажется, я не могу найти ответ в документации R. Спасибо.
Ответ №1:
Покопавшись в исходном коде solnp()
, я обнаружил следующее
if (get(".solnp_errors", envir = .solnpenv) == 1) {
convergence = 2
if (trace)
cat(paste("nsolnp--> Solution not reliable....Problem Inverting Hessian.n",
sep = ""))
}
else {
if (.vnorm(c(tt[1], tt[2])) <= tol) {
convergence = 0
if (trace)
cat(paste("nsolnp--> Completed in ", .solnp_iter,
" iterationsn", sep = ""))
}
else {
convergence = 1
if (trace)
cat(paste("nsolnp--> Exiting after maximum number of iterationsn",
"Tolerance not achievedn", sep = ""))
}
}
Это означает, что
- конгергенция = 0: Успех
- сходимость = 1: достигнуто максимальное количество итераций
- сходимость = 2: решение ненадежно из-за проблем с инвертированием мешковины
Комментарии:
1. Ах, фантастика! Спасибо! Так что, я думаю, в случае 2 это означает, что, возможно, мои начальные значения нуждаются в повторной настройке, я думаю.