Mich interessiert, wie man ein Quantil einer multivariaten Verteilung berechnen kann. In den Abbildungen habe ich die 5% - und 95% -Quantile einer gegebenen univariaten Normalverteilung gezeichnet (links). Für die richtige multivariate Normalverteilung stelle ich mir vor, dass ein Analog eine Isolinie ist, die die Basis der Dichtefunktion umgibt. Unten ist ein Beispiel für meinen Versuch, dies mit dem Paket zu berechnen mvtnorm
- aber ohne Erfolg. Ich nehme an, dies könnte durch Berechnen einer Kontur der Ergebnisse der multivariaten Dichtefunktion geschehen, aber ich habe mich gefragt, ob es eine andere Alternative gibt ( z. B. Analog von qnorm
). Danke für Ihre Hilfe.
Beispiel:
mu <- 5
sigma <- 2
vals <- seq(-2,12,,100)
ds <- dnorm(vals, mean=mu, sd=sigma)
plot(vals, ds, t="l")
qs <- qnorm(c(0.05, 0.95), mean=mu, sd=sigma)
abline(v=qs, col=2, lty=2)
#install.packages("mvtnorm")
require(mvtnorm)
n <- 2
mmu <- rep(mu, n)
msigma <- rep(sigma, n)
mcov <- diag(msigma^2)
mvals <- expand.grid(seq(-2,12,,100), seq(-2,12,,100))
mvds <- dmvnorm(x=mvals, mean=mmu, sigma=mcov)
persp(matrix(mvds,100,100), axes=FALSE)
mvqs <- qmvnorm(0.95, mean=mmu, sigma=mcov, tail = "both") #?
#ex. plot
png("tmp.png", width=8, height=4, units="in", res=400)
par(mfcol=c(1,2))
#univariate
plot(vals, ds, t="l")
qs <- qnorm(c(0.05, 0.95), mean=mu, sd=sigma)
abline(v=qs, col=2, lty=2)
#multivariate
pmat <- persp(seq(-2,12,,100), seq(-2,12,,100), matrix(mvds,100,100), axes=FALSE, shade=TRUE, lty=0)
cont <- contourLines(seq(-2,12,,100), seq(-2,12,,100), matrix(mvds,100,100), levels=0.05^2)
lines(trans3d(cont[[1]]$x, cont[[1]]$y, cont[[1]]$level, pmat), col=2, lty=2)
dev.off()
r
pdf
quantiles
multivariate-normal
multivariate-distribution
Marc in der Kiste
quelle
quelle
Antworten:
Die Konturlinie ist ein Ellipsoid. Der Grund dafür ist, dass Sie sich das Argument des Exponentials im PDF der multivariaten Normalverteilung ansehen müssen: Die Isolinien wären Linien mit demselben Argument. Dann bekommst du wobei Σ die Kovarianzmatrix ist. Das ist genau die Gleichung einer Ellipse; im einfachsten Fall ist μ = ( 0 , 0 ) und Σ ist diagonal, so dass Sie ( x erhalten
Nun müssten Sie die PDF-Datei der Multivariate innerhalb (oder außerhalb) der Ellipse integrieren und anfordern, dass diese dem gewünschten Quantil entspricht. Angenommen, Ihre Quantile sind nicht die üblichen, sondern im Prinzip elliptisch (dh Sie suchen nach dem HDR (Highest Density Region), wie die Antwort von Tim zeigt). Ich würde Variablen im pdf zu ändern , in den Winkel integrieren und dann für z von 0 nach √z2= ( x / σx)2+ ( y/ σy)2 z 0 1-α= ∫ √c√
Dazu Ersatz s = - z 2 / 2 :
∫ √
Im Prinzip müssen Sie also nach der Ellipse suchen, die in zentriert ist , wobei die Achse über den Eigenvektoren von Σ und dem effektiven Radius - 2 liegtμ Σ - 2 lnα
quelle
Sie haben nach multivariaten Normalen gefragt, aber Ihre Frage begann mit der Frage nach dem "Quantil einer multivariaten Verteilung" im Allgemeinen. Aus dem Wortlaut Ihrer Frage und dem vorausgesetzten Beispiel geht hervor, dass Sie an Regionen mit der höchsten Dichte interessiert sind . Sie werden von Hyndman (1996) wie folgt definiert
Hyndman, RJ (1996). Berechnen und Zeichnen von Regionen mit der höchsten Dichte. The American Statistician, 50 (2), 120-126.
quelle
quelle
Sie könnten eine Ellipse zeichnen, die den Mahalanobis-Abständen entspricht.
Oder mit Kreisen um 95%, 75% und 50% der Daten
quelle