Оцінка розподілу на основі трьох відсотків


23

Якими методами я можу зробити висновок про розподіл, якщо я знаю лише три процентилі?

Наприклад, я знаю, що в певному наборі даних п'ятий перцентиль становить 8,135, 50-й перцентилет - 11,259, а 95-й перцентиль - 23 611. Я хочу мати можливість перейти від будь-якого іншого числа до його процентиля.

Це не мої дані, і це все, що я маю. Зрозуміло, що розподіл не є нормальним. Єдиною іншою інформацією, яку я маю, є те, що ці дані представляють державне фінансування на душу населення для різних шкільних округів.

Я знаю достатньо статистики, щоб знати, що ця проблема не має певного рішення, але недостатньо, щоб знати, як шукати хороших здогадок.

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


я додав тег r, щоб код R
виділився

Детальний приклад того ж питання (та його рішення) дивіться у дублікаті потоку на сайті stats.stackexchange.com/questions/133129 .
whuber

Відповіді:


17

Використання чисто статистичного методу для виконання цієї роботи не дасть абсолютно ніякої додаткової інформації про розподіл шкільних витрат: результат буде відображати лише довільний вибір алгоритму.

Вам потрібно більше даних .

Це легко зрозуміти: використовувати дані попередніх років, із порівнянних районів, будь-що. Наприклад, федеральні витрати на 14866 шкільних округів у 2008 році доступні на веб-сайті перепису . Це показує, що по всій країні загальний дохід на душу населення (зарахований) федеральний дохід був приблизно розподілений ненормально, але, розбиваючи його за штатом, виявляється суттєва різниця ( наприклад , витрати на журнали на Алясці мають негативний перекіс, а витрати на журнали в Колорадо мають сильні позитивні перекоси) . Використовуйте ці дані, щоб охарактеризувати ймовірну форму розповсюдження, а потім пристосуйте свої кванти до цієї форми.

Якщо ви навіть близькі до потрібної форми розповсюдження, то ви повинні мати можливість точно відтворити квантування, встановивши один або максимум два параметри. Найкраща техніка пошуку придатності буде залежати від форми розповсюдження, яку ви використовуєте, але - що набагато важливіше - це залежатиме від того, для чого ви збираєтесь використовувати результати. Чи потрібно оцінювати середню суму витрат? Верхня та нижня межі витрат? Як би там не було, ви хочете прийняти певну міру корисності, яка дасть вам найкращі шанси прийняти хороші рішення з вашими результатами. Наприклад, якщо ваш інтерес зосереджений на верхніх 10% усіх витрат, ви захочете точно підходити до 95-го процентилу, і вам може бути мало цікаво щодо пристосування 5-го перцентилету. Жодна складна техніка підгонки не зважатиме на вас.

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


2
+1 Вам потрібно більше даних і те, що ви збираєтесь використовувати для отримання додаткових акцентів.
vqv

2
Здається, що у вашій відповіді багато мудрості. Мені доведеться більше порадитися з людьми, які поставили мені проблему щодо того, що вони хочуть. Дякую за посилання та поради.
Марк Ейхенлауб

1
@Mark Найкраща удача!
whuber

23

Як зазначав @whuber, статистичні методи тут точно не працюють. Потрібно зробити висновок про розподіл з інших джерел. Коли ви знаєте розподіл, у вас є вправа розв’язування нелінійного рівняння. Позначимо через квантильну функцію обраного вами розподілу ймовірностей з параметром вектора θ . У вас є така нелінійна система рівнянь:fθ

q0,05=f(0,05,θ)q0,5=f(0,5,θ)q0,95=f(0,95,θ)

де - ваші кванти. Вам потрібно розв’язати цю систему, щоб знайти θ . Тепер практично для будь-якого 3-параметричного розподілу ви знайдете значення параметрів, що задовольняють цьому рівнянню. Для 2-параметричних та однопараметричних розподілів ця система переопределена, тому точних рішень немає. У цьому випадку ви можете шукати набір параметрів, що мінімізує розбіжність:qθ

(q0,05-f(0,05,θ))2+(q0,5-f(0,5,θ))2+(q0,95-f(0,95,θ))2

Тут я вибрав квадратичну функцію, але ви можете вибрати все, що завгодно. Відповідно до коментарів @whuber, ви можете призначити ваги, щоб більш важливі квантили могли бути встановлені точніше.

Для чотирьох і більше параметрів система недостатньо визначена, тому існує нескінченна кількість рішень.

Ось приклад коду R, що ілюструє такий підхід. Для демонстрації я генерую кванти з розподілу Сінгх-Маддала з пакету VGAM . Цей розподіл має 3 параметри і використовується в моделюванні розподілу доходу.

 q <- qsinmad(c(0.05,0.5,0.95),2,1,4)
 plot(x<-seq(0,2,by=0.01), dsinmad(x, 2, 1, 4),type="l")
 points(p<-c(0.05, 0.5, 0.95), dsinmad(p, 2, 1, 4))

alt текст

Тепер сформуйте функцію, яка оцінює нелінійну систему рівнянь:

 fn <- function(x,q) q-qsinmad(c(0.05, 0.5, 0.95), x[1], x[2], x[3])

Перевірте, чи відповідають справжні значення рівнянню:

 > fn(c(2,1,4),q)
   [1] 0 0 0

Для вирішення нелінійної системи рівнянь я використовую функцію nleqslvз пакету nlqeslv .

 > sol <- nleqslv(c(2.4,1.5,4.3),fn,q=q)
 > sol$x       
  [1] 2.000000 1.000000 4.000001

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

 > ofn <- function(x,q)sum(abs(q-qlnorm(c(0.05,0.5,0.95),x[1],x[2]))^2)
 > osol <- optim(c(1,1),ofn)
 > osol$par
   [1] -0.905049  0.586334

Тепер побудуйте результат

  plot(x,dlnorm(x,osol$par[1],osol$par[2]),type="l",col=2)
  lines(x,dsinmad(x,2,1,4))
  points(p,dsinmad(p,2,1,4))

alt текст

З цього ми відразу бачимо, що квадратична функція не настільки хороша.

Сподіваюся, це допомагає.


1
Чудово! Дякую за всі зусилля, які потрапили в це, mpiktas. Я не знайомий з R, але ваш код пояснений досить добре, щоб я все ще легко міг сказати, що ви робите.
Марк Ейхенлауб

Дякую за цей приклад. Я думаю, що в цьому є 2 помилки ofn <- function(x,q) sum(abs(q-qlnorm(c(0.05,0.5,0.95),x[1],x[2]))^2). Я пропоную, ofn <- function(x) sum(abs(q-qlnorm(c(0.05,0.5,0.95),x[1],x[2],x[3]))^2)оскільки qце не є вхідним фактором ofn, і X[3]його немає. З повагою

9

Спробуйте пакет rriskDistributions , і - якщо ви впевнені в сімействі логістичних розподілів - використовуйте команду

get.lnorm.par(p=c(0.05,0.5,0.95),q=c(8.135,11.259,23.611))

що має вирішити вашу проблему. Використовуйте fit.percнатомість, якщо ви не хочете обмежуватися одним відомим PDF-файлом.


Супер просте рішення!
luchonacho

6

Для лонормального відношення 95-го перцентиля до медіани таке ж, як відношення медіани до 5-го перцентилету. Це навіть майже не відповідає дійсності, тому лонормальне не було б гарним підходом.

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

Це не дасть вам ніяких ознак невизначеності в оцінках інших квантових елементів. Я не знаю, чи вам це потрібно, але, як статистик, я відчуваю, що маю змогу це надати, тому я не дуже задоволений цією відповіддю. Я, звичайно, не використовував би цей метод чи, мабуть, будь-який метод, щоб екстраполювати (багато) поза діапазоном від 5-го до 95-го відсотків.


1
Дякую за пораду. Re: lognormal - я міг би зробити співвідношення відсотків до медіани відпрацьованим, віднявши 7077 від усього, а потім додавши його в кінці. Яка б погана ідея це була б?
Марк Ейхенлауб

1
Хороший момент, що дасть «зрушене нормально розподіл журналу». Log-normal та log-log є досить схожими за формою, крім важчих хвостів останнього, тому ви можете спробувати і те, і порівняти результати.
onestop

Порівняйте як? Зміщена лонормальна норма гарантовано ідеально підходить до квантилів. Практично будь-яка трипараметрична сім'я підійде ідеально. Як ви порівнюєте два ідеальних підходи?
whuber

@whuber Я мав на увазі порівняти отримані прогнози для відсотків, що відповідають іншим значенням
onestop

Мені чогось не вистачає: які ще цінності? В ОП зазначається, що доступні лише три відсотки, нічого іншого.
whuber

2

Про єдине, що можна зробити з даних, це те, що розподіл несиметричний. Ви навіть не можете сказати, чи були ці квантили з пристосованого дистрибутиву чи просто з PDF.

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


1
Поліноми та сплайни навряд чи будуть дійсними CDF.
whuber

Гарне спостереження. У цьому випадку звичайний квадратичний многочлен не спрацьовує, але на вибір нескінченно багато квадратичних сплайнів (подумайте Безьє), які не повинні мати ту саму проблему (хоча деякі з них все-таки потребують обрізання домену). Так само має бути можливість знайти підходящий монотонний кубічний сплайн. Мені відомо про алгоритми сплайну, які гарантують монотонність, але я не в змозі знайти його зараз, тому мені доведеться залишити питання на "вибрати щось, що вам подобається, що працює як PDF".
ssqu

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

2

Використання квантилів для оцінки параметрів апріорних розподілів обговорюється в літературі щодо вимірювання часу відгуку людини як "квантильне оцінювання максимальної ймовірності" (QMPE, хоча спочатку помилково називалося "кількісною оцінкою максимальної ймовірності", QMLE), обговорюваної довкола Heathcote та колеги . Ви можете помістити кілька різних апріорних розподілів (колишні гауссові, зрушені Lognormal, Wald та Weibull), а потім порівняти ймовірність журналу підсумків отриманих найкращих підходів для кожного розподілу, щоб знайти аромат розподілу, який, здається, найкраще підходить.


2
Будь-який трипараметричний розподіл гарантовано ідеально підходить до трьох квантилів . Таким чином, є сенс використовувати цей підхід, щоб відповідати лише одному або двом параметрам. Також не має сенсу порівнювати однопараметричне пристосування до двопараметричного пристосування (з іншим сімейством) на основі лише ймовірності.
whuber

@whuber, re: "Будь-який трипараметричний розподіл гарантовано ідеально відповідає три квантові". Я цього не усвідомлював, так добре знати! re: "Також не має сенсу порівнювати однопараметричне пристосування до двопараметричного пристосування (з іншим сімейством) лише на основі ймовірності." Так, дійсно; Я не зазначив, що доведеться застосувати певну корекцію складності (AIC, BIC, ...), якщо порівнювати підходи до ароматів розподілу з різною кількістю параметрів. Дякуємо, що вказали на це.
Майк Лоуренс

Я трохи перебільшував, тому що думав про два параметри - масштаб та розташування, а третій - із широким діапазоном фігур. Незважаючи на це, більшість сімейств з трьома параметрами мають достатню гнучкість для розміщення трьох відсотків за умови, що всі вони відрізняються.
whuber

1

Ви можете використовувати свою відсоткову інформацію, щоб певним чином імітувати дані, а також використовувати пакет R "логоспин", щоб оцінити розподіл непараметрично. Нижче наведена моя функція, яка використовує такий метод.

calc.dist.from.median.and.range <- function(m, r) 
{
    ## PURPOSE: Return a Log-Logspline Distribution given (m, r).
    ##          It may be necessary to call this function multiple times in order to get a satisfying distribution (from the plot). 
    ## ----------------------------------------------------------------------
    ## ARGUMENT:
    ##   m: Median
    ##   r: Range (a vector of two numbers)
    ## ----------------------------------------------------------------------
    ## RETURN: A log-logspline distribution object.
    ## ----------------------------------------------------------------------
    ## AUTHOR: Feiming Chen,  Date: 10 Feb 2016, 10:35

    if (m < r[1] || m > r[2] || r[1] > r[2]) stop("Misspecified Median and Range")

    mu <- log10(m)
    log.r <- log10(r)

    ## Simulate data that will have median of "mu" and range of "log.r"
    ## Distribution on the Left/Right: Simulate a Normal Distribution centered at "mu" and truncate the part above/below the "mu".
    ## May keep sample size intentionaly small so as to introduce uncertainty about the distribution. 
    d1 <- rnorm(n=200, mean=mu, sd=(mu - log.r[1])/3) # Assums 3*SD informs the bound
    d2 <- d1[d1 < mu]                   # Simulated Data to the Left of "mu"
    d3 <- rnorm(n=200, mean=mu, sd=(log.r[2] - mu)/3)
    d4 <- d3[d3 > mu]                   # Simulated Data to the Right of "mu"
    d5 <- c(d2, d4)                     # Combined Simulated Data for the unknown distribution

    require(logspline)
    ans <- logspline(x=d5)
    plot(ans)
    return(ans)
}
if (F) {                                # Unit Test 
    calc.dist.from.median.and.range(m=1e10, r=c(3.6e5, 3.1e12))
    my.dist <- calc.dist.from.median.and.range(m=1e7, r=c(7e2, 3e11))
    dlogspline(log10(c(7e2, 1e7, 3e11)), my.dist) # Density
    plogspline(log10(c(7e2, 1e7, 3e11)), my.dist) # Probability
    10^qlogspline(c(0.05, 0.5, 0.95), my.dist) # Quantiles 
    10^rlogspline(10, my.dist) # Random Sample 
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.