Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: BinCounts to InterpolatingFunction

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109493] Re: BinCounts to InterpolatingFunction
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Fri, 30 Apr 2010 05:49:20 -0400 (EDT)
  • References: <201004290653.CAA18277@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

If Kevin wants to approximate a PDF, perhaps he should start with the
sample CDF, interpolate and smooth it, then differentiate.

Bobby

On Thu, 29 Apr 2010 01:53:38 -0500, Kurt TeKolste <tekolste at fastmail.net>
wrote:

> If I understand this algorithm: it would seem that it will feed all of
> the counts for all of the bins into Interpolation.  If this is correct,
> read on.
>
> One of the problems in dealing with multidimensional data is that it
> takes quite large samples to fill in the huge multidimensional volume.
> In other words, it is hard to get bins fine enough in all dimensions and
> without having almost all of your bin counts be zero.
>
> I suspect that the interpolation will not be very satisfying unless your
> sample size is huge or you only need relatively course bins.  Note the
> dividing each of four dimensions into 20 bins is already 160,000 bins
> with an average probability that a randomly chosen sample will be in any
> particular bin of 1/160000 = 4x10^-6.  It takes a long time for the
> montecarlo to look like a real distribution ...
>
> I am not an expert in this area, but I would be tempted to use only the
> bins with non-zero values.  I recall reading about some techniques for
> dealing with this -- something about trying to sample where the density
> is highest -- but do not recall the reference.  Also, if you start with
> an a priori distribution rather than trying to construct the
> distribution based solely on data you have more tools available.
>
> ekt
>
> On Tue, 27 Apr 2010 08:48 -0400, "dh" <dh at metrohm.com> wrote:
>> On 27.04.2010 10:06, Kevin J. McCann wrote:
>> > I am using a Markov Chain Monte Carlo (MCMC) approach to evaluate a
>> > multidimensional probability density function. The output is a large
>> > number of multidimensional points {x1,x2,...,xn}. I can use BinCounts  
>> to
>> > gather the points into a PDF (after appropriate normalization). I  
>> would
>> > like to then define a function, p[X_], which is the multidimensional
>> > interpolation of the BinCounts output, but I can't figure out how to
>> > automate this for an arbitrary number of dimensions.
>> >
>> > Any ideas?
>> >
>> > For the 2d case I did the following:
>> >
>> > tbl = Partition[
>> >      Flatten[Table[{xmin + i*\[CapitalDelta]x + \[CapitalDelta]x/2,
>> >         ymin + j*\[CapitalDelta]y + \[CapitalDelta]y/2,
>> >         counts[[i + 1,
>> >          j + 1]]/(\[ScriptCapitalN] \[CapitalDelta]x \
>> > \[CapitalDelta]y)}, {i, 0, nx - 1}, {j, 0, ny - 1}]], 3];
>> >
>> > f=Interpolation[tbl]
>> >
>> > But as you can see, this is not easily extended to higher dimensions.
>> >
>> > Kevin
>> >
>> Hi Kevin,
>> if I understand correctly, your problem is the generation of a suitable
>> grid of data points for "Interpolation".
>> Assume you have a function bins[{i1,i2,..,in}] of n integer arguments.
>> The arguments run from 0..ni. The vector of ni is called
>> bounds={n1,n2..nn}. We can now define the function "dataGrid" that
>> creates a rectangular multidimensional structure for the input to
>> Interpolation:
>>
>> dataGrid[bins_, bounds_] := Module[{iter},
>>    iter = {x, 0, n - 1} /.
>>      Table[{x -> Symbol["x" <> ToString[i]], n -> bounds[[i]]}, {i, 1,
>>        Length[bounds]}];
>>    Flatten[
>>     Table[{iter[[All, 1 ]], bins[iter[[All, 1 ]]]},
>>      Evaluate[Sequence @@ iter]]
>>     , Length[bounds] - 1]
>>    ]
>>
>> If we choose an example for bins:
>> bins[v : {_ ..}] := Times @@ v;
>> we can calulation an interpolation:
>>
>> bins[v : {_ ..}] := Times @@ v;
>> Interpolation@dataGrid[bins, {4, 4, 4}]
>>
>> cheers, Daniel
>>
>> --
>>
>> Daniel Huber
>> Metrohm Ltd.
>> Oberdorfstr. 68
>> CH-9100 Herisau
>> Tel. +41 71 353 8585, Fax +41 71 353 8907
>> E-Mail:<mailto:dh at metrohm.com>
>> Internet:<http://www.metrohm.com>
>>
>>
>>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: Exporting Plot with Customized Legend to PDF
  • Next by Date: Re: Odd phenomenon
  • Previous by thread: Re: BinCounts to InterpolatingFunction
  • Next by thread: how uncouple dynamic objects?