[SciPy-User] ODR fitting several equations to the same parameters

ms devicerandom at gmail.com
Thu Nov 12 10:04:39 EST 2009


josef.pktd at gmail.com ha scritto:
> On Wed, Nov 11, 2009 at 11:26 AM, ms <devicerandom at gmail.com> wrote:
>> Let's start with a simple example. Imagine I have several linear data
>> sets y=ax+b which have different b (all of them are known) but that
>> should fit to the same (unknown) a. To have my best estimate of a, I
>> would want to fit them all together. In this case it is trivial, you
>> just subtract the known b from the data set and fit them all at the same
>> time.
>>
>> In my case it is a bit different, in the sense that I have to do
>> conceptually the same thing but for a highly non-linear equation where
>> the equivalent of "b" above is not so simple to separate. I wonder
>> therefore if there is a way to do a simultaneous fit of different
>> equations differing only in the known parameters and having a single
>> output, possibly with the help of ODR. Is this possible? And/or what
>> should be the best thing to do, in general, for this kind of problems?
> 
> I don't know enough about ODR, but for least squares, optimize.leastsq
> or curve_fit, it seems you can just substitute any known parameters
> into your equation.
> 
> y_i = f(x_i, a, b_i) for each group i
> plug in values for all b_i, gives reduced f(x_i, a) independent of
> specific parameters
> stack equations [y_i for all i] and [f(..) for all i]
> 
> If you fit this in curve_fit you could also choose the weights, in
> case the error variance differs by groups.
> 
> Does this work or am I missing the point?

Probably it's me missing it. Do you just mean to fit them all together
separately and then make a weighted average of the fitted parameters,
and using the standard deviation of the mean as the error of the fit? I
am confused.

sorry,
m.



More information about the SciPy-User mailing list