Quantiles de la combinaison de distributions normales

13

J'ai des informations sur la distribution des dimensions anthropométriques (comme la portée des épaules) pour les enfants d'âges différents. Pour chaque âge et dimension, j'ai un écart-type moyen. (J'ai également huit quantiles, mais je ne pense pas pouvoir obtenir ce que je veux d'eux.)

Pour chaque dimension, je voudrais estimer des quantiles particuliers de la distribution de longueur. Si je suppose que chacune des dimensions est normalement distribuée, je peux le faire avec les moyennes et les écarts-types. Existe-t-il une jolie formule que je peux utiliser pour obtenir la valeur associée à un quantile particulier de la distribution?

L'inverse est assez simple: pour une valeur particulière, placez l'aire à droite de la valeur pour chacune des distributions normales (âges). Additionnez les résultats et divisez par le nombre de distributions.

Mise à jour : voici la même question sous forme graphique. Supposons que chacune des distributions colorées soit normalement distribuée. La même question sous forme graphique

De plus, je peux évidemment essayer un tas de longueurs différentes et continuer à les changer jusqu'à ce que j'en obtienne une assez proche du quantile souhaité pour ma précision. Je me demande s'il y a une meilleure façon que cela. Et si c'est la bonne approche, y a-t-il un nom pour cela?

Thomas Levine
la source
3
Demandez-vous s'il existe une formule simple pour calculer les quantiles d'un mélange de distributions normales? Dans cette application, vous demanderiez les quantiles (disons) de l'envergure des épaules indépendamment de l'âge en fonction des paramètres spécifiques à l' âge . Est-ce une interprétation correcte?
whuber

Réponses:

16

w

d2wdp2=w(dwdp)2

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

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

pN(μ,σ2)


Edit: Avec une compréhension modifiée du problème, les données sont générées à partir d'un mélange de normales, de sorte que la densité des données observées est:

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
la source
2
Le dernier paragraphe de la question laisse entendre que quelque chose d'autre est demandé. J'ai demandé des éclaircissements.
whuber
l'intuition de whuber est correcte. J'ai ajouté une photo pour rendre la question moins confuse.
Thomas Levine
1
Il existe désormais un package R pour résoudre ce problème, voir stats.stackexchange.com/questions/390931/…
Christoph Hanck