Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 150 invoked from network); 19 Jan 2004 12:07:29 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 19 Jan 2004 12:07:29 -0000 Received: (qmail 71314 invoked by uid 500); 19 Jan 2004 12:07:23 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 71172 invoked by uid 500); 19 Jan 2004 12:07:22 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 70977 invoked from network); 19 Jan 2004 12:07:20 -0000 Received: from unknown (HELO poczta.uw.edu.pl) (212.87.2.21) by daedalus.apache.org with SMTP; 19 Jan 2004 12:07:20 -0000 Received: from localhost (localhost [127.0.0.1]) (uid 600) by poczta.uw.edu.pl with local; Mon, 19 Jan 2004 13:03:34 +0100 References: <20040116223631.49048.qmail@web41706.mail.yahoo.com> In-Reply-To: <20040116223631.49048.qmail@web41706.mail.yahoo.com> From: "Piotr =?ISO-8859-2?Q?Kocha=F1ski?=" To: "Jakarta Commons Developers List" Subject: [math] Re: bootstrap confidence intervals Date: Mon, 19 Jan 2004 12:03:34 GMT Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_0_25554_1074513814"; charset="ISO-8859-2" Message-ID: X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N --=_0_25554_1074513814 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit Phil Steitz napisa�(a): > Excellent points. We would appreciate any other comments (or patches :-) > that you have on the code or algorithms in [math]. Calculation of confidence intervals using bootstrap is a bit complicated, so I started with Standard Error - basically, one might calculate bootstrap CI using such SE, however this is often not good enough in practice. In order to calculate CI in a right way a fast algorithm for calculation of normal distribution function is needed, it is not present in commons-math (as far as I can remember I send some code doing this to a dev mailing list). I attach classes, which calculate SE using bootstrap, if you are interested in adding this code please let me know, I will have to clean the code, javadoc and write tests. All information about package organization, etc. would be helpfull as well. Here I put everything into o.a.c.math.stat.bootstrap package. The short description goes below: Test class shows the usage of bootstrap to calculate Standard Error. Bootstrap class does actual resampling - it provides also a method that returns an array of values of some statistics calculated for every sample. StandardError is an interface that is common for all possible ways of calculating standard error. MeanStandardError and BootstrapStandardError implements this interface to calculate SE in a particular situation. The usage is the follwing: StandardError bse = new BootstrapStandardError(); ((BootstrapStandardError)bse).setB(200); bse.setStat(new Mean()); System.out.println("se for the mean (bootstrap): " + bse.getStandardError(valSmall)); bse.setStat(new Median()); System.out.println("se for the median (bootstrap): " + bse.getStandardError(valSmall)); StandardError se = new MeanStandardError(); se.setStat(new Mean()); System.out.println("se for the mean (standard formula): " + se.getStandardError(valSmall)); System.out.println("---"); //this requieres patching the Mean class Mean m = new Mean(); m.setStandardError(bse); System.out.println("se for the mean (bootstrap thru Mean): " + m.getStandardError(valSmall)); I would add Confidence Intervals calculation code in a similar way, if this is ok. for you. Regards Piotr Kochanski > --- Piotr Kocha�ski wrote: > > > Another problem with bootstrap confidence intervals is that > > they are non-parametric, and, inevitably, they provide less > > power when doing statistical tests then any parametric method. > > > > Some people can be dissapointed with the fact that it is harder > > to obtain significant results, so I think that usuall calculation method, > > based on normal distribution assumption, should be also provided > > (it can be done only for a few statistics though). > > > > There is also a "parametric" bootstrap, but this cannot be programmed > > in a generic way, applicable in any situation. > > > > But still, bootstrap is very safe solution, given it's distribiution > > independence > > and ability to use it easyly for any statistics. > > > > Piotr Kochanski (pi@uw.edu.pl) > > > > > > > __________________________________ > Do you Yahoo!? > Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes > http://hotjobs.sweepstakes.yahoo.com/signingbonus > > --------------------------------------------------------------------- > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org > For additional commands, e-mail: commons-dev-help@jakarta.apache.org > --=_0_25554_1074513814 Content-Type: application/zip; name="bootstrap.zip" Content-Disposition: attachment; filename="bootstrap.zip" Content-Transfer-Encoding: base64 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 --=_0_25554_1074513814 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org --=_0_25554_1074513814--