Первоначальное предположение и проблема с повторной нормой при подборе кривой Matlab

Я подгоняю данные к системе нелинейных ОДУ для оценки параметров модели с помощью Matlab lsqcurvefit.
В этой подгонке подгонка во многом зависит от начальных предположений, которые я использую для lsqcurvefit.
Например, если я использую x0=5 в качестве начального предположения я получу остаточную норму 30, где, как если бы я выбрал x0=5.2, я получу остаточную норму 1.5.
1) Что представляет собой остаточная норма (resnorm) в Matlab? это сумма квадратов ошибок? Есть ли способ решить, какой диапазон значений для resnorm является приемлемым.

2) Когда подгонка так сильно зависит от первоначального предположения, есть ли способ справиться с этими проблемами? Как мне узнать, можно ли получить лучшее соответствие, исходя из другого первоначального предположения?

3) При использовании lsqcurvefit требуется ли проверять, нормально ли распределяются остатки?


person sam_rox    schedule 10.04.2018    source источник
comment
По первому вопросу: resnorm действительно sum((y_measured-y_calculated).^2). Так что resnorm сам по себе не очень полезен, вы можете разделить resorm на количество измеренных точек, чтобы получить среднюю ошибку. На мой взгляд, нет хорошего или плохого resnorm, все зависит от необходимой точности.   -  person obchardon    schedule 10.04.2018


Ответы (1)


lsqcurvefit соответствует вашим данным в смысле наименьших квадратов. Таким образом, все сводится к минимизации, и поскольку ваши данные нелинейны, у вас нет никакой гарантии, что это глобальный минимум или что он уникален.

Например. Рассмотрим функцию sin (x), значение x которой минимизирует эту функцию, ну, все x = 2 * pi * n + 3/2 * pi для n = 0,1,2, ... но ваш числовой метод может только возвращать одно решение, которое будет зависеть от вашего первоначального предположения.

Чтобы подробнее остановиться на проблеме. Самый простой (на мой взгляд) алгоритм минимизации известен как самый крутой спуск. он использует известную из математического анализа идею о том, что самый крутой спуск проходит в направлении минус градиента. Таким образом, он обнаруживает, что градиент в предложенной точке делает шаг в отрицательном направлении (масштабируется на некоторый размер шага) и продолжает делать это до тех пор, пока шаг / производная не станет значительно меньше.

Однако, даже если вы рассмотрите функцию cos (3 pi x) / x от 0,5 до бесконечности, которая имеет уникальный глобальный минимум в 1, вы найдете ее только в том случае, если ваше предположение находится в диапазоне от 0,7 до 1,3 (или около того). Все остальные предположения найдут свои соответствующие локальные минимумы.

Этим мы можем ответить на ваши вопросы:

1) resnorm - 2-норма остатков. Что бы это значило, что конкретная норма будет приемлемой? Алгоритм ищет минимум, если у вас уже есть минимум, что будет значить продолжить поиск?

2) Не в (псевдо) точном смысле. Обычно делается либо использование ваших знаний, чтобы придумать разумное первоначальное предположение. Если это невозможно, вам просто придется многократно делать случайные начальные предположения, а затем сохранять лучшее.

3) Зависит от того, что вы хотите сделать, если вы хотите провести статистические тесты, которые зависят от нормального распределения остатков, тогда ДА. Если вы заинтересованы исключительно в подгонке функции с наименьшей нормой невязки, тогда НЕТ.

person Nicky Mattsson    schedule 10.04.2018
comment
Я использую генетический алгоритм Differential Evolution для определения начальных оценок параметров и получил отличные результаты по сравнению с чисто случайными предположениями. - person James Phillips; 10.04.2018
comment
@JamesPhillips Спасибо. У вас есть справочник, который я могу использовать, чтобы узнать о дифференциальной эволюции? - person sam_rox; 11.04.2018
comment
Я не использую Matlab, однако поиск в Google обнаружил исходный код Matlab, примеры Matlab и т. Д. - person James Phillips; 11.04.2018
comment
@JamesPhillips Конечно, есть. Обычно лучше использовать свои знания для определения начальных условий, чем гадать наугад. Но это все же не гарантирует ни уникального решения, ни того, что оно является лучшим. - person Nicky Mattsson; 11.04.2018
comment
Согласованный. Насколько мне известно, еще не обнаружено никакой техники нелинейной оптимизации, которая дает такое гарантированное решение. - person James Phillips; 11.04.2018