Как сделать выборку равномерно с поверхности гипер-эллипсоида (постоянное расстояние Махаланобиса)?

12

Существует ли способ равномерного отбора точек на поверхности, где расстояние Махаланобиса от среднего значения константы является вещественным многовариантным случаем?

РЕДАКТИРОВАТЬ: Это просто сводится к точкам выборки равномерно с поверхности гипер-эллипсоида, который удовлетворяет уравнению,

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

Чтобы быть более точным, под "равномерно" я подразумеваю выборку так, что каждый элемент площади гиперповерхности содержит одинаковую массу вероятности.dA

Сачин Вернекар
источник
1
Поправьте меня, если я ошибаюсь: вы спрашиваете "с учетом случайной переменной , как я могу равномерно выбрать из точек, которые находятся на заданном расстоянии Махаланобиса от ?" c E [ X ]XcE[X]
Кевин Ли,
1
Я думаю, что нам понадобится подходящее определение «единообразно». Причина в следующем: в двух измерениях этот набор точек лежит вдоль некоторого эллипса. Предполагается ли, что выборка из этого эллипса выполняется таким образом, чтобы равные длины имели равные шансы, или чтобы равные углы имели равные шансы, или чтобы равные длины, когда переменные были стандартизированы, имели равные шансы, или каким-либо другим способом? Если бы вы могли объяснить, к чему стремится эта выборка, это может дать нам достаточно информации, чтобы знать, о чем вы пытаетесь спросить.
whuber
1
Я понимаю, что равномерная выборка с поверхности сферы и последующее отображение ее на эллипсоид не даст однородных выборок на эллипсоиде. Поэтому мне нужен метод, который делает выборки равномерно с поверхности эллипсоида.
Сачин Вернекар
1
Хотите ли вы, чтобы образец был равномерным на поверхности эллипсоида в том смысле, что каждый элемент площади dA гиперповерхности содержит одинаковую массу вероятности?
Секст Эмпирик
1
Почему, как и где вы собираетесь применять этот единый образец? Такая информация может помочь прийти с лучшей / достаточной стратегией. Например, когда разные оси эллипсоида не сильно отличаются друг от друга, вы можете использовать выборку отклонения путем (1) выборки на сфере, (2) сжатия ее в эллипсоид, (3) вычисления скорости, с которой площадь поверхности была сжата (4) отбраковать образцы в соответствии с обратной скоростью.
Секст Эмпирик

Ответы:

4

Когда разные оси эллипсоидов не слишком сильно различаются, тогда целесообразно использовать выборку отбраковки (при больших различиях вы отклоняете много, делая это менее осуществимым)

  • (1) образец на гиперсфере
  • (2) сжимая его в гипер-эллипсоид
  • (3) вычислить скорость, с которой площадь поверхности была сжата
  • (4) отклонить образцы в соответствии с этой скоростью.

2D пример

пример

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")
Секст Эмпирик
источник