Bagaimana cara mengambil sampel secara seragam dari permukaan hyper-ellipsoid (jarak konstan Mahalanobis)?

12

Dalam kasus multivariat yang bernilai nyata, adakah cara untuk mengambil sampel titik-titik dari permukaan secara seragam di mana jarak Mahalanobis dari rata-rata adalah konstanta?

EDIT: Ini hanya bermuara pada titik pengambilan sampel secara seragam dari permukaan hyper-ellipsoid yang memenuhi persamaan,

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

Lebih tepatnya, dengan "seragam", maksud saya sampel sedemikian rupa sehingga setiap elemen area dari permukaan-hiper mengandung massa probabilitas yang sama.dA

sachin vernekar
sumber
1
Koreksi saya jika saya salah: apakah Anda bertanya "diberi variabel acak , bagaimana saya bisa sampel secara seragam dari titik-titik yang diberikan jarak Mahalanobis jauh dari ?" c E [ X ]XcE[X]
Kevin Li
1
Saya pikir kita akan membutuhkan definisi yang cocok dari "seragam." Alasannya adalah ini: dalam dua dimensi, kumpulan titik ini terletak di sepanjang elips. Apakah seseorang seharusnya mengambil sampel dari elips sedemikian rupa sehingga panjang yang sama memiliki peluang yang sama, atau bahwa sudut yang sama memiliki peluang yang sama, atau sehingga panjang yang sama ketika variabel terstandarisasi memiliki peluang yang sama, atau dengan cara lain? Jika Anda dapat menjelaskan apa yang ingin dicapai oleh pengambilan sampel ini, itu mungkin memberi kami cukup informasi untuk mengetahui apa yang Anda coba tanyakan.
whuber
1
Saya mengerti bahwa pengambilan sampel secara seragam dari permukaan bola dan kemudian memetakannya ke ellipsoid tidak akan memberikan sampel yang seragam pada ellipsoid. Jadi saya memerlukan metode yang melakukan sampel secara seragam dari permukaan ellipsoid.
sachin vernekar
1
Apakah Anda ingin memiliki seragam sampel pada permukaan ellipsoid, dalam arti bahwa setiap elemen area dan permukaan hiper mengandung massa probabilitas yang sama?
Sextus Empiricus
1
Mengapa, bagaimana dan di mana Anda akan menerapkan sampel seragam ini? Informasi tersebut dapat membantu untuk datang dengan strategi terbaik / cukup. Misalnya, ketika sumbu ellipsoid yang berbeda tidak jauh berbeda maka Anda dapat menggunakan sampel penolakan dengan (1) pengambilan sampel pada sebuah bola, (2) meremasnya menjadi ellipsoid, (3) menghitung laju dimana area permukaan diperas (4) tolak sampel sesuai dengan kebalikan dari laju itu.
Sextus Empiricus

Jawaban:

4

Ketika sumbu ellipsoid yang berbeda tidak terlalu jauh berbeda maka layak untuk menggunakan sampel penolakan (dengan perbedaan besar Anda menolak banyak sehingga membuatnya kurang layak)

  • (1) sampel pada hyper-sphere
  • (2) meremasnya menjadi hyper-ellipsoid
  • (3) menghitung laju di mana permukaan diperas
  • (4) tolak sampel sesuai dengan tarif itu.

Contoh 2D

contoh

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")
Sextus Empiricus
sumber