       Re: help on bootstrap sample

• To: mathgroup at smc.vnet.net
• Subject: [mg37383] Re: [mg37338] help on bootstrap sample
• From: "Johannes Ludsteck" <johannes.ludsteck at wiwi.uni-regensburg.de>
• Date: Sat, 26 Oct 2002 02:03:03 -0400 (EDT)
• Organization: Universitaet Regensburg
• Sender: owner-wri-mathgroup at wolfram.com

```Soren,
the very simple code here speeds up your procedure by
a factor of about 150 for a data set of length 10000
and subsample length of 5000 (i.e. my code takes 0.06
seconds where yours takes 9.6 seconds).

<<DiscreteMath`Combinatorica`
SampleNoReplace[data_,n_]:=
data[[Take[RandomPermutation[Length[data]],n]]]

To see why it works note that a random permutation of
N={1,...,Length[data]} contains every element of N at
least one time. If you take the first n elements of
it, you have a subsample without replacement.

Best regards,
Johannes Ludsteck

On 24 Oct 2002 at 2:55, Søren Merser wrote:

> Hi Mathematica freeks
> I've made two small rutines for sampling (bootstrap statistics)
> They are working , but at least 'SampleNoReplace' is rather slow
> I was wondering if any of you know of a faster way to do this
> Regards soren
>
> SampelReplace[data_List:{0, 1}, n_:1] :=
>   Module[{}, data[[Table[Random[Integer, {1, Length@data} ], {n}]]]]
>
> SampelNoReplace[data_List, n_] := Module[{idx, len, res, d, hi, i},
>     d = data;
>     res = {};
>     len = hi = Length@d;
>
>     For[i = 1, i <= n && i <= len, i++,
>       idx = Random[Integer, {1, hi--} ];
>       AppendTo[res, d[[idx]]];
>       d = Drop[d, {idx}];
>       ];
>     res
>     ]
>
>
>

<><><><><><><><><><><><>
Johannes Ludsteck
Economics Department
University of Regensburg
Universitaetsstrasse 31
93053 Regensburg
Phone +49/0941/943-2741

```

• Prev by Date: \$RecursionLimit
• Next by Date: Re: Different EPS exported file from frontend and kernel
• Previous by thread: RE: help on bootstrap sample
• Next by thread: RE: Re: help on bootstrap sample