Доверительный интервал для результата многомерной минимизации / подгонки - PullRequest
2 голосов
/ 25 апреля 2019

У меня есть набор наблюдений [x (t), y (t)], которые я пытаюсь приспособить к определенному предположению: x = Fx (ax, bx, t), y = Fy (ay, by, т). Fx и Fy являются линейными, но шум наблюдений существенно не гауссовский.

Для этого я выполняю минимизацию написанной пользователем функции F (ax, bx, ay, by, [наблюдения]). Я использую scipy.optimize.minimize и получаю значения параметров ax, bx, ay, которые минимизируют F для данного набора наблюдений.

Вопрос 1: как я могу оценить, скажем, 95% доверительный интервал для этих результатов, чтобы я мог видеть, насколько неопределенным или надежным является ответ?

Я полагаю, что значения параметров не являются независимыми, поэтому доверительная область может быть не 4-прямоугольной, а скорее некоторой каплей в пространстве решений вокруг минимальной точки.

Вопрос 2: если я упросту свое предположение до линейной формы: x = ax t + bx, y = ay t + by, с шумом наблюдений, являющимся 2d гауссовским, есть ли какие-либо готовые процедуры в python сделать это подгонку с расчетом доверительного интервала результата?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

В общем случае, когда распределение ошибок измерения неизвестно, вы можете использовать подход повторной выборки. Например, возьмите случайно 90% ваших измерений и найдите оценки, повторите следующий процесс 100 раз (или более) с различными случайными подвыборками исходных измерений. Сохраните все полученные оценки в массиве. Теперь вы можете найти 95-процентиль (или что угодно) для каждой оценки. Это будет 95-процентный доверительный интервал оценки.

В случае линейной модели и гауссовского шума я бы предложил поискать пакеты, реализующие фильтр Калмана. Они определенно существуют, например pykalman .

0 голосов
/ 25 апреля 2019

Лэмптон, Маргон и Бойер, 1976, Astrophysical Journal, 208, 177

ссылка на artical на абстрактной службе ADS

...