If I understand this correctly:
You may have discovered bug(s) and/or limitation(s)
in -silvtest-. So the main options appear to be
1. Inform the authors and hope that they will
fix it or explain what you are doing wrong
from their point of view. Last time I looked the senior
author was not a member of Statalist.
2. Fix it yourself.
3. Ignore -silvtest- and do this directly with
-bootstrap- and -kdensity-.
The last would seem by far the easiest. A program
of the order of 10 lines long would appear to be
needed to produce the mode count.
I am not clear from your posting whether 50
is also the number of observations in (one
of) your real datasets. From my experience
the number of modes identified by kernel
density estimation can be very labile for
datasets that small. This may be _precisely_
why you are doing this.
However, there is an extra generic problem
that is very simple but also seems crucial.
If you are counting modes as local peaks
on the density, then minor modes that
would not be taken seriously in practice
are necessarily included in the count.
I've found in similar problems a simple
approach much more illuminating than this
one. Loop over a range of kernel widths,
and track the modes as they disappear
and/or appear. Genuine modes can be
expected to persist, and freak modes
to fade away.
Nick
[email protected]
[email protected] (converted from original HTML)
I am attempting to implement the silverman test using the procedures
outlined by this earlier posting and from the STATA Journal:
"STB-38 snp13 . Nonparametric assessment of multimodality for univariate data
(help warpdenm if installed) . . . . Salgado-Ugarte, Shimizu, Taniuchi
7/97 pp.27--35; STB Reprints Vol 7, pp.232--243
implementation of smoothed bootstrap procedure of Silverman for
multimodality assessment
With the ado-files included you can bootstrap kde's and later to count the
number of modes one by one interectivelly or automatically with the silvtest.ado
program and sending the result listing to a log file (to keep track of any
single result)."
I have successfully installed the files and can get the procedure to run.
I am having some problems with the results. To check the process, I
generated a sample of 50 observations: the first 25 observations are
equal to the value 10; observations 26-50 are equal to the value of 100,
so the sample has exactly 2 modes. However, there are two interesting
problems arising from testing for the number of modes:
1. The number of bootstrap samples that can be generated are limited to
the number of elements in the original sample (in this case 50).
2. Each bootstrap sample returns only 1 mode, so that the result is
fail to reject the null of 1 mode (even though there is clearly two modes in my example).
I have exhausted numerous possibilities of changing the different parameters
for this test, different examples and data sets and always get 1 mode.
Any help would be greatly appreciated.
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/