Re: FindFit, Weibull
- To: mathgroup at smc.vnet.net
- Subject: [mg92942] Re: FindFit, Weibull
- From: jerry <jerry45632 at yahoo.com>
- Date: Mon, 20 Oct 2008 07:35:52 -0400 (EDT)
- References: <gd703r$i8a$1@smc.vnet.net> <gdcdhg$fkn$1@smc.vnet.net>
For some reason I can't get either of your examples to run on my V6.03. I get this error: FindFit::fitd: First argument praxis in Fit is not a list or a \rectangular array. >> > For parameters that must be positive, I routinely solve > for their logs, without constraints, and then exponentiate, > as in the following code. The values differ only trivially > from those that Darren got using constraints. > > Block[{a,b}, {a,b} = {Exp@a,Exp@b} /. FindFit[praxis, > CDF[WeibullDistribution[Exp@a,Exp@b],x],{{a,0},{b,4}},{x}]; > Plot[CDF[WeibullDistribution[a,b],x],{x,0,140}, Frame->True, > PlotRange->{-.0001,1}, Prolog->{PointSize[.02], Point/@praxis}]; > {Norm[CDF[WeibullDistribution[a,b],praxis[[All,1]]] - > praxis[[All,2]]], {a,b}}] > > <<plot omitted>> > > {0.0567336,{1.52052,77.4768}} > > However, I have to wonder about your choice of a distribution. > Adding a shift parameter, that for this data puts time-zero > some time before you started your clock, reduces the rms error > by 40%. Does this make any sense in terms of the problem? > > Block[{a,b,c}, {a,b,c} = {Exp@a,Exp@b,c} /. FindFit[praxis, > CDF[WeibullDistribution[Exp@a,Exp@b],x+c],{{a,0},{b,4},{c,0}},{x}]; > Plot[CDF[WeibullDistribution[a,b],x+c],{x,0,140}, Frame->True, > PlotRange->{-.0001,1}, Prolog->{PointSize[.02], Point/@praxis}]; > {Norm[CDF[WeibullDistribution[a,b],praxis[[All,1]]+c] - > praxis[[All,2]]], {a,b,c}}] > > <<plot omitted>> > > {0.0340676, {2.32031, 107.905, 28.9873}} >