Làm thế nào để lấy mẫu đồng đều từ bề mặt của một siêu elip (khoảng cách Mahalanobis không đổi)?


12

Trong trường hợp đa biến có giá trị thực, có cách nào để lấy mẫu thống nhất các điểm từ bề mặt mà khoảng cách Mahalanobis từ giá trị trung bình của hằng số là một hằng số không?

EDIT: Điều này chỉ làm sôi các điểm lấy mẫu một cách đồng đều từ bề mặt của một siêu ellipsoid thỏa mãn phương trình,

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

Nói chính xác hơn, bằng cách "thống nhất", ý tôi là mẫu sao cho mỗi phần tử diện tích dA của siêu bề mặt chứa cùng một khối xác suất.


1
XcE[X]

1
Tôi nghĩ rằng chúng ta sẽ cần một định nghĩa phù hợp về "thống nhất." Lý do là thế này: trong hai chiều, tập hợp các điểm này nằm dọc theo một số hình elip. Là người ta phải lấy mẫu từ hình elip đó theo cách sao cho độ dài bằng nhau có cơ hội bằng nhau, hoặc góc bằng nhau có cơ hội bằng nhau, hoặc sao cho độ dài bằng nhau khi các biến được tiêu chuẩn hóa có cơ hội bằng nhau, hoặc theo một cách khác? Nếu bạn có thể giải thích những gì mẫu này nhằm đạt được, điều đó có thể cung cấp cho chúng tôi đủ thông tin để biết những gì bạn đang cố gắng hỏi.
whuber

1
Tôi hiểu rằng lấy mẫu đồng đều từ bề mặt của hình cầu và sau đó ánh xạ nó tới ellipsoid sẽ không đưa ra các mẫu thống nhất trên ellipsoid. Vì vậy, tôi cần một phương pháp lấy mẫu đồng đều từ bề mặt của một hình elip.
sachin vernekar

1
Bạn có muốn có đồng phục mẫu trên bề mặt của một ellipsoid, theo nghĩa là mỗi phần tử diện tích dA của siêu bề mặt chứa cùng một khối xác suất?
Sextus Empiricus

1
Tại sao, làm thế nào và ở đâu bạn sẽ áp dụng mẫu đồng phục này? Thông tin như vậy có thể giúp đi kèm với một chiến lược tốt nhất / đủ. Chẳng hạn, khi các trục ellipsoid khác nhau không khác nhau nhiều thì bạn có thể sử dụng lấy mẫu từ chối bằng cách (1) lấy mẫu trên một quả cầu, (2) ép nó vào một ellipsoid, (3) tính tốc độ mà diện tích bề mặt bị ép (4) từ chối các mẫu theo tỷ lệ nghịch của tỷ lệ đó.
Sextus Empiricus

Câu trả lời:


3

Khi các trục ellipsoid khác nhau không quá khác nhau thì có thể sử dụng lấy mẫu từ chối (với sự khác biệt lớn mà bạn từ chối rất nhiều khiến nó ít khả thi hơn)

  • (1) mẫu trên siêu hình cầu
  • (2) ép nó thành một siêu ellipsoid
  • (3) tính tốc độ diện tích bề mặt bị vắt
  • (4) từ chối các mẫu theo tỷ lệ đó.

Ví dụ 2D

thí dụ

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")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.