Utilisation de variables multivariées réparties de manière homogène
Taeke fournit un lien vers un article que le texte ci-dessous rend plus intuitif en expliquant spécifiquement les cas à 2 normes et à 1 norme.
2 normes∥x∥2≤r
direction de l'échantillon
Vous pouvez utiliser ce résultat http://mathworld.wolfram.com/HyperspherePointPicking.html
Une variable distribuée gaussienne multivariée (avec matrice de covariance d'identité) ne dépend que de la distance ou de la somme des carrés.X
f(X1,X2,...,Xn)=∏1≤i≤n12π−−√e12x2i=12π−−√e12∑1≤i≤nx2i
Ainsi, est uniformément distribué à la surface de l'hypersphère à n dimensions.X∥X∥2
distance d'échantillon
Pour terminer, vous n'avez qu'à échantillonner la distance, pour changer la distribution homogène sur la sphère en une distribution homogène dans une balle. (qui est plus ou moins similaire à votre exemple lié pour la sélection de points de disque)
Si vous échantillonniez simplement comme une distribution uniforme, alors vous auriez une densité relativement plus élevée près du centre (les échelles de volume comme donc une fraction des points finirait dans un volume , qui est plus dense près du centre et ne signifierait pas une distribution uniforme)rrnrrn
Si, à la place, vous utilisez la racine -ième d'une variable échantillonnée à partir d'une distribution uniforme, vous obtenez une distribution paire.n
1-norme∥x∥1≤r
direction
Dans ce cas, vous échantillonnez partir de la distribution de Laplace au lieu de la distribution gaussienne et divisez par la norme 1. Le est uniformément réparti sur la sphère à n dimensions.XX|X|1
Je n'ai aucune preuve formelle, juste une intuition
(puisque le pdf est indépendant de la position, vous vous attendez à ce que toute zone / volume infinitésimal avec la même norme 1 ait la même probabilité et lorsque vous le réduisez à la surface de l'unité, le même )f(x)dVf(x)dA
mais les tests avec des simulations semblent bons.
library(rmutil)
x <- abs(rlaplace(20000))
y <- abs(rlaplace(20000))
z <- abs(rlaplace(20000))
rn <- abs(x)+abs(y)+abs(z)
xi <- (x/rn)
yi <- (y/rn)
zi <- (z/rn)
plot(sqrt(0.5)*(xi-yi),
sqrt((0.5-0.5*(xi+yi))^2+zi^2),
pc=21,bg=rgb(0,0,0,0.02), col=rgb(0,0,0,0),cex=1)
distance
La distance est similaire à celle du cas à 2 normes (le volume est toujours égal à ).rn
norme-p∥x∥p≤r
Dans ce cas, si vous souhaitez suivre le même principe, vous devrez échantillonner à partir de distributions avec (je suppose). Ce sont des distributions normales généralisées et se rapportent probablement à la distribution mentionnée par Taeke.f(x)∝e|x|pG()