Cuantiles de la combinación de distribuciones normales

13

Tengo información sobre las distribuciones de dimensiones antropométricas (como la envergadura de los hombros) para niños de diferentes edades. Para cada edad y dimensión, tengo media, desviación estándar. (También tengo ocho cuantiles, pero no creo que pueda obtener lo que quiero de ellos).

Para cada dimensión, me gustaría estimar cuantiles particulares de la distribución de longitud. Si supongo que cada una de las dimensiones está normalmente distribuida, puedo hacer esto con las medias y las desviaciones estándar. ¿Hay alguna fórmula bonita que pueda usar para obtener el valor asociado con un cuantil particular de la distribución?

Lo contrario es bastante fácil: para un valor particular, obtenga el área a la derecha del valor para cada una de las distribuciones normales (edades). Suma los resultados y divide por el número de distribuciones.

Actualización : Aquí está la misma pregunta en forma gráfica. Suponga que cada una de las distribuciones coloreadas se distribuye normalmente. La misma pregunta en forma gráfica.

Además, obviamente puedo probar diferentes longitudes y seguir cambiándolas hasta que obtenga una que esté lo suficientemente cerca del cuantil deseado para mi precisión. Me pregunto si hay una mejor manera que esta. Y si este es el enfoque correcto, ¿hay un nombre para ello?

Thomas Levine
fuente
3
¿Se pregunta si hay una fórmula simple para calcular los cuantiles de una mezcla de distribuciones normales? En esta aplicación, pediría los cuantiles (digamos) de la amplitud del hombro independientemente de la edad en función de los parámetros específicos de la edad . ¿Es esta una interpretación correcta?
whuber

Respuestas:

16

w

d2wdp2=w(dwdp)2

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

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

pN(μ,σ2)


Editar: con una comprensión modificada del problema, los datos se generan a partir de una mezcla de normales, de modo que la densidad de los datos observados es:

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
Macro
fuente
2
El último párrafo de la pregunta sugiere que se está pidiendo algo más. He pedido aclaraciones.
whuber
La corazonada de Whuber es correcta. Agregué una foto para hacer la pregunta menos confusa.
Thomas Levine
1
Ahora hay un paquete R para tratar este problema, consulte stats.stackexchange.com/questions/390931/…
Christoph Hanck