We'd like to be able to determine the maximum values of multi-peaked distribution, such as the one below, with some algorithm or utility.
Any ideas how that can be done?
If you get the number of peaks by inspection, you could try something like this:
NamesDefaultToHere(1);
// Make some random data (with known parameters)
d1 = J(40, 1, RandomNormal(0, 1));
d2 = J(60, 1, RandomNormal(4, 2));
d3 = J(30, 1, RandomNormal(-6, 1));
// Make a table
dt = AsTable(VConcat(d1, d2, d3));
dt << setName("A Mixture of Samples from Three Gaussians");
Column(dt, "Col1") << setName("Y");
// Do a 'Normal Mixtures' analysis
dt << Distribution(
Continuous Distribution(
Column( :Y ),
Vertical( 0 ),
Fit Distribution( Normal Mixtures( Clusters( 3 ) ) )
),
Histograms Only,
SendToReport(
Dispatch(
{"Y"},
"Distrib Histogram",
FrameBox,
{Frame Size( 600, 267 ), DispatchSeg( Hist Seg( 1 ), Bin Span( 2, 0 ) )}
)
);