I'm facing a (for me) tough problem. Given is a d-dimensional

multivariate, rotational symmetric probability distribution. In my

application, I use the so-called multidimensional 'Epanechnikov

distribution' (it is commonly used as a 'kernel' in the nonparametric

clustering algorithm 'Mean Shift').

The Epanechnikov probability distribution ('Epenachnikov kernel') is

given by the function K(x) = C * (1 - ||x||^2), for ||x|| <= 1, and 0

otherwise. Here 'x' is a d-dimensional vector, ||x|| is the usual

euclidian norm (2-norm), and C is a normalization constant so that

K(x) integrates to 1 over the whole d-dimensional space. (In fact, C 1/2 * (1/s) * (d + 2), where s is the volume of the d-dimensional unit

sphere).

My task is now to take random d-dimensional 'samples' from the

probability distribution K(x). How can this be done ?

I think the best way is to describe the random sample vector v in

'generalized spherical coordinates' (e.g. see

http://planetmath.org/encyclopedia/...nates.html). So v (r, phi_1, ..., phi_(d-2), theta), where r = ||x|| is the length of

the vector.

The d - 2 polar angles phi_1, ..., phi_(d-2) are randomly sampled from

the (continous) uniform distribution U(0, pi) and the azimuthal angle

theta is randomly sampled from the uniform distribution U(0, 2*pi).

But from which distribution has 'r' to be sampled ? It won't be the

uniform distribution U(0,1), as 'smaller' values of 'r' will be more

probable than higher values.

Another related (but not so important) question is how to do this

random sampling in the 'general' rotational symmetric case, when the

probability distribution is of the form 'f(||x||) where f is some

function of the 'radius' of the vector.

## Lesen sie die antworten