Как оценить погрешность параметров аппроксимации?

yurimedvedev

Пусть есть N точек x1... xN в которых заданы значения функции y1...yN.
Я придумал некую функцию, аппроксимирующую эти данные, f(a1...ak, x) в которой есть k параметров a1...ak. Неважно каким образом, я нашел эти параметры, такие, что функция f с моей точки зрения наилучшим образом аппроксимирует исходные данные.
В инете и умных книжках обычно пишут, как выбрать из двух аппроксимирующих функций одну, наилучшую. Эта задача сейчас не стоит.
Как оценить погрешность вычисленных параметров a1,... ak? Желательно, чтобы это была формальная, не с потолка взятая процедура...
UPD:
Может, мне помогут методы нахождения оценок, например, метод моментов, или метод максимального правдоподобия?
Помните, Масяня спала на лекции, где лектор вещал "...согласно методу максимального правдоподобия... сходится не к истинному значению оцениваемого параметра..."

a7137928

Что-то пока не очень понятно. Можно конкретно пример, что есть и что надо?

yurimedvedev

Вот файлик:
В нем два столбца чисел, х и у.
Мне нужно их аппроксимировать функцией

У этой функции 2 параметра, А, Е0. Мне нужно сначала найти сами параметры, при которых аппроксимирующая функция как можно ближе к исходным точкам.
Для этого я нашел минимум функционала

(Почему я выбрал такой? Потому что у и х принимают очень широкий диапазон значений, по у десять порядков, по х пять порядков. Квадратичный функционал не помог бы.)
Нашел:
А = 20.4430742317429
Е0 = 11.0579859204443
Теперь нужно найти погрешность (ошибку) параметров А и Е0, чтобы в результате с гордостью заявить:
A=20.4 +/- 0.1
E0=11.05 +/- 0.01

drudru

Vrode kak nezavisimo 'dvigaesh' parametri, chtob etot funkcional izmenilsia na opredelennuyu velichinu.
Dlia chi_squared eto vrode 1. No eti 'formal'nie' oshibki inogda imeyut malo obshchego s deistvitel'nost'yu vrode.

yurimedvedev

Значение функционала должно измениться на единицу?
Как-то странно. Может, имелось в виду 100%? Абсолютные оценки, по моему, не катят.

a7137928

Логарифмировать большие числа - это правильно. Только я бы вместо функционала бы взял сумму квадратов разностей логарифмов, а не сумму модулей разностей.
Получится вместо y=f(x) такое:
z= ln y, t = ln(sqrt(x c = ln(sqrt(E0 B = lnA, тогда ищем z(x) в виде
z = (t-c) - exp(t-c) + B,
минимизируем функцию потерь
\sum_i ( t_i - c - e^(t_i-c) + B - z_i )^2 \to infinum
Как считать погрешность оценки параметров - а хрен знает. Че-то я вообще такого не припомню. Можно загнать это все в Statistica (пакет Nonlinear estimation она посчитает параметры. В принципе, там аппроксимация получается более-менее, хотя и далеко не идеальная, большие отклонения от регрессионной линии и мало точек. Можно оценить ошибку регрессии, посмотрев на стандартную ошибку отклонений. Как высчитать стандартную ошибку параметров регрессии не знаю, ничего простого в голову не приходит.

Dunduk

Задача ставится в прощёте этих ошибок или подведения под них теории?
Если первое - то тебе в помощь Origin (7.5 SR5)

yurimedvedev

Надо узнать эти ошибки.
Воспользовавшись Origin, я получил следующее:
A = 14 +/- 9
Е0 = 12 +/- 2
Занятно, что А получилось немного не такое, но в пределах ошибки, оно совпадает с тем, что я получил своим методом. А вот Е0 получилось почти точно.
А вот теперь хотелось бы узнать, каким образом рассчитаны ошибки. Не для теории, а для удовлетворения любопытства.

Dunduk

для повышения точности надо убрать нелинейные зависимости от X насколько это возможно.
например z=def=sqrt(x)
и считать относительно него. так точнее получится.
Оставить комментарий
Имя или ник:
Комментарий: