Линейная подгонка Python с несколькими планками погрешностей

Я подгоняю некоторые данные линейной подгонкой. Я хочу взвесить планки ошибок. До сих пор я использовал бульдогов fitting.py. Их linear_fit делает взвешенные линейные регрессии очень простыми. К сожалению, данные, с которыми я работаю, содержат ошибки как в направлении X, так и в направлении Y.

Мне было интересно, как это можно сделать практически (в Python) и теоретически (в статистическом плане).


person pirtle    schedule 01.08.2012    source источник
comment
Теоретически это общее количество наименьших квадратов, называемое регрессия Деминга в случае двух переменных.   -  person tiwo    schedule 01.08.2012


Ответы (2)


Есть несколько вариантов:

  1. scipy.optimize.leastsq (для общее количество наименьших квадратов)
  2. scipy.odr (для регрессия Деминга).

Оба этих решения будут учитывать независимую ошибку в направлениях X и Y (массив scld в odr).

person Andy Hayden    schedule 02.10.2012
comment
как наименьший квадрат принимает ошибки в направлении x и y? Я не могу найти параметры. - person sauerburger; 05.09.2013
comment
это кстол? Извините, я действительно должен улучшить этот ответ, чтобы иметь пример. - person Andy Hayden; 06.09.2013
comment
я думаю, что xtol - это просто небольшое значение, чтобы определить, когда остановить алгоритм. я полагаю, это работает только с scipy.odr. - person sauerburger; 06.09.2013
comment
scipy.optimize.leastsq выполняет обычные наименьшие квадраты, а не общие наименьшие квадраты. Второй вариант правильный. хотя. - person gerrit; 10.08.2016

Вы можете использовать scipy.optimize.fmin() (см. этот пример), чтобы минимизировать оценочную функцию (которую вы должны определить), которая вычисляет квадраты отклонений в направлениях x и y.

person Stefano Messina    schedule 02.10.2012
comment
Приведенная выше ссылка на пример Стефано Мессины не работает. - person Rohit; 09.07.2013
comment
@aging_gorrila Извините, не знаю почему, я исправил ссылку, теперь она ведет на страницу обучения scipy.optimize. - person Stefano Messina; 17.07.2013