Quantili dalla combinazione di distribuzioni normali


13

Ho informazioni sulle distribuzioni di dimensioni antropometriche (come l'arco di spalla) per bambini di età diverse. Per ogni età e dimensione, ho una deviazione media e standard. (Ho anche otto quantili, ma non credo che sarò in grado di ottenere ciò che voglio da loro.)

Per ogni dimensione, vorrei stimare particolari quantili della distribuzione della lunghezza. Se suppongo che ciascuna delle dimensioni sia normalmente distribuita, posso farlo con i mezzi e le deviazioni standard. Esiste una formula carina che posso usare per ottenere il valore associato a un particolare quantile della distribuzione?

Il contrario è abbastanza semplice: per un valore particolare, porta l'area a destra del valore per ciascuna delle normali distribuzioni (età). Somma i risultati e dividi per il numero di distribuzioni.

Aggiornamento : ecco la stessa domanda in forma grafica. Supponiamo che ciascuna delle distribuzioni colorate sia normalmente distribuita. La stessa domanda in forma grafica

Inoltre, ovviamente posso solo provare un sacco di lunghezze diverse e continuare a cambiarle fino a quando non ne avrò una abbastanza vicina al quantile desiderato per la mia precisione. Mi chiedo se c'è un modo migliore di questo. E se questo è l'approccio giusto, c'è un nome per questo?


3
Stai chiedendo se esiste una formula semplice per calcolare i quantili di una miscela di distribuzioni normali? In questa applicazione, chiederesti i quantili (diciamo) della distanza della spalla indipendentemente dall'età in base ai parametri specifici dell'età . È un'interpretazione corretta?
whuber

Risposte:


16

w

d2wdp2=w(dwdp)2

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

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

pN(μ,σ2)


Modifica: con una comprensione modificata del problema, i dati vengono generati da una miscela di normali, in modo che la densità dei dati osservati sia:

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

2
L'ultimo paragrafo della domanda suggerisce che è stato chiesto qualcos'altro. Ho chiesto chiarimenti.
whuber

L'intuizione di Whuber è corretta. Ho aggiunto un'immagine per rendere la domanda meno confusa.
Thomas Levine,

1
Ora esiste un pacchetto R per affrontare questo problema, vedere stats.stackexchange.com/questions/390931/…
Christoph Hanck
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.