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