¿Cómo muestrear uniformemente desde la superficie de un hiper-elipsoide (distancia de Mahalanobis constante)?


12

En un caso multivariante de valor real, ¿hay alguna manera de muestrear uniformemente los puntos desde la superficie donde la distancia de Mahalanobis desde la media de la es una constante?

EDITAR: Esto solo se reduce a puntos de muestreo uniformemente desde la superficie de un hiper-elipsoide que satisface la ecuación,

(xμ)TΣ1(xμ)=d2.

Para ser más precisos, por "uniformemente", me refiero a una muestra tal que cada elemento de área de la hiper-superficie contiene la misma masa de probabilidad.dA


1
Corríjame si me equivoco: ¿está preguntando "dada una variable aleatoria , cómo puedo muestrear uniformemente los puntos que están a una distancia de Mahalanobis dada lejos de ?" c E [ X ]XcE[X]
Kevin Li

1
Creo que necesitaremos una definición adecuada de "uniformemente". La razón es esta: en dos dimensiones, este conjunto de puntos se encuentra a lo largo de alguna elipse. ¿Se supone que se debe tomar una muestra de esa elipse de tal manera que las longitudes iguales tengan las mismas oportunidades, o que los ángulos iguales tengan las mismas oportunidades, o de manera que las longitudes iguales cuando las variables estén estandarizadas tengan las mismas oportunidades, o de alguna otra manera? Si pudiera explicar qué pretende lograr este muestreo, eso podría brindarnos información suficiente para saber lo que está tratando de preguntar.
whuber

1
Entiendo que el muestreo uniforme de la superficie de la esfera y luego mapearlo al elipsoide no dará muestras uniformes en el elipsoide. Entonces, necesito un método que muestree de manera uniforme desde la superficie de un elipsoide.
sachin vernekar

1
¿Desea que la muestra sea uniforme en la superficie de un elipsoide, en el sentido de que cada elemento de área dA de la hiper-superficie contiene la misma masa de probabilidad?
Sextus Empiricus

1
¿Por qué, cómo y dónde vas a aplicar esta muestra uniforme? Dicha información puede ayudar a contar con una estrategia mejor / suficiente. Por ejemplo, cuando los diferentes ejes elipsoides no son muy diferentes, entonces puede usar el muestreo de rechazo (1) muestreando en una esfera, (2) apretándolo en un elipsoide, (3) calcule la velocidad con la que se apretó el área de superficie (4) rechazar muestras de acuerdo con el inverso de esa tasa.
Sextus Empiricus

Respuestas:


4

Cuando los diferentes ejes elipsoides no son muy diferentes, entonces es factible utilizar el muestreo de rechazo (con grandes diferencias, rechaza mucho lo que lo hace menos factible)

  • (1) muestra en una hiperesfera
  • (2) apretándolo en un hiper-elipsoide
  • (3) calcule la velocidad con la que se exprimió el área de superficie
  • (4) rechazar muestras de acuerdo con esa tasa.

Ejemplo 2D

ejemplo

set.seed(1)
#some matrix to transform n-sphere (in this case 2x2)
m <- matrix(c(1, 0.55, 0.55, 0.55), 2)

# sample multinomial with identity covariance matrix
x <- cbind(rnorm(3000, 0, 1), rnorm(3000, 0, 1))
l1 <- sqrt(x[,1]^2 + x[,2]^2)

# perpendicular vector
per <- cbind(x[,2], -x[,1])

# transform x
x <- x %*% m
# transform perpendicular vector (to see how the area transforms)
per2 <- per %*% m

# get onto unit-"sphere"/ellipsoid
x <- x/l1

# this is how the area contracted
contract <- sqrt(per2[,1]^2 + per2[,2]^2) / sqrt(per[,1]^2 + per[,2]^2)

# then this is how we should choose to reject samples 
p <- contract/max(contract)

# rejecting
choose <- which( rbinom(n=length(p), size=1, p=p) == 1)

#plotting
plot(x[1:length(choose), 1], x[1:length(choose), 2],
     xlim=c(-1.2, 1.2), ylim=c(-1.2, 1.2),
     xlab = expression(x[1]), ylab = expression(x[2]),
     bg=rgb(0, 0, 0, 0.01), cex=0.6, pch=21, col=rgb(0, 0, 0, 0.01))
title("squeezed uniform circle \n ")

#plotting
plot(x[choose,1], x[choose,2],
     xlim=c(-1.2, 1.2), ylim=c(-1.2, 1.2),
     xlab = expression(x[1]), ylab = expression(x[2]),
     bg=rgb(0, 0, 0, 0.01), cex=0.6, pch=21, col=rgb(0, 0, 0, 0.01))
title("squeezed uniform circle \n  with rejection sampling")
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.