Re: Gaussian fit
- To: mathgroup at smc.vnet.net
- Subject: [mg23208] Re: [mg23148] Gaussian fit
- From: BobHanlon at aol.com
- Date: Mon, 24 Apr 2000 01:12:15 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Needs["Statistics`NormalDistribution`"] Needs["Graphics`Graphics`"] freq = {{-0.95, 0}, {-0.85, 0}, {-0.75, 0}, {-0.65, 1}, {-0.55, 2}, {-0.45, 9}, {-0.35, 26}, {-0.25, 36}, {-0.15, 23}, {-0.05, 15}, {0.05, 8}, {0.15, 7}, {0.25, 7}, {0.35, 1}, {0.45, 0}, {0.55, 2}, {0.65, 1}, {0.75, 0}, {0.85, 0}, {0.95, 0}}; step = freq[[2, 1]] - freq[[1, 1]]; data = Flatten[Table[#[[1]], {#[[2]]}] & /@ freq]; Estimates for the mean and standard deviation are {m, s} = {Mean[data], StandardDeviation[data]}; The maximum likelihood estimate (MLE) equations are eqns = ((D[ExpandAll[Times @@ (PDF[NormalDistribution[mu, sigma], #] & /@ data)], #] == 0) & /@ {mu, sigma}); The MLE for the distribution is dist = NormalDistribution[mu, sigma] /. FindRoot[eqns, {mu, m}, {sigma, s}]; bc = GeneralizedBarChart[Transpose[ {Table[-1. + step(k - 1/2), {k, Length[freq]}], Transpose[freq][[2]]/(step*Length[data]), Table[step, {Length[freq]}]}], Frame -> True, Axes -> False, PlotRange -> All, DisplayFunction -> Identity]; plt = Plot[PDF[dist, x], {x, -1, 1}, Frame -> True, Axes -> False, PlotStyle -> {{RGBColor[0, 0, 1], AbsoluteThickness[2]}}, DisplayFunction -> Identity]; Show[{bc, plt}, DisplayFunction -> $DisplayFunction, ImageSize -> {500, 310}]; The same approach would be used for your refined data. However, the order of your second set of frequency data is the reverse of the order for your first set Bob Hanlon In a message dated 4/20/2000 4:29:35 AM, slipstk at olemiss.edu writes: >I am trying to determine the best Gaussian fit to a series of data >points. > >Data={{-0.95,0},{-0.85,0},{-0.75,0},{-0.65,1},{-0.55,2},{-0.45,9},{-0.3 >5,26},{-0.25,36},{-0.15,23},{-0.05,15},{0.05,8},{0.15,7},{0.25,7},{0.35,1 >},{0.45,0},{0.55,2},{0.65,1},{0.75,0},{0.85,0},{0.95,0}} > >A more detailed histogram of this looks like > >{{0,-0.98},{0,-0.94},{0,-0.9},{0,-0.86},{0,-0.82},{0,-0.78},{0,-0.74},{0, >-0.7},{0,-0.66},{1,-0.62},{0,-0.58},{1,-0.54},{2,-0.5},{5,-0.46},{3,-0.42 >},{10,-0.38},{14,-0.34},{10,-0.3},{13,-0.26},{15,-0.22},{10,-0.18},{9,-0. >14},{7,-0.1},{3,-0.06},{9,-0.02},{3,0.02},{5,0.06},{1,0.1},{4,0.14},{2,0. >18},{3,0.22},{4,0.26},{0,0.3},{0,0.34},{1,0.38},{0,0.42},{0,0.46},{0,0.5} >,{1,0.54},{1,0.58},{0,0.62},{1,0.66},{0,0.7},{0,0.74},{0,0.78},{0,0.82},{ >0,0.86},{0,0.9},{0,0.94},{0,0.98}} > >I've tried using NonLinearFit, but I can't get the parameters to make >sense. There is also the possibility that this may be indicative of two > >processes superimposed upon each other, in which case, the fit would be > >two Gaussian distributions added together. I've also looked through the > >Archives, but there doesn't seem to be much on this that is directly >useful. Either that, or the solution is so simple that I'm just not >seeing it. >