Quantile aus der Kombination von Normalverteilungen

12

Ich habe Informationen über die Verteilung der anthropometrischen Dimensionen (wie die Schulterspanne) für Kinder unterschiedlichen Alters. Für jedes Alter und jede Dimension habe ich die mittlere Standardabweichung. (Ich habe auch acht Quantile, aber ich glaube nicht, dass ich in der Lage sein werde, von ihnen zu bekommen, was ich will.)

Für jede Dimension möchte ich bestimmte Quantile der Längenverteilung schätzen. Wenn ich annehme, dass jede der Dimensionen normal verteilt ist, kann ich dies mit den Mitteln und Standardabweichungen tun. Gibt es eine hübsche Formel, mit der ich den Wert ermitteln kann, der einem bestimmten Quantil der Verteilung zugeordnet ist?

Das Gegenteil ist ganz einfach: Stellen Sie für einen bestimmten Wert den Bereich rechts vom Wert für jede der Normalverteilungen (Alter) ein. Summiere die Ergebnisse und dividiere durch die Anzahl der Verteilungen.

Update : Hier ist die gleiche Frage in grafischer Form. Angenommen, jede der Farbverteilungen ist normalverteilt. Die gleiche Frage in grafischer Form

Natürlich kann ich auch einfach ein paar verschiedene Längen ausprobieren und sie so lange ändern, bis ich eine bekomme, die dem gewünschten Quantil für meine Präzision nahe genug ist. Ich frage mich, ob es einen besseren Weg gibt. Und wenn dies der richtige Ansatz ist, gibt es einen Namen dafür?

Thomas Levine
quelle
3
Fragen Sie sich, ob es eine einfache Formel gibt, um Quantile einer Mischung von Normalverteilungen zu berechnen? In dieser Anwendung würden Sie nach den Quantilen (etwa) der Schulterspanne fragen, unabhängig vom Alter, basierend auf den altersspezifischen Parametern. Ist das eine richtige Interpretation?
whuber

Antworten:

16

w

d2wdp2=w(dwdp)2

w(1/2)=0w(1/2)=2π

qnorm(p, mean=mu, sd=sigma)

pN(μ,σ2)


Bearbeiten: Mit einem veränderten Verständnis des Problems werden die Daten aus einer Mischung von Normalen generiert, sodass die Dichte der beobachteten Daten wie folgt ist:

p(x)=iwipi(x)

iwi=1pi(x)μiσi

F(y)=yiwipi(x)dx=iwiypi(x)=iwiFi(y)

Fi(x)μiσiF1

F1wi,μi,σip

# evaluate the function at the point x, where the components 
# of the mixture have weights w, means stored in u, and std deviations
# stored in s - all must have the same length.
F = function(x,w,u,s) sum( w*pnorm(x,mean=u,sd=s) )

# provide an initial bracket for the quantile. default is c(-1000,1000). 
F_inv = function(p,w,u,s,br=c(-1000,1000))
{
   G = function(x) F(x,w,u,s) - p
   return( uniroot(G,br)$root ) 
}

#test 
# data is 50% N(0,1), 25% N(2,1), 20% N(5,1), 5% N(10,1)
X = c(rnorm(5000), rnorm(2500,mean=2,sd=1),rnorm(2000,mean=5,sd=1),rnorm(500,mean=10,sd=1))
quantile(X,.95)
    95% 
7.69205 
F_inv(.95,c(.5,.25,.2,.05),c(0,2,5,10),c(1,1,1,1))
[1] 7.745526

# data is 20% N(-5,1), 45% N(5,1), 30% N(10,1), 5% N(15,1)
X = c(rnorm(5000,mean=-5,sd=1), rnorm(2500,mean=5,sd=1),
      rnorm(2000,mean=10,sd=1), rnorm(500, mean=15,sd=1))
quantile(X,.95)
     95% 
12.69563 
F_inv(.95,c(.2,.45,.3,.05),c(-5,5,10,15),c(1,1,1,1))
[1] 12.81730
Makro
quelle
2
Der letzte Absatz der Frage weist darauf hin, dass nach etwas anderem gefragt wird. Ich habe um Klarstellung gebeten.
Whuber
Whubers Vermutung ist richtig. Ich habe ein Bild hinzugefügt, um die Frage weniger verwirrend zu machen.
Thomas Levine
1
Es gibt jetzt ein R-Paket, um dieses Problem zu beheben, siehe stats.stackexchange.com/questions/390931/…
Christoph Hanck