I would like to calculate the mean and variance of the normed distance of a cone-shaped distribution,

$f(x) \propto \exp(-|x|)$,

where $x\in\mathbb{R}^d$, where $d$ can be any positive integer.

In two-dimensions, this distribution looks like


a cone! I can calculate the normalising constant for this distribution using,

Integrate[Exp[-Norm[{x,y}]], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]

which is $2\pi$. I can then calculate the mean normed distance using,

Integrate[Norm[{x,y}]Exp[-Norm[{x,y}]], {x, -Infinity, Infinity},
                                        {y, -Infinity, Infinity}]

which is 2. Its second moment,

Integrate[Norm[{x,y}]^2Exp[-Norm[{x,y}]], {x, -Infinity, Infinity},
                                          {y, -Infinity, Infinity}]

then allows me to calculate the variance $\mathrm{Var}(|x|) = \mathrm{E}(|x|^2) -\mathrm{E}(|x|)^2 = 2$.

Calculating the normalising constants is easy enough in higher dimensions, but I run into trouble with finding the mean and variance.

Any ideas?

I'm guessing that something can maybe be done using polar coordinates in higher dimensions but this isn't something I know much about!

  • 4
    Perhaps you could edit your post to clarify that you're not after the mean and variance, but the mean normed distance and its variance? – Chris K Sep 25 at 0:35
  • Good idea. I have now added this to the title and the description. – ben18785 Sep 25 at 22:39
up vote 10 down vote accepted

For the normalization, we need to determine $\omega$ such that

$$\omega \, \int_{\mathbb{R}^{n}} \mathrm{e}^{-|x|} \, \mathrm{d}x = 1.$$

The first moment is given by

$$\omega \, \int_{\mathbb{R}^{n}} |x|^1 \, \mathrm{e}^{-|x|} \, \mathrm{d}x.$$

For the second, we have to compute

$$\omega \, \int_{\mathbb{R}^{n}} |x|^2 \, \mathrm{e}^{-|x|} \, \mathrm{d}x.$$

All these integrals are radially symmetric.

By introducing polar coordinates, we obtain $$\int_{\mathbb{R}^{n}} |x|^\alpha \, \mathrm{e}^{-|x|} \, \mathrm{d}x =\int_{S^{n-1}}\int_0^\infty \mathrm{e}^{-r} \, r^{\alpha+n-1} \, \mathrm{d} r \, \mathrm{d}S = \omega_n \int_0^\infty \mathrm{e}^{-r} \, r^{\alpha+n-1} \, \mathrm{d} r,$$

where $\omega_n = \frac{2 \pi^{n/2}}{\Gamma \left(\frac{n}{2}\right)}$ is the surface area of the unit sphere in $\mathbb{R}^n$.

Such integrals can be computed symbolically by Mathematica:

v[n_, α_] = 2 π^(n/2)/Gamma[n/2] Integrate[r^α Exp[-r] r^(n - 1), {r, 0, ∞}, 
  Assumptions -> α + n > 0]

$$\frac{2 \pi ^{n/2} \Gamma (n+\alpha )}{\Gamma \left(\frac{n}{2}\right)}$$

So, the $k$-th moment should equal

moment[n_, k_] = FullSimplify[ v[n, k]/v[n, 0], n ∈ Integers && n > 0]

$$\frac{\Gamma (k+n)}{\Gamma (n)}$$

which, for simplicity, equals

moment[n_, k_] = (n + k - 1)!/(n - 1)!

$$\frac{(n+k-1)!}{(n-1)!} $$

So the variance of the distance is given by

var[n_] = FullSimplify[moment[n, 2] - moment[n, 1]^2]


  • Thanks! Just a small thing, the expectation shouldn't be zero because I am calculating the expectation of the normed x, not x itself. – ben18785 Sep 25 at 0:00
  • You're welcome. – Henrik Schumacher Sep 25 at 0:05
  • Sorry, just noticed that the variance here isn't quite right (it's actually the second moment). It needs to have the mean-squared subtracted from it. Think this is because we first said the mean was zero. Anyway, may be worth mentioning in the answer somewhere. – ben18785 Sep 25 at 22:18
  • 1
    Yeah, good point. Actually, I already realized that this morning but did not find time to correct it. – Henrik Schumacher Sep 25 at 22:50
  • 1
    I fixed also a typo in the surface area of the spheres. (I did not change the results in the end because we normalize anyway.) – Henrik Schumacher Sep 25 at 22:56
ClearAll[aa, nc, dist]
aa[n_Integer] := Array[x, {n}];
nc[n_Integer] := 2^n*Pi^((n - 1)/2)*Gamma[(1 + n)/2]
dist[n_Integer] :=  ProbabilityDistribution[Exp[-Norm[aa[n]]]/nc[n], 
  ## & @@ Thread[{aa[n], -∞, ∞}]]

Expectation[Norm[aa[#]], Distributed[aa[#], dist[#]]] & /@ Range[2, 5]

{2, 3, 4, 5}

Expectation[Norm[aa[#]]^2, Distributed[aa[#], dist[#]]] & /@ Range[2, 5]

{6, 12, 20, 30}


td[n_Integer] := TransformedDistribution[Norm[aa[n]], Distributed[aa[n], dist[n]]]

Mean[td[#]] & /@ Range[2, 5]

{2, 3, 4, 5}

Moment[td[#], 2] & /@ Range[2, 5]

{6, 12, 20, 30}

Variance[td[#]] & /@ Range[2, 5]

{2, 3, 4, 5}

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.