|
[Date Index]
[Thread Index]
[Author Index]
Re: FindFit and squared residuals
- To: mathgroup at smc.vnet.net
- Subject: [mg126226] Re: FindFit and squared residuals
- From: Darren Glosemeyer <darreng at wolfram.com>
- Date: Thu, 26 Apr 2012 05:26:50 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201204250436.AAA06580@smc.vnet.net>
On 4/24/2012 11:36 PM, leigh pascoe 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
>
To get diagnostics, you can use NonlinearModelFit instead. It will do
the same least squares fitting, but return an object you can get results
and diagnostics from. To get the sum of squared residuals, you could do
franceMaleCDdata19882005model =
NonlinearModelFit[franceMaleCDdata19882005,
inc1[x, M, \[Tau], \[Phi]], {{M, 10}, {\[Tau], 5}, {\[Phi], .6}},
x];
Total[franceMaleCDdata19882005model["FitResiduals"]^2]
More information about available properties and results for nonlinear
models can be found in the Nonlinear Models section of
tutorial/StatisticalModelAnalysis
in the Documentation Center. The tutorial can also be found online at
http://reference.wolfram.com/mathematica/tutorial/StatisticalModelAnalysis.html
Darren Glosemeyer
Wolfram Research
Prev by Date:
Re: evaluating functions and displaying results numerically
Next by Date:
Re: from a 2d-figure to an interactive 3d model? is it possible with mathematica?
Previous by thread:
FindFit and squared residuals
Next by thread:
Re: FindFit and squared residuals
|