FindFit for the 4-parameter beta distribution
- To: mathgroup at smc.vnet.net
- Subject: [mg124056] FindFit for the 4-parameter beta distribution
- From: Anna Kaladze <anna.kaladze at gmail.com>
- Date: Sat, 7 Jan 2012 05:21:53 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Hi all,
I am trying to use FindFit in order to choose p and q parameters of ft
function (which is actually a 4-parameter beta distribution) to match
"data". I do not know why I get the Jacobean not being real warning at all
times and also very poor-looking fitd fits. (If I do not specify starting
guesses I get p->1 and q->1). Even if I specify starting values for p and
q, FindFit just returns those very values. Can you please help me to have
this curve fitting work properly? Maybe I am doing something wrong. The
code is below.
Thanks a lot.
Anna.
------------------------------------------------------------------------------------------------------------------------------------------------
data = {0.001581328`, 0.00159187`, 0.001865967`, 0.001823798`,
0.001918678`, 0.001908135`, 0.001887051`, 0.001960846`,
0.001939762`, 0.001908135`, 0.001897593`, 0.001992473`,
0.002034642`, 0.002118979`, 0.002245485`, 0.002340365`,
0.002435245`, 0.002487956`, 0.002625004`, 0.002962354`,
0.003099402`, 0.003152113`, 0.003299704`, 0.003552716`,
0.003953319`, 0.004153621`, 0.004712356`, 0.004954827`,
0.005439767`, 0.005998503`, 0.006493986`, 0.006905131`,
0.007537662`, 0.008465374`, 0.008834351`, 0.009646099`,
0.010215377`, 0.011174716`, 0.012429236`, 0.013072309`,
0.014274118`, 0.014885565`, 0.01645635`, 0.017099423`,
0.019355451`, 0.020304247`, 0.02156931`, 0.023719915`,
0.024858471`, 0.025881063`, 0.028010584`, 0.030445829`,
0.030772637`, 0.033745533`, 0.033671737`, 0.035411198`,
0.035716921`, 0.035822343`, 0.036064813`, 0.035643126`,
0.033756075`, 0.033903666`, 0.030677757`, 0.029570828`,
0.027009077`, 0.023677747`, 0.020915694`, 0.018375028`,
0.016192795`, 0.012671706`, 0.010890077`, 0.00844429`,
0.006451817`, 0.004617477`, 0.003700307`, 0.002403618`,
0.001634039`, 0.001085845`, 0.000695784`, 0.00043223`,
0.000253012`, 0.000147591`, 0.0000843375`, 0.0000421687`,
0.0000210844`, 0.0000105422`, 0.0000105422`, 0.`, 0.`, 0.`, 0.`};
a = 10^-9;
b = 90 + a;
Gammap := Gamma[p]
Gammaq := Gamma[q]
Gammaplusq := Gamma[p + q]
Bpq := Gammap*Gammaq/Gammaplusq
ft := (((t - a)^(p - 1))*((b - t)^(q - 1)))/((b - a)^(p + q - 1))/Bpq
par = FindFit[data, ft, {{p, 9}, {q, 6}}, t]
FindFit::nrjnum: The Jacobian is not a matrix of real numbers at {p,q} =
{9.,6.}. >>
{p -> 9., q -> 6.}