2013-05-12 9 views
6

Dopasowuję punkty danych za pomocą modelu logistycznego. Ponieważ czasami mam dane z błędem ydata, najpierw użyłem curve_fit i jego argumentu sigma, aby uwzględnić moje indywidualne standardowe odchylenia w dopasowaniu.Python/Scipy - implementacja sigma optimize.curve_fit do optimize.leastsq

Teraz przełączyłem się na minimumsq, ponieważ potrzebowałem również szacunku Goodness of Fit, którego curve_fit nie był w stanie dostarczyć. Wszystko działa dobrze, ale teraz brakuje mi możliwości ważenia najmniejszych kwadratów jak "sigma" z curve_fit.

Czy ktoś jakiś przykład kodu, jak mogę waga najmniejszych kwadratów również w co najmniej sq?

Dzięki Woodpicker

Odpowiedz

5

Właśnie okazało się, że możliwe jest, aby połączyć najlepsze z obu światów, i mieć pełną leastsq() wyjście również z curve_fit(), za pomocą full_output opcję:

popt, pcov, infodict, errmsg, ier = curve_fit(func, xdata, ydata, sigma = SD, full_output = True) 

To daje mi infodict które mogę wykorzystać do obliczenia całej mojej dobroci Fit i pozwala mi używać opcji sigma curve_fit w tym samym czasie ...

+0

jak możesz zrobić to samo dla modelu wyposażonego w powierzchnię 3D? – diffracteD

4

Zakładając, że dane są w tablicach x, y z yerr, a model jest f(p, x), wystarczy zdefiniować funkcję błędu zostać zminimalizowane jak (y-f(p,x))/yerr.