MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: fit with cdf of skew normal distriubtion

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112158] Re: fit with cdf of skew normal distriubtion
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Fri, 3 Sep 2010 06:06:57 -0400 (EDT)
  • References: <i5l9qr$7h9$1@smc.vnet.net>

On Sep 1, 3:27 am, Tom Pether <peth... at googlemail.com> wrote:
> Hi,
>
> to am trying to fit the integral of the skew normal distribution to a
> set of data. xhis is my fit function:

Why are you doing least-squares fitting to the cdf? Why not get
initial estimates by fitting the first three moments of the data,
and then use maximum likelihood to get better estimates?

>
> upperlimit[x_, y0_, p2_, a_] = p2 (1 - (x/y0)^(1/a));
> f[x_, y0_, a_, p2_, s_, skew_, A_, b_, p_] :=
>    b - 2 A NIntegrate[
>       PDF[NormalDistribution[p, s], x] CDF[
>         NormalDistribution[p*skew, s], (skew*x)], {x, -100,
>        uperlimit[x, y0, p2, a]}, MaxPoints -> 200, MaxRecursion -> 6,
>       PrecisionGoal -> 4];
>
> then i call the fit by
>
> FitResult =
>    NonlinearModelFit[data, f[x, y0, a, p2, s, skew, A, b, p], init,
> {index, t},
>     Weights -> weights, VarianceEstimatorFunction -> Automatic,
>     PrecisionGoal -> 4];
>
> if i then want to get error estimates for the fit parameters by calling
>
> FitResult["ParameterTable"]
>
> i get the following error messages (and no error estimates):
>
> General::stop: Further output of NIntegrate::nlim will be suppressed
> during this calculation. >>
>
> Function::slotn: Slot number 2 in
> FittedModels`NonlinearFitDump`cnf[{T0,a,pc,s,skew},<<1>>,{},Sequence@@{WorkingPrecision->MachinePrecision}]/.FittedModels`NonlinearFitDump`cnf-><<36>>&
> cannot be filled from (<<1>>)[##1]. >>
>
> Function::slotn: Slot number 2 in
> FittedModels`NonlinearFitDump`cnf[{T0,a,pc,s,skew},<<1>>,{},Sequence@@{WorkingPrecision->MachinePrecision}]/.FittedModels`NonlinearFitDump`cnf-><<36>>&
> cannot be filled from (<<1>>)[##1]. >>
>
> Power::infy: Infinite expression 1/0. encountered. >>
>
> Power::infy: Infinite expression 1/0. encountered. >>
>
> Power::infy: Infinite expression 1/0. encountered. >>
>
> General::stop: Further output of Power::infy will be suppressed during
> this calculation. >>
>
> \[Infinity]::indet: Indeterminate expression 0. ComplexInfinity
> encountered. >>
>
> \[Infinity]::indet: Indeterminate expression 0. ComplexInfinity
> encountered. >>
>
> \[Infinity]::indet: Indeterminate expression 0. ComplexInfinity
> encountered. >>
>
> General::stop: Further output of \[Infinity]::indet will be suppressed
> during this calculation. >>
>
> does anybody have any idea how to fix this? if i do a fit with
> CDF[NormalDistribution...] it works well. with my "self made" CDF f[] it
> doesn't... i am stuck here. thanks in advance
>
> tom



  • Prev by Date: Re: coordinates in LogLogPlots
  • Next by Date: Re: 2 dimensional engineering problem
  • Previous by thread: fit with cdf of skew normal distriubtion
  • Next by thread: Re: FindRoots?