Обчисліть довірчий інтервал для середнього значення бета-розподілу


12

Розглянемо бета-розподіл для заданого набору оцінок у [0,1]. Після підрахунку середнього:

мк=αα+β

Чи є спосіб забезпечити інтервал довіри навколо цього значення?


1
домініка - ви визначили середню кількість населення . Інтервал довіри базувався б на деякій оцінці цього середнього. Яку вибіркову статистику ви використовуєте?
Glen_b -Встановіть Моніку

Glen_b - Привіт, я використовую набір нормованих оцінок (продукту) в інтервалі [0,1]. Що я шукаю - це оцінка інтервалу навколо середнього (для заданого рівня довіри), наприклад: середній + - 0,02
домініка

2
домініка: Дозвольте спробувати ще раз. Ви не знаєте, що означає населення . Якщо ви хочете, щоб кошторис знаходився посередині інтервалу ( оцінка півширини , як у вашому коментарі), вам знадобиться якийсь оцінювач для цієї кількості в середньому порядку, щоб розмістити інтервал навколо нього. Що ви використовуєте для цього? Максимальна ймовірність? Метод моментів? щось ще? ±
Glen_b -Встановіть Моніку

Glen_b - дякую за терпіння. Я буду використовувати MLE
домініка

2
домініка; у цьому випадку для великих можна було б використовувати асимптотичні властивості оцінювачів максимальної ймовірності; Оцінка ML буде асимптотично нормально розподілена із середнім та стандартною помилкою, яку можна обчислити з інформації про Фішера . У невеликих зразках іноді можна обчислити розподіл MLE (хоча у випадку бета-версії я, мабуть, згадую, що це важко); Альтернативою є моделювання розподілу за розміром вибірки, щоб зрозуміти його поведінку. μ μнмкмк
Glen_b -Встановіть Моніку

Відповіді:


22

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

Інтервали вірогідності профілю

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

# Sample size
n = 10

# Parameters of the beta distribution
alpha = 10
beta = 1.4

# Simulate some data
set.seed(1)
x = rbeta(n, alpha, beta)

# Note that the distribution is not symmetrical
curve(dbeta(x,alpha,beta))

Функція щільності ймовірності для бета-розподілу.

Реальна / теоретична середня величина

> alpha/(alpha+beta)
0.877193

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

# Negative log likelihood for the beta distribution
nloglikbeta = function(mu, sig) {
  alpha = mu^2*(1-mu)/sig^2-mu
  beta = alpha*(1/mu-1)
  -sum(dbeta(x, alpha, beta, log=TRUE))
}

Щоб знайти максимальну оцінку ймовірності, ми можемо використовувати mle()функцію в stats4бібліотеці:

library(stats4)
est = mle(nloglikbeta, start=list(mu=mean(x), sig=sd(x)))

Просто ігноруйте попередження поки що. Вони спричинені алгоритмами оптимізації, які намагаються визначити недійсні значення параметрів, даючи від’ємні значення для α та / або β . (Щоб уникнути попередження, ви можете додати lowerаргумент та змінити використовувану оптимізацію method.)

Тепер у нас є обидва оцінки та довірчі інтервали для наших двох параметрів:

> est
Call:
mle(minuslogl = nloglikbeta, start = list(mu = mean(x), sig = sd(x)))

Coefficients:
        mu        sig 
0.87304148 0.07129112

> confint(est)
Profiling...
         2.5 %    97.5 %
mu  0.81336555 0.9120350
sig 0.04679421 0.1276783

Зауважте, що, як очікувалося, інтервали довіри не симетричні:

par(mfrow=c(1,2))
plot(profile(est)) # Profile likelihood plot

Діаграма ймовірності профілю для розподілу бета-версії.

(Друга зовнішня пурпурова лінія показує довірчий інтервал 95%.)

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

В якості альтернативи mle()ви можете використовувати fitdistr()функцію з MASSпакету. Це також обчислює максимальну оцінку ймовірності і має ту перевагу, що вам потрібно лише подати щільність, а не негативну ймовірність журналу, але не дає вам профілів вірогідності довіри, лише асимптотичні (симетричні) довірчі інтервали.

Кращим варіантом є mle2()(та пов'язані з ним функції) з bbmleпакету, який дещо гнучкіший та потужніший за mle()та дає трохи приємніші сюжети.

Довірчі інтервали завантаження

Ще один варіант - використовувати завантажувальний інструмент. Це надзвичайно просто у використанні в R, і вам навіть не потрібно поставляти функцію щільності:

> library(simpleboot)
> x.boot = one.boot(x, mean, R=10^4)
> hist(x.boot)                # Looks good
> boot.ci(x.boot, type="bca") # Confidence interval
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 10000 bootstrap replicates

CALL : 
boot.ci(boot.out = x.boot, type = "bca")

Intervals : 
Level       BCa          
95%   ( 0.8246,  0.9132 )  
Calculations and Intervals on Original Scale

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

Асимптотичні довірчі інтервали

Для середніх довірчих інтервалів не забуватимемо старі добрі асимптотичні довірчі інтервали на основі теореми про центральну межу (та t- розподілу). Поки ми маємо або великий розмір вибірки (так застосовується CLT, і середнє значення розподілу вибірки є приблизно нормальним), або великі значення як α, так і β (так що сам розподіл бета є приблизно нормальним), він працює добре. Тут у нас немає жодного, але інтервал довіри все ще не надто поганий:

> t.test(x)$conf.int
[1] 0.8190565 0.9268349

Для трохи більших значень n (і не надто екстремальних значень двох параметрів) асимптотичний довірчий інтервал працює надзвичайно добре.


Дякую Карлу. Швидке запитання: як ви визначили альфа та бета-версію? Я використовував дисперсію і вибірку означає, щоб отримати альфа і бета, але я думаю, що я, можливо, переплутав середню вибірку з середньою сукупністю, тому я не впевнений, що я пішов про це правильним шляхом ... див. Коментар Glen_b вище .
домініка

Щоб визначити α і β як функції середнього та стандартного відхилень, я просто перевернув функції середнього та стандартного відхилень як функції α та β (але я впевнений, що ви також можете їх переглянути в мережі).
Карл Ове Хаффхаммер

+1 Карл. У мене є подібне запитання, враховуючи , середнє значення та дисперсію бета-розподілу, чи є спосіб оцінити довірчий інтервал середнього значення. Наприклад, у звичайному дистрибутиві ми могли б легко це зробити, але я не знаю, як ви можете зробити це бета-розподіл. Я порушив питання , але воно було позначене як дублікат. α,β
синоптик

0

Перевірте бета-регресію. Хороший вступ про те, як це зробити за допомогою R, можна знайти тут:

http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf

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

http://en.wikipedia.org/wiki/Bootstrapping_%28statistics%29

Також приємне відео тут:

http://www.youtube.com/watch?v=ZCXg64l9R_4

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