Як рівномірно взяти пробу з поверхні гіпер-еліпсоїда (постійна відстань махаланобіса)?


12

Чи існує у багатоваріантному реальному випадку справжній спосіб рівномірного вибору точок з поверхні, де відстань махаланобіса від середнього значення є постійною?

EDIT: Це просто зводиться до точок вибірки рівномірно від поверхні гіпер-еліпсоїда, що задовольняє рівнянню,

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

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


1
XcE[X]

1
Я думаю, нам буде потрібно відповідне визначення поняття "рівномірно". Причина така: у двох вимірах цей набір точок лежить уздовж деякого еліпса. Чи слід вибирати з цього еліпса таким чином, що рівні довжини мають рівні шанси, або рівні кути мають рівні шанси, або так, що рівні довжини, коли змінні стандартизовані, мають однакові шанси, або якимось іншим способом? Якщо ви могли б пояснити, що має на меті ця вибірка, це може дати нам достатньо інформації, щоб знати, що ви намагаєтеся запитати.
whuber

1
Я розумію, що рівномірне відбір проб з поверхні кулі та подання їх на еліпсоїд не дасть рівномірних зразків на еліпсоїді. Тому мені потрібен метод, який робить вибірку рівномірно з поверхні еліпсоїда.
sachin vernekar

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")
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.