Квантили из комбинации нормальных распределений

13

У меня есть информация о распределении антропометрических размеров (таких как размах плеч) для детей разных возрастов. Для каждого возраста и измерения у меня есть среднее стандартное отклонение. (У меня также есть восемь квантилей, но я не думаю, что смогу получить от них то, что хочу.)

Для каждого измерения я хотел бы оценить конкретные квантили распределения длины. Если я предполагаю, что каждое из измерений нормально распределено, я могу сделать это с помощью средних и стандартных отклонений. Есть ли симпатичная формула, которую я могу использовать, чтобы получить значение, связанное с определенным квантилем распределения?

Обратное довольно просто: для определенного значения возьмите область справа от значения для каждого из нормальных распределений (возрастов). Суммируйте результаты и делите на количество распределений.

Обновление : вот тот же вопрос в графической форме. Предположим, что каждое из цветных распределений нормально распределено. Тот же вопрос в графической форме

Кроме того, я, очевидно, могу просто попробовать несколько разных длин и менять их, пока не получу ту, которая достаточно близка к желаемому квантилю для моей точности. Мне интересно, есть ли лучший способ, чем этот. И если это правильный подход, есть ли название для него?

Томас Левайн
источник
3
Вы спрашиваете, существует ли простая формула для вычисления квантилей смеси нормальных распределений? В этом приложении вы будете запрашивать квантили (скажем) размаха плеч, независимо от возраста на основе возрастных параметров. Это правильная интерпретация?
whuber

Ответы:

16

w

d2wdp2=w(dwdp)2

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

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

pN(μ,σ2)


Изменить: с измененным пониманием проблемы, данные генерируются из смеси нормалей, так что плотность наблюдаемых данных составляет:

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
Последний абзац вопроса намекает на то, что просят что-то еще. Я попросил разъяснений.
whuber
догадка Вубера верна. Я добавил картинку, чтобы сделать вопрос менее запутанным.
Томас Левин
1
Теперь есть пакет R для решения этой проблемы, см. Stats.stackexchange.com/questions/390931/…
Кристоф Ханк,