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.}