On Mar 12, 4:22 am, Joal Heagney <joalheag...@gmail.com> wrote:
> Hi guys and gals,
> Currently I'm attempting to fit the following data to the general
> logistic model:
>
> [(0,0),(1,0),(2,13),(3,28),(4,48),(5,89),(6,107),(7,168),(8,188),(9,209)]
>
> The form of the logistic curve I am using is:
>
> K/(1 + a*exp(r * (t - t0)))^(1/v)
>
> with K,a,r,t0 and v being parameters, t the dependent variable.
>
> Attempting to use find_fit, I get values of:
> [K == 84.999999972210745, a == 126.84970317061706, r ==
> -183.75725583987102, t0 == -124.8433024602822, v == 105.35677984548882]
>
> This is obviously wrong as K is nowhere near the right-hand asymptote in
> the data. Using a more bare-bones approach based on fmin, I get more
> realistic results of:
> [249.143779989,11.657027477,-0.535852892673,-0.0364250104883,0.52301206184]

The K is approximately the average value of the data and the resulting
function is practically a constant K.

Both Mathematica's function FindFit and Maple's function Statistics:-
Fit produce similar results with K close to 85 and different other
parameter values, buth also with the result being very close to a
constant function.

The problem seems to be in the bad initial guess.

A better initial guess produce rather nice looking answer in Sage,

Using data and model(t) from the YannLC reply,

data = [(0,0),(1,0),(2,13),(3,28),(4,48),(5,89),(6,107),(7,168),
(8,188),(9,209)]

var('K,a,r,t,t0,v')

model(t) = K/(1 + a*exp(r * (t - t0)))^(1/v)

s=find_fit(data,
model,initial_guess=[200,10,0,1,1],parameters=[K,a,r,t0,v],solution_dict=True);
s

{t0: 1.9182136806459771, K: 249.14668753230089, a: 4.0889718235600832,
r: -0.53583047134875161, v: 0.52295328451032852}

plot([scatter_plot(data), plot(model(t).subs(s),(0,9))])

Alec Mihailovs

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to