I have a point $\mathbf{x}$ in 3-dimensional space, which is measured with a degree of uncertainty. The point falls within a unit cube, and the uncertainty is assumed to follow a multivariate normal distribution with mean $\mathbf{\mu}=\mathbf{x}$ and covariance $\mathbf{\Sigma}$, where $$ \mathbf{\Sigma} = \begin{bmatrix} e_x^2 & 0 & 0\\ 0 & e_y^2 & 0\\ 0 & 0 & e_z^2 \end{bmatrix}. $$ To project this point into a given 2-dimensional space I first normalise $\mathbf{x}$ so its values sum to 1, and then use $\mathbf{x}'=\mathbf{V}\mathbf{x}$, where $\mathbf{x}'$ is the projected point and $$ \mathbf{V} = \begin{bmatrix} \sqrt{\dfrac{1}{2}} & 0 & -\sqrt{\dfrac{1}{2}}\\ -\sqrt{\dfrac{2}{3}}\left(\dfrac{1}{2}\right) & \sqrt{\dfrac{2}{3}} & -\sqrt{\dfrac{2}{3}}\left(\dfrac{1}{2}\right) \end{bmatrix}. $$ However I am struggling to also project the covariance matrix. By simulating random 3-dimensional vectors with a given mean and covariance and then projecting these I can visualise the projected covariance: for example, for a covariance matrix with diagonal elements $e_x^2=0.0005$, $e_y^2=0.0003$ and $e_z^2=0.0001$, the figure below shows 10000 simulated points for $\mathbf{x}=[0.6,0.1,0.1]$ (red points), $\mathbf{x}=[0.1,0.6,0.1]$ (green points), and $\mathbf{x}=[0.1,0.1,0.6]$ (blue points):

Visualisation of projected covariance

This can be reproduced using the following R code:

library(mvtnorm) # For rmvnorm

V = rbind(c(sqrt(1/2), 0, -sqrt(1/2)), 
          c(-sqrt(2/3)*(1/2), sqrt(2/3), -sqrt(2/3)*(1/2)))
x = c(0.6, 0.1, 0.1)
Sigma = diag(c(0.0005, 0.0003, 0.0001))

x.prime = matrix(0, nrow=2, ncol=10000)
for(i in 1:10000) {
    r = rmvnorm(n=1, mean=x, sigma=Sigma)
    r = r/sum(r) # Normalise
    x.prime[,i] = V %*% t(r) # Project

plot(x.prime[1,], x.prime[2,], pch=16, col=rgb(0,0,0,0.1), asp=1)

Any help on how to obtain the projected covariance matrix would be very much appreciated.


1 Answer 1


Multivariate normal random variables have this very nice property:

If $x\sim\mathcal N(\mu,\Sigma)$, then $Vx\sim\mathcal N(V\mu,V\Sigma V^T)$.

So, you can find the covariance matrix of your projected random vectors just by performing that matrix multiplication ($V\Sigma V^T$).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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