MathGroup Archive 2010

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

Search the Archive

Need help NIntegrating stepwise 3D probability density functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114071] Need help NIntegrating stepwise 3D probability density functions
  • From: Jason Neuswanger <jrneuswanger at alaska.edu>
  • Date: Mon, 22 Nov 2010 07:40:36 -0500 (EST)

I need to integrate 3D probability density functions over the region
in which the probability density exceeds some threshold (the end goal
being to calculate isopleths in 3D animal territories fit by kernel
distributions).

The simplest test case I could come up with is this:

testDistribution =
  MultinormalDistribution[{1, 2,
    4}, {{2, -1/4, 1/3}, {-1/4, 2/3, 1/5}, {1/3, 1/5, 1/2}}];

thresholdDensity = 0.05;

NIntegrate[
 PDF[testDistribution, {x, y, z}]*
  UnitStep[PDF[testDistribution, {x, y, z}] - thresholdDensity]
 , {x, -Infinity, Infinity}, {y, -Infinity, Infinity}, {z, -Infinity,
  Infinity}
 , Method -> {"LocalAdaptive", "SymbolicProcessing" -> 0}
 ]

I've tried quite a few things and just can't get remotely sensible
results.  The analogous case in 1 dimension works just fine, shown
below:

testDistribution2 = NormalDistribution[];

thresholdDensity2 = 0.35;

NIntegrate[
 PDF[testDistribution2, {x}]*
  UnitStep[PDF[testDistribution2, {x}] - thresholdDensity2]
 , {x, -Infinity, Infinity}
 , Method -> {"LocalAdaptive", "SymbolicProcessing" -> 0}
 ]

(* check answer using symbolic methods *)

thresholdRoot =
  x /. FindRoot[
    PDF[testDistribution2, {x}] - thresholdDensity2, {x, 1}];
Integrate[
 PDF[testDistribution2, {x}], {x, -thresholdRoot, thresholdRoot}]

Any help here would be VERY much appreciated!


  • Prev by Date: Extract[expr, Position[expr, patt], h]
  • Next by Date: Re: Sizing opening window in Mathematica 8
  • Previous by thread: Re: Extract[expr, Position[expr, patt], h]
  • Next by thread: Re: Need help NIntegrating stepwise 3D probability density functions