[SciPy-User] How to fit a curve/function?

josef.pktd at gmail.com josef.pktd at gmail.com
Wed Jun 8 07:34:01 EDT 2011


On Wed, Jun 8, 2011 at 7:21 AM, Johannes Radinger <JRadinger at gmx.at> wrote:
>
> -------- Original-Nachricht --------
>> Datum: Wed, 8 Jun 2011 07:10:38 -0400
>> Von: josef.pktd at gmail.com
>> An: SciPy Users List <scipy-user at scipy.org>
>> Betreff: Re: [SciPy-User] How to fit a curve/function?
>
>> On Wed, Jun 8, 2011 at 6:52 AM, Johannes Radinger <JRadinger at gmx.at>
>> wrote:
>> > Hello,
>> >
>> > I've got following function describing any kind of animal dispersal
>> kernel:
>> >
>> > def pdf(x,s1,s2):
>> >    return
>> (p/(math.sqrt(2*math.pi*s1**2))*numpy.exp(-((x-0)**(2)/(2*s1**(2)))))+((1-p)/(s2*math.sqrt(2*math.pi))*numpy.exp(-((x-0)**(2)/(2*s2**(2)))))
>> >
>> > On the other hand I've got data from literature with which I want to fit
>> the function so that I get s1, s2 and x.
>> > Ususally the data in the literature are as follows:
>> >
>> > Example 1: 50% of the animals are between -270m and +270m and 90%  are
>> between -500m and + 500m
>> >
>> > Example 2: 84% is between - 5000 m and +5000m, and 73% are between
>> -1000m and +1000m
>> >
>> > So far as I understand an integration of the function is needed to solve
>> for s1 and s2 as all the literature data give percentage (area under the
>> curve) Can that be used to fit the curve or can that create ranges for s1
>> and s2.
>>
>> I don't see a way around integration.
>>
>> If you have exactly 2 probabilities, then you can you a solver like
>> scipy.optimize.fsolve to match the probabilites
>> eg.
>> 0.5 = integral pdf from -270 to 270
>> 0.9 = integral pdf from -500 to 500
>>
>> If you have more than 2 probabilities, then using optimization of a
>> weighted function of the moment conditions would be better.
>>
>> Josef
>
> Thank you for that point... just a simple question: In the case of 2 probabilities is it possible to solve for 3 parameters (s1, s2 and p)? Is there a way to do that as well?

No, not in general, with 3 parameters and only two conditions you can
pin down only 2 parameters.
The third parameters can be picked arbitrarily (or using some prior),
but it might not make sense.

Josef

>
> /Johannes
>
>>
>> >
>> > /Johannes
>> >
>> > --
>> > NEU: FreePhone - kostenlos mobil telefonieren!
>> > Jetzt informieren: http://www.gmx.net/de/go/freephone
>> > _______________________________________________
>> > SciPy-User mailing list
>> > SciPy-User at scipy.org
>> > http://mail.scipy.org/mailman/listinfo/scipy-user
>> >
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>
> --
> NEU: FreePhone - kostenlos mobil telefonieren!
> Jetzt informieren: http://www.gmx.net/de/go/freephone
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>



More information about the SciPy-User mailing list