Re: How to call BinomialDistribution from within a package?
- To: mathgroup at smc.vnet.net
- Subject: [mg32230] Re: How to call BinomialDistribution from within a package?
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Wed, 9 Jan 2002 03:17:18 -0500 (EST)
- References: <a1blv0$bd3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Merser, I suspect that the problem arises as follows If we lool at the packages "Statistics`DiscreteDistributions`", "Statistics`DescriptiveStatistics`" we find that their working code begins with BeginPackage["Statistics`DiscreteDistributions`", "Statistics`DescriptiveStatistics`","Statistics`Common`DistributionsCommon`" ] BeginPackage["Statistics`DescriptiveStatistics`","Statistics`DataManipulatio n`"] For them to work inside your package you need to include all *their* needed packages as needed packages for your packages , thus: BeginPackage["MedianCI`", "Statistics`DiscreteDistributions`", "Statistics`DescriptiveStatistics`", Statistics`Common`DistributionsCommon`", "Statistics`DataManipulation`" ] -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "Merser" <merser at image.dk> wrote in message news:a1blv0$bd3$1 at smc.vnet.net... > I've tried to put the my function: MedianCI into a package. > > As this function works fine running as a plain notebook, it looks like > BinomialDistribution[] isn't working when called from within a package? > > Does anybody has any idear what I'm doing wrong here ? I'm running > Mathematica 4.0 on W2K. > regards > Soren > > > > BeginPackage["MedianCI`", "Statistics`DiscreteDistributions`", > "Statistics`DescriptiveStatistics`"] > Off[General::spell1]; > > MedianCI::usage = "MedianCI[data, conf=.95] Returns median with CI at > confidence level=95%" > > Begin["`Private`"] > > bdist[n_] := BinomialDistribution[n, .5] > cdf[x_, n_] := CDF[bdist[n], x] > > Clear[MedianCI]; > MedianCI[data_, conf_:.95] := > Block[ {d, n, bdist, cdf, alfa, p, plo, phi, lo = 0, hi}, > d = Sort[data]; > n = Length[d]; > > > > alfa = (1 - conf)/2; > > While[(p = cdf[lo, n]) < alfa, > lo++; > plo = p; > ]; > > hi = lo + 1; > While[(phi = cdf[hi, n]) < (1 - alfa), > hi++; > ]; > > m =Median[d]; > {{"Median", "CI low", "CI high", "Confidence level"}, > {m, d[[lo]], d[[hi + 1]], phi - plo}} > ] > End[] > EndPackage[] > > > > > > test: > > Median[Range[11]] // TableForm > > {{"Median", "CI low", "CI high", "Confidence level"}, > > {6, List, 2, -MedianCI`Private`plo + > MedianCI`Private`CDF[BinomialDistribution[11, 0.5`], 1]}} > > > > correct: > > {{"Median", "CI low", "CI high", "Confidence level"}, > > {6, 2, 10, 0.988281}} > > > >