Квантили від комбінації нормальних розподілів


13

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

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

Зворотний процес досить простий: для конкретного значення отримайте площу праворуч від значення для кожного з нормальних розподілів (віків). Підсумуйте результати та розділіть на кількість розподілів.

Оновлення : Ось те саме питання у графічній формі. Припустимо, що кожен з кольорових розподілів зазвичай розподілений. Це ж питання у графічній формі

Крім того, я, очевидно, можу просто спробувати купу різної довжини і продовжувати їх змінювати, поки я не отримаю той, який досить близький до потрібного квантилу для моєї точності. Мені цікаво, чи є кращий спосіб, ніж цей. І якщо це правильний підхід, чи існує його назва?


3
Ви запитуєте, чи існує проста формула для обчислення квантових сумішей звичайних розподілів? У цій програмі ви б запитували про квантування (скажімо) плечового діапазону незалежно від віку залежно від вікових параметрів. Це правильне тлумачення?
whuber

Відповіді:


16

На жаль, стандартна нормальна (з якої можна визначити всі інші, оскільки норма є сім’єю масштабної локації) квантильна функція не допускає закритої форми (тобто «досить формули»). Найближчим до закритої форми є те, що стандартною нормальною квантильною функцією є функція, , яка задовольняє диференціальне рівнянняw

d2wdp2=w(dwdp)2

і початкові умови і . У більшості обчислювальних середовищ є функція, яка чисельно обчислює нормальну квантильну функцію. В R ви введетеw(1/2)=0w(1/2)=2π

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

щоб отримати '-й квантил розподілу .pN(μ,σ2)


Редагувати: З модифікованим розумінням проблеми, дані формуються із суміші нормалей, так що щільність спостережуваних даних становить:

p(x)=iwipi(x)

де а кожен - деяка нормальна щільність із середнім та стандартним відхиленням . Звідси випливає, що CDF спостережуваних даних єiwi=1pi(x)μiσi

F(y)=yiwipi(x)dx=iwiypi(x)=iwiFi(y)

де - нормальний CDF із середнім і стандартним відхиленням . Інтеграція та підсумовування можуть бути змінені, оскільки ці інтеграли є кінцевими. Цей CDF є безперервним і досить простим для обчислення на комп'ютері, тому обернений CDF, , також відомий як квантильна функція, може бути обчислений шляхом пошуку рядків. Я замовчую цей варіант, оскільки не приходить до уваги жодна проста формула для кількісної функції суміші нормалей, як функція квантилів складових розподілів.μ i σ i F - 1Fi(x)μiσiF1

Наведений нижче код R чисельно обчислює використовуючи бісекцію для пошуку рядка. Функція F_inv () - квантильна функція, вам потрібно поставити вектор, що містить кожен і квантил, для якого слід вирішити, . w i , μ i , σ i pF1wi,μ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/…
Крістоф Хенк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.