Kwantyle z kombinacji rozkładów normalnych

13

Mam informacje o rozkładach wymiarów antropometrycznych (takich jak rozpiętość ramion) dla dzieci w różnym wieku. Dla każdego wieku i wymiaru mam na myśli standardowe odchylenie. (Mam również osiem kwantyli, ale nie sądzę, że będę w stanie uzyskać od nich to, czego chcę).

Dla każdego wymiaru chciałbym oszacować poszczególne kwantyle rozkładu długości. Jeśli założę, że każdy z wymiarów jest normalnie rozłożony, mogę to zrobić za pomocą średnich i standardowych odchyleń. Czy istnieje ładna formuła, której mogę użyć, aby uzyskać wartość związaną z konkretnym kwantylem rozkładu?

Odwrotna sytuacja jest dość łatwa: dla konkretnej wartości umieść obszar po prawej stronie wartości dla każdej normalnej dystrybucji (wieku). Zsumuj wyniki i podziel przez liczbę rozkładów.

Aktualizacja : Oto to samo pytanie w formie graficznej. Załóżmy, że każdy z kolorowych rozkładów jest zwykle rozłożony. To samo pytanie w formie graficznej

Oczywiście mogę po prostu wypróbować kilka różnych długości i ciągle je zmieniać, aż otrzymam taki, który jest wystarczająco blisko pożądanego kwantyla dla mojej precyzji. Zastanawiam się, czy istnieje lepszy sposób niż ten. A jeśli jest to właściwe podejście, czy istnieje na to nazwa?

Thomas Levine
źródło
3
Czy pytasz, czy istnieje prosty wzór do obliczania kwantyli mieszanki rozkładów normalnych? W tej aplikacji prosisz o kwantyle (powiedzmy) rozpiętości ramion niezależnie od wieku w oparciu o parametry specyficzne dla wieku . Czy to poprawna interpretacja?
whuber

Odpowiedzi:

16

w

d2wdp2)=w(rewrep)2)

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

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

pN.(μ,σ2))


Edycja: przy zmodyfikowanym zrozumieniu problemu dane są generowane z mieszanki normalnych, dzięki czemu gęstość obserwowanych danych wynosi:

p(x)=jawjapja(x)

jawja=1pja(x)μjaσja

fa(y)=-yjawjapja(x)rex=jawja-ypja(x)=jawjafaja(y)

faja(x)μjaσjafa-1

fa-1wja,μja,σjap

# 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
źródło
2
Ostatni akapit pytania wskazuje, że proszono o coś innego. Poprosiłem o wyjaśnienia.
whuber
przeczucie Whubera jest prawidłowe. Dodałem zdjęcie, aby pytanie było mniej mylące.
Thomas Levine,
1
Teraz jest pakiet R do rozwiązania tego problemu, patrz stats.stackexchange.com/questions/390931/...
Christoph Hanck