Потрібен алгоритм для обчислення відносної ймовірності того, що дані є вибіркою від нормального та логічного нормального розподілу


13

Скажімо, у вас є набір значень, і ви хочете знати, чи є більш імовірним, що вони були відібрані з гауссового (нормального) розподілу або відібрані з лонормального розподілу?

Звичайно, в ідеалі ви знаєте щось про населення або про джерела експериментальної помилки, тому ви мали б додаткову інформацію, корисну для відповіді на питання. Але тут, припустимо, у нас є лише набір цифр і ніякої іншої інформації. Що є більш імовірним: вибірка з Гаусса чи вибірка з лонормального розподілу? На скільки більше шансів? Я сподіваюся, що це алгоритм вибору між двома моделями і, сподіваємось, кількісно визначити відносну ймовірність кожної з них.


1
Це може бути цікавою вправою спробувати охарактеризувати розподіл за розподілами в природі / опублікованій літературі. Потім знову - це ніколи не буде більше, ніж веселою вправою. Для серйозного лікування ви можете або шукати теорію, яка виправдовує ваш вибір, або надати достатню кількість даних - візуалізувати та перевірити справність відповідності кожного кандидата з розподілу.
JohnRos

3
Якщо це питання узагальнення досвіду, я б сказав, що позитивно перекошені розподіли - це найпоширеніший тип, особливо для змінних відповідей, які є центральними, і що логіки є більш поширеними, ніж нормальні. Том 1962 р . Вчений міркує за редакцією відомого статистика І. Дж. Гуда, включив анонімний фрагмент "Правила роботи Блогіна", що містить твердження "Нормальний розподіл журналу є більш нормальним, ніж нормальний". (Деякі інші правила сильно статистичні.)
Нік Кокс

Я, здається, інтерпретую ваше питання по-різному від JohnRos і anxoestevez. Для мене ваше запитання звучить як питання щодо простого вибору моделі , тобто питання обчислення , де - це нормальний розподіл або нормальний журнал, а - ваші дані. Якщо вибір моделі - це не те, що ви шукаєте, чи можете ви уточнити? M DP(MD)MD
Лукас

@lucas Я думаю, що ваша інтерпретація не так сильно відрізняється від моєї. В будь-якому випадку вам потрібно зробити припущення про априорі .
anxoestevez

2
Чому б просто не обчислити узагальнений коефіцієнт ймовірності та попередити користувача, коли він надає перевагу нормальному журналу?
Scortchi

Відповіді:


7

Ви можете найкраще здогадатися про тип розповсюдження, встановивши кожен розподіл (нормальний або лонормальний) до даних за максимальною ймовірністю, а потім порівняти ймовірність журналу для кожної моделі - найкраще підійде модель з найбільшою ймовірністю журналу. Наприклад, в R:

# log likelihood of the data given the parameters (par) for 
# a normal or lognormal distribution
logl <- function(par, x, lognorm=F) {
    if(par[2]<0) { return(-Inf) }
    ifelse(lognorm,
    sum(dlnorm(x,par[1],par[2],log=T)),
    sum(dnorm(x,par[1],par[2],log=T))
    )
}

# estimate parameters of distribution of x by ML 
ml <- function(par, x, ...) {
    optim(par, logl, control=list(fnscale=-1), x=x, ...)
}

# best guess for distribution-type
# use mean,sd of x for starting parameters in ML fit of normal
# use mean,sd of log(x) for starting parameters in ML fit of lognormal
# return name of distribution type with highest log ML
best <- function(x) {
    logl_norm <- ml(c(mean(x), sd(x)), x)$value
        logl_lognorm <- ml(c(mean(log(x)), sd(log(x))), x, lognorm=T)$value
    c("Normal","Lognormal")[which.max(c(logl_norm, logl_lognorm))]
}

Тепер генеруйте числа з нормального розподілу та підходимо до нормального розподілу за ML:

set.seed(1)
x = rnorm(100, 10, 2)
ml(c(10,2), x)

Виробляє:

$par
[1] 10.218083  1.787379

$value
[1] -199.9697
...

Порівняйте ймовірність журналу для відповідності ML нормальних та лонормальних розподілів:

ml(c(10,2), x)$value # -199.9697
    ml(c(2,0.2), x, lognorm=T)$value # -203.1891
best(x) # Normal

Спробуйте з логістичним розподілом:

best(rlnorm(100, 2.6, 0.2)) # lognormal

Призначення не буде ідеальним, залежно від n, середнього та sd:

> table(replicate(1000, best(rnorm(500, 10, 2))))

Lognormal    Normal 
        6       994 
> table(replicate(1000, best(rlnorm(500, 2.6, 0.2))))

Lognormal    Normal 
      999         1 

1
Не потрібно знаходити числові оцінки максимальної ймовірності як для нормальних, так і для нормальних для журналу (хоча це показує, як ви б узагальнили ідею для порівняння інших дистрибутивів). Крім цього, дуже розумний підхід.
Scortchi

Я ледве використовував R або концепцію максимальної вірогідності, тому тут основне питання. Я знаю, що ми не можемо порівняти AIC (або BIC) від пристосування нормального розподілу до даних порівняно з журналами даних, тому що AIC або BIC були б не порівнянні. Потрібно пристосувати дві моделі до одного набору даних (без перетворень; без сторонніх виключень тощо), і перетворення даних змінить AIC або BIC незалежно від того, що порівняння буде помилковим. Що з МЛ? Це порівняння легітимним?
Харві Мотульський

Ми знаходимо найкращі нормальні та лонормальні розподіли до даних, а потім обчислюємо ймовірність спостереження за даними, припускаючи, що вони були з цих розподілів (ймовірність чи p(X|\theta)). Ми не перетворюємо дані. Ми роздруковуємо розподіл, для якого найвища ймовірність спостереження за даними. Такий підхід є легітимним, але має той недолік, що ми не визначаємо ймовірність моделі за даними p(M|X), тобто ймовірність того, що дані є від нормального проти логічного нормального розподілу (наприклад, p (нормальний) = 0,1, p (lognormal) = 0,9) на відміну від байєсівського підходу.
waferthin

1
@Harvey Досить правда, але не має значення - ви запитували про пристосування нормальних та нормальних розподілів до тих самих даних, і саме це відповідає. Оскільки кількість вільних параметрів однакова для обох моделей, порівняння AIC або BIC зводиться до порівняння ймовірностей журналу.
Scortchi

@wannymahoots Будь-який розумний прийом для байєсівського підходу в цьому контексті - покладаючись на оцінку відносної ймовірності того, що користувач програмного забезпечення намагається встановити нормальні дані або нормальні для журналу дані - буде настільки малоінформативним, що дасть подібні результати підходу заснований просто на ймовірності.
Scortchi

11

Байєсівським підходом до вашої проблеми було б врахувати задню ймовірність над моделями урахуванням набору точок даних ,M{Normal,Log-normal}X={x1,...,xN}

P(MX)P(XM)P(M).

Важкою частиною є отримання граничної ймовірності ,

P(XM)=P(Xθ,M)P(θM)dθ.

Для певних варіантів граничну ймовірність гаусса можна отримати в закритому вигляді . Оскільки сказати, що звичайно поширюється в журналі - це те саме, що говорити про те, що } звичайно розподіляється, ви повинні мати можливість використовувати ту саму граничну ймовірність для нормального журналу. модель , як для гауссових моделі, застосовуючи її до замість . Тільки пам’ятайте, щоб врахувати якобіян трансформації ,p(θM)XY={logx1,...,logxNYX

P(XM=Log-Normal)=P(YM=Normal)i|1xi|.

Для цього підходу потрібно вибрати розподіл за параметрами - тут, імовірно, - та попередніми ймовірностями .P(θM)P(σ2,μM=Normal)P(M)

Приклад:

Для я вибираю нормально-зворотний гамма-розподіл з параметрами .P(μ,σ2M=Normal)m0=0,v0=20,a0=1,b0=100

введіть тут опис зображення

Відповідно до Мерфі (2007) (рівняння 203), гранична ймовірність нормального розподілу задається значенням

P(XM=Normal)=|vN|12|v0|12b0a0bnaNΓ(aN)Γ(a0)1πN/22N

де і - параметри заднього (рівняння 196 до 200),aN,bN,vNP(μ,σ2X,M=Normal)

vN=1/(v01+N),mN=(v01m0+ixi)/vN,aN=a0+N2,bN=b0+12(v01m02vN1mN2+ixi2).

Я використовую ті ж гіперпараметри для нормально розподіленого журналу,

P(XM=Log-normal)=P({logx1,...,logxN}M=Normal)i|1xi|.

Для попередньої ймовірності нормального журналу , , і даних, отриманих із наступного нормально-нормального розподілу,P ( M = норма-норма ) = 0,10.1P(M=Log-normal)=0.1

введіть тут опис зображення

задній веде себе так:

введіть тут опис зображення

Суцільна лінія показує середню задню ймовірність для різних креслень точок даних. Зауважте, що за малопомітними даними, вірування близькі до попередніх. Для приблизно 250 точок даних алгоритм майже завжди впевнений, що дані отримані з нормального розподілу журналу.N

Реалізуючи рівняння, було б хорошою ідеєю працювати з log-щільності замість щільності. Але в іншому випадку це повинно бути досить прямо вперед. Ось код, який я використовував для створення сюжетів:

https://gist.github.com/lucastheis/6094631


4

Це здається, що ви шукаєте щось досить прагматичне, щоб допомогти аналітикам, які, ймовірно, не є професійними статистиками, і їм потрібно щось підштовхнути їх до виконання, що має бути стандартними методами розвідки, такими як перегляд qq-графіків, графіків щільності тощо.

У такому випадку, чому б просто не зробити тест на нормальність (Shapiro-Wilk або будь-який інший) на вихідні дані, і один на журналі, перетвореному даними, і якщо друге значення p вище, піднесіть прапор аналітику, щоб розглянути можливість використання перетворення журналу ? Як бонус, виплюньте графік розміром 2 х 2 діаграми лінії густини та графік qqnorm для вихідних та перетворених даних.

Це технічно не відповість на ваше питання щодо відносної ймовірності, але мені цікаво, чи все це вам потрібно.


Розумний. Можливо, цього достатньо, і уникає необхідності пояснювати ймовірні обчислення .... Дякую.
Харві Мотульський
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.