MathGroup Archive 2012

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

Search the Archive

Re: FindFit and squared residuals

  • To: mathgroup at smc.vnet.net
  • Subject: [mg126239] Re: FindFit and squared residuals
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Thu, 26 Apr 2012 05:31:21 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jn7v77$6g8$1@smc.vnet.net>

On Apr 24, 9:40 pm, leigh pascoe <le... at evry.inserm.fr> wrote:
> Is there a command to get the sum of the squared residuals after using
> FindFit?
>
> Here is an example that fits a function and then plots the data and the
> fitted function
>
> inc1[x_, M_, \[Tau]_, \[Phi]_] :=
>  M/\[Tau] \[Phi]^M E^(-(x/\[Tau])) (1 - E^(-(x/\[Tau])))^(M - 1)
>
> franceMaleCDdata19882005 = {{2.5,
>     0}, {7.5, .000008}, {12.5, .00004}, {17.5, .00012}, {22.5, \
> .000142}, {27.5, .00012}, {32.5, .000084}, {37.5,
>     0.000060}, {42.5, .000050}, {47.5, .000046}, {52.5, .000039}, \
> {57.5, 0.000043}, {62.5, .000022}, {67.5, .000026}, {72.5, .000016}, \
> {77.5, 0.000019}, {82.5, .000015}, {87.5, .000017}};
> franceMaleCDdata19882005plot =
>   ListPlot[franceMaleCDdata19882005,
>    PlotStyle -> {Red, Dashed, Thick}, PlotRange -> All,
>    Joined -> True];
> franceMaleCDdata19882005fit =
>  FindFit[franceMaleCDdata19882005,
>   inc1[x, M, \[Tau], \[Phi]], {{M, 10}, {\[Tau], 5}, {\[Phi], .6}}, x]
> Show[Plot[
>   inc1[x, M, \[Tau], \[Phi]] /. franceMaleCDdata19882005fit, {x, 0,
>    85}, PlotRange -> All], franceMaleCDdata19882005plot]
>
> What is the minimised value of the squared residuals in this case? I
> would like to compare the fit with the more complex function shown below
> (the fit is obviously better, but with more parameters used}.
>
> inc4[x_, N1_, N2_, \[Tau]1_, \[Tau]2_, \[Phi]_] := (
>   E^(-(x/\[Tau]1)) (1 - E^(-(x/\[Tau]1)))^(-1 +
>     N1) (1 - E^(-(x/\[Tau]2)))^N2 N1 \[Phi]^(N1 + N2))/\[Tau]1 + (
>   E^(-(x/\[Tau]2)) (1 - E^(-(x/\[Tau]1)))^
>    N1 (1 - E^(-(x/\[Tau]2)))^(-1 + N2) N2 \[Phi]^(N1 + N2))/\[Tau]2
>
> franceMaleCDdata19882005fit =
>  FindFit[franceMaleCDdata19882005,
>   inc4[x, N1,
>    N2, \[Tau]1, \[Tau]2, \[Phi]], {{N1, 8}, {N2, 2}, {\[Tau]1,
>     7}, {\[Tau]2, 23}, {\[Phi], .6}}, x]
> Show[Plot[
>   inc4[x, N1, N2, \[Tau]1, \[Tau]2, \[Phi]] /.
>    franceMaleCDdata19882005fit, {x, 0, 85},
>   PlotRange -> All], franceMaleCDdata19882005plot]
>
> Thanks for any help.
>
> Leigh

franceMaleCDdata19882005fit1 = FindFit[franceMaleCDdata19882005,
 inc1[x, M, \[Tau], \[Phi]], {{M, 10}, {\[Tau], 5}, {\[Phi], .6}}, x]

{M -> 6.57389, \[Tau] -> 12.5364, \[Phi] -> 0.431395}

rss1 = #.#&[#2 - inc1[#1, M, \[Tau], \[Phi]] /. % &
            @@@ franceMaleCDdata19882005]

3.24064*^-9

franceMaleCDdata19882005fit4 = FindFit[franceMaleCDdata19882005,
  inc4[x, N1, N2, \[Tau]1, \[Tau]2, \[Phi]], {{N1, 8}, {N2, 2},
  {\[Tau]1, 7}, {\[Tau]2, 23}, {\[Phi], .6}}, x]

{N1 -> 22.378, N2 -> 1.10261, \[Tau]1 -> 5.88081, \[Tau]2 -> 40.3166,
 \[Phi] -> 0.797117}

rms4 = #.#&[#2 - inc4[#1, N1, N2, \[Tau]1, \[Tau]2, \[Phi]] /. % &
            @@@ franceMaleCDdata19882005]

3.31283*^-10

rss1/rss4

9.78209



  • Prev by Date: Re: evaluating functions and displaying results numerically
  • Next by Date: Re: evaluating functions and displaying results numerically
  • Previous by thread: Re: FindFit and squared residuals
  • Next by thread: CDF plugin for MediaWiki