Wie wird eine gleichmäßige Probe von der Oberfläche eines Hyperellipsoids genommen (konstanter Mahalanobis-Abstand)?


12

Gibt es in einem multivariaten Fall mit realem Wert eine Möglichkeit, die Punkte von der Oberfläche, an denen der Mahalanobis-Abstand vom Mittelwert des eine Konstante ist, gleichmäßig abzutasten?

BEARBEITEN: Es geht nur darum, Punkte gleichmäßig von der Oberfläche eines Hyperellipsoids abzutasten, das die Gleichung erfüllt.

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

Genauer gesagt meine ich mit "gleichmäßig" eine Stichprobe, bei der jedes Flächenelement dEIN der Hyperfläche die gleiche Wahrscheinlichkeitsmasse enthält.


1
Korrigieren Sie mich, wenn ich falsch liege: Fragen Sie sich, " wie kann ich bei gegebener Zufallsvariable gleichmäßig von den Punkten abtasten, die eine gegebene Mahalanobis-Distanz c von E [ X ] entfernt sind ?" XcE[X]
Kevin Li

1
Ich denke, wir brauchen eine passende Definition von "einheitlich". Der Grund ist folgender: In zwei Dimensionen liegt diese Punktmenge entlang einer Ellipse. Soll man von dieser Ellipse so abtasten, dass gleiche Längen gleiche Chancen haben oder dass gleiche Winkel gleiche Chancen haben oder dass gleiche Längen bei Normierung der Variablen gleiche Chancen haben oder auf andere Weise? Wenn Sie erklären könnten, was mit dieser Stichprobe erreicht werden soll, könnten Sie uns genügend Informationen geben, um zu wissen, wonach Sie fragen möchten.
whuber

1
Ich verstehe, dass eine gleichmäßige Abtastung von der Oberfläche der Kugel und eine anschließende Abbildung auf das Ellipsoid keine gleichmäßigen Abtastungen auf dem Ellipsoid ergeben. Also brauche ich eine Methode, die gleichmäßig von der Oberfläche eines Ellipsoids abtastet.
Sachin Vernekar

1
Möchten Sie die Probe gleichmäßig auf der Oberfläche eines Ellipsoids haben, in dem Sinne, dass jedes Flächenelement dA der Hyperoberfläche dieselbe Wahrscheinlichkeitsmasse enthält?
Sextus Empiricus

1
Warum, wie und wo werden Sie diese einheitliche Probe anwenden? Solche Informationen können dazu beitragen, eine bestmögliche Strategie zu entwickeln. Wenn sich beispielsweise die verschiedenen Ellipsoidachsen nicht stark voneinander unterscheiden, können Sie die Zurückweisungsabtastung verwenden, indem Sie (1) eine Kugel abtasten, (2) sie in ein Ellipsoid zusammendrücken und (3) die Rate berechnen, mit der die Oberfläche zusammengedrückt wurde (4) lehnen Sie Proben gemäß der Umkehrung dieser Rate ab.
Sextus Empiricus

Antworten:


3

Wenn die verschiedenen Ellipsoidachsen nicht zu stark voneinander abweichen, ist es möglich, die Ablehnungsabtastung zu verwenden (mit großen Unterschieden lehnen Sie eine Menge ab, was die Durchführbarkeit beeinträchtigt).

  • (1) Probe auf einer Hypersphäre
  • (2) Auspressen in ein Hyperellipsoid
  • (3) Berechne die Geschwindigkeit, mit der die Oberfläche zusammengedrückt wurde
  • (4) lehnen Sie Proben entsprechend dieser Rate ab.

2D Beispiel

Beispiel

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")
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.