Вопрос выше говорит обо всем. По сути, мой вопрос касается общей функции подбора (может быть произвольно сложной), которая будет нелинейной по параметрам, которые я пытаюсь оценить. Как выбрать начальные значения для инициализации подбора? Я пытаюсь сделать нелинейные наименьшие квадраты. Есть ли стратегия или метод? Это изучалось? Любые ссылки? Что-нибудь кроме специальных предположений? В частности, сейчас одна из подходящих форм, с которыми я работаю, - это гауссовская плюс линейная форма с пятью параметрами, которые я пытаюсь оценить, например:
где (данные абсциссы) и y = log 10 (данные ординат), означающие, что в пространстве log-log мои данные выглядят как прямая линия плюс выступ, который я аппроксимирую гауссианом. У меня нет теории, нет ничего, что могло бы помочь мне в инициализации нелинейного подбора, кроме, возможно, построения графиков и глазного яблока, например, наклона линии и того, каков центр / ширина выступа. Но у меня есть более сотни таких подходов, вместо того чтобы строить графики и догадки, я бы предпочел какой-то подход, который можно автоматизировать.
Я не могу найти никаких ссылок, в библиотеке или в Интернете. Единственное, о чем я могу думать, это просто случайным образом выбрать начальные значения. MATLAB предлагает выбирать значения случайным образом из [0,1], равномерно распределенные. Итак, с каждым набором данных я запускаю произвольно инициализированное совпадение тысячу раз, а затем выбираю тот, у которого наибольшее значение ? Любые другие (лучшие) идеи?
Приложение № 1
Во-первых, вот несколько визуальных представлений наборов данных, чтобы показать вам, ребята, о каких данных я говорю. Я публикую оба данных в их первоначальном виде без какого-либо преобразования, а затем их визуальное представление в пространстве журналов регистрации, поскольку они разъясняют некоторые функции данных, искажая другие. Я публикую пример как хороших, так и плохих данных.
Каждая из шести панелей на каждом рисунке показывает четыре набора данных, нанесенных вместе красным, зеленым, синим и голубым, и каждый набор данных имеет ровно 20 точек данных. Я пытаюсь установить для каждого из них прямую линию и гауссову из-за неровностей, наблюдаемых в данных.
Первая цифра - некоторые из хороших данных. Вторая фигура - это лог-график тех же хороших данных, что и на рис. Третья цифра - некоторые из плохих данных. Четвертая фигура представляет собой логарифмическую диаграмму фигуры три. Данных намного больше, это всего лишь два подмножества. Большая часть данных (около 3/4) является хорошей, аналогичной хорошим данным, которые я показал здесь.
Теперь несколько комментариев, пожалуйста, потерпите меня, так как это может занять много времени, но я думаю, что все эти детали необходимы. Я постараюсь быть максимально кратким.
Первоначально я ожидал простой степенной закон (имеется в виду прямая линия в пространстве журнала). Когда я нарисовал все в пространстве журнала, я увидел неожиданный удар на частоте около 4,8 мГц. Удар был тщательно исследован и обнаружен в других работах, так что мы не ошиблись. Это есть физически, и другие опубликованные работы тоже упоминают об этом. Тогда я просто добавил гауссовский термин в мою линейную форму. Обратите внимание, что это соответствие должно было быть сделано в пространстве log-log (отсюда и два моих вопроса, включая этот).
Теперь, прочитав ответ Стампи Джо Пита на другой мой вопрос (вообще не связанный с этими данными) и прочитав это и это и ссылки в них (материал Clauset), я понимаю, что я не должен вписываться в log-log Космос. Так что теперь я хочу делать все в предварительно преобразованном пространстве.
Вопрос 1: Глядя на хорошие данные, я все еще думаю, что линейный плюс гауссиан в предварительно преобразованном пространстве - все еще хорошая форма. Я хотел бы услышать от других, у кого больше данных, что они думают. Гауссово + линейно разумно? Должен ли я сделать только гауссовский? Или совсем другая форма?
Вопросы 2: Каким бы ни был ответ на вопрос 1, мне все равно понадобится (скорее всего) нелинейное подгонка наименьших квадратов, поэтому мне все еще нужна помощь с инициализацией.
На данных, где мы видим два набора, мы очень сильно предпочитаем фиксировать первый удар на частоте около 4-5 мГц. Поэтому я не хочу добавлять больше гауссовских терминов, и наш гауссовский термин должен быть сосредоточен на первом выступе, который почти всегда является большим ударом. Мы хотим «больше точности» между 0,8 и 5 мГц. Мы не слишком заботимся о высоких частотах, но не хотим полностью их игнорировать. Так может быть какое-то взвешивание? Или B всегда можно инициализировать на частоте около 4,8 МГц?
Вопросы 3: Как вы думаете, ребята, экстраполируя таким образом в этом случае? Есть плюсы / минусы? Любые другие идеи для экстраполяции? Опять же, мы заботимся только о низких частотах, экстраполируя их между 0 и 1 мГц ... иногда очень очень маленькие частоты, близкие к нулю. Я знаю, что этот пост уже упакован. Я задал этот вопрос здесь, потому что ответы могут быть связаны, но если вы, ребята, предпочитаете, я могу отделить этот вопрос и задать другой позже.
Наконец, вот два образца данных по запросу.
0.813010000000000 0.091178000000000 0.012728000000000
1.626000000000000 0.103120000000000 0.019204000000000
2.439000000000000 0.114060000000000 0.063494000000000
3.252000000000000 0.123130000000000 0.071107000000000
4.065000000000000 0.128540000000000 0.073293000000000
4.878000000000000 0.137040000000000 0.074329000000000
5.691100000000000 0.124660000000000 0.071992000000000
6.504099999999999 0.104480000000000 0.071463000000000
7.317100000000000 0.088040000000000 0.070336000000000
8.130099999999999 0.080532000000000 0.036453000000000
8.943100000000001 0.070902000000000 0.024649000000000
9.756100000000000 0.061444000000000 0.024397000000000
10.569000000000001 0.056583000000000 0.025222000000000
11.382000000000000 0.052836000000000 0.024576000000000
12.194999999999999 0.048727000000000 0.026598000000000
13.008000000000001 0.045870000000000 0.029321000000000
13.821000000000000 0.041454000000000 0.067300000000000
14.633999999999999 0.039596000000000 0.081800000000000
15.447000000000001 0.038365000000000 0.076443000000000
16.260000000000002 0.036425000000000 0.075912000000000
Первый столбец - это частоты в мГц, одинаковые в каждом наборе данных. Второй столбец - это хороший набор данных (хорошие данные на рис. 1 и 2, панель 5, красный маркер), а третий столбец - неправильный набор данных (плохие данные на рис. 3 и 4, панель 5, красный маркер).
Надеюсь, что этого достаточно, чтобы стимулировать более просвещенную дискуссию. Спасибо вам всем.