       Re: Fitting NormalDistribution to 2D List

• To: mathgroup at smc.vnet.net
• Subject: [mg31427] Re: [mg31424] Fitting NormalDistribution to 2D List
• From: BobHanlon at aol.com
• Date: Sat, 3 Nov 2001 18:25:04 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```In a message dated 2001/11/3 6:50:22 AM, post_12 at hotmail.com writes:

>I have saved the output of a
>lengthy simulation where I have "binned" the data as such:
>
>{{1,2},{2,8},{3,16},{4,7},{5,3}}
>where the 1st number is the "bin" and the 2nd the number of
>occurences. Of course, the real data set has several thousand bins and
>occurences as high as 10^5. I would like to calculate a Mean and
>Standard Deviation of this data, however, the only way I could see to
>do it in Mathematica would be to "unroll" the list; i.e. print out 2
>1s in succession followed by 8 2s, 16 3s etc. How can I fit this 2
>dimensional list to a NormalDistribution?

Needs["Statistics`NormalDistribution`"];
Needs["Statistics`DescriptiveStatistics`"];

data={{1,2},{2,8},{3,16},{4,7},{5,3}};

unrolledData = Flatten[Table[#[],{#[]}]& /@data];

mu = Mean[unrolledData];

To find the mean without unrolling

mu==(Plus@@(Times@@#& /@ data))/(Plus@@data[[All,2]])

True

or

mu==Tr[Times@@#& /@ data]/Tr[data[[All,2]]]

True

or

mu==(Dot@@Transpose[data])/Tr[data[[All,2]]]

True

Selecting a method

binnedMean[data_] := Tr[Times@@#& /@ data]/Tr[data[[All,2]]];

m = binnedMean[data];

The StandardDeviationMLE of the data without "unrolling" is

s = Sqrt[binnedMean[{(#[]-m)^2, #[]}& /@ data]];

s == StandardDeviationMLE[unrolledData]

True

The distribution is

NormalDistribution[m, s]

NormalDistribution[109/36,
Sqrt/36]

Bob Hanlon
Chantilly, VA  USA

```

• Prev by Date: Re: How big a problem can ConstrainedMax handle?
• Next by Date: Re: Foldlist Question
• Previous by thread: Fitting NormalDistribution to 2D List
• Next by thread: Re: Fitting NormalDistribution to 2D List