Re: Fitting data
- To: mathgroup at smc.vnet.net
- Subject: [mg29547] Re: [mg29535] Fitting data
- From: BobHanlon at aol.com
- Date: Sun, 24 Jun 2001 02:01:00 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 2001/6/23 2:01:40 AM, wzn at jongnederland.nl writes:
>How can I fit an function to data in mathematica? For example: in an
>experiment I collect data with a normal distrubution. I want to fit a normal
>curve to this data, with unknown mean and variance. Can I do this with
>the
>mean-squares-method or do I need an iterative algorithm or something like
>that?
Fitting a distribution is not the same thing as fitting a function.
For a normal distribution it is quite straightforward. The maximum
likelihood
estimation of the mean of the distribution is Mean[data]
The maximum likelihood estimation of the standard deviation of the
distribution is StandardDeviationMLE[data]
Needs["Statistics`NormalDistribution`"];
Needs["Graphics`Colors`"];
Let the "unknown" mean and standard deviation be
{m, s} = {5*Random[], 2*Random[]}
{1.3655769021908775, 0.2746217115738358}
Taking a random sampling from this distribution
data = RandomArray[NormalDistribution[m, s], {100}];
The parameter estimates are then
{me, se} = {Mean[data], StandardDeviationMLE[data]}
{1.3879937672329135, 0.28629145363687175}
Comparing the estimate of the distribution with the actual distribution
Plot[{PDF[NormalDistribution[m, s], x], PDF[NormalDistribution[me, se], x],
CDF[NormalDistribution[m, s], x],
CDF[NormalDistribution[me, se], x]}, {x, m-2s, m+2s},
PlotStyle -> {Blue, Red}, ImageSize -> 400];
Bob Hanlon
Chantilly, VA USA