Я використовую glmer
функцію з lme4
пакету в R, і я використовую bobyqa
оптимізатор (тобто за замовчуванням у моєму випадку). Я отримую попередження, і мені цікаво, що це означає.
Warning message:
In optwrap(optimizer, devfun, start, rho$lower, control = control, :
convergence code 3 from bobyqa: bobyqa -- a trust region step failed to reduce q
Я шукав "крок області довіри не зміг q". Знайшов деяку інформацію в пакеті minqa , де сказано "Зверніться до Пауелла для пояснення". Я зробив (ви теж можете, якщо хочете! Див. Посилання та посилання на них нижче), але я не розумію. Насправді мені нічого не вдалося знайти про зменшення q.
MJD Powell (2007) "Розробки NEWUOA для необмеженої мінімізації без похідних", Кембриджський університет, кафедра прикладної математики та теоретичної фізики, Група чисельних аналізів, звіт NA2007 / 05, http://www.damtp.cam.ac.uk/ user / na / NA_papers / NA2007_05.pdf .
MJD Powell (2009), "Алгоритм BOBYQA для обмеженої обмеженої оптимізації без похідних", Доповідь № DAMTP 2009 / NA06, Центр математичних наук, Кембриджський університет, Великобританія. http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf .
Ps Я знаю, що можу змінити оптимізатор, і буду бачити, чи зможу отримати вихід без попереджень або помилок. Я також перевірю градієнт і Гессіана, якщо зможу, згідно коментаря / відповіді Бен Болкер . Я використовую glmer
в dredge
від MuMIn
і я не впевнений , що якщо відповідь Бен буде працювати без будь - якого додаткового майструвати, але я буду працювати над цим , як тільки моїм комп'ютером обробка , що він робить, у всякому разі, я відволікся.
Оновлення
Відповідно до коментаря доктора Болкера нижче, я почав переглядати код FORTRAN ( ось код для всіх, хто зацікавлений шукати, але не завантажувати його ). "430" з'являється в частині bobyqb.f коду. Просто знайдіть "430" або "зменшити Q", щоб знайти відповідний код.
Це моя перша зустріч з кодом FORTRAN, але я думаю, що код говорить про те, що якщо будуть виконані наступні умови, виробляйте попередження: NTRITS
> 0, VQUAD
> = 0, IPRINT
> 0. "Ціле число NTRITS встановлюється на число" довірчий регіон ". ітерації, що відбулися з часу останньої "альтернативної" ітерації ". VQUAD
з'являється кілька разів, і я ще не зрозумів його значення, оскільки його значення, здається, залежить від багатьох інших змінних, значення яких іноді залежать від інших змінних. Від bobyqa.f: "Значення IPRINT повинно бути встановлено на 0, 1, 2 або 3, що контролює кількість друку. Зокрема, немає виводу, якщо IPRINT = 0, і є вихід лише у зворотному випадку, якщо IPRINT = 1. ".
Отже, здається, завдання полягає в тому, щоб розібратися в значенні того, що VQUAD
бути> = 0, і, можливо, зрозуміти, як / коли IPRINT
стало> 0. Мені доведеться повернутися до папери, щоб подивитися, але математику, або на принаймні його символічне вираження, є для мене трохи бар’єром. Якщо хтось не знає про алгоритм або має бажання дізнатися про нього, я думаю, що мені доведеться ітеративно посилити своє розуміння попередження, повертаючись туди-сюди між паперами, кодом та Інтернетом, поки я не зрозумію, що це засоби.
src
каталог cran.r-project.org/src/contrib/minqa_1. 2.3.tar.gz ) і точно бачимо, що відбувається, коли ця помилка (код помилки 430 в коді) спрацьовує ...