Як перевірити, чи відповідають мої дані експоненціальним розподілом?


22

Як я можу перевірити, чи є мої дані, наприклад, зарплата від постійного експоненціального розподілу в R?

Ось гістограма мого зразка:

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

. Будь-яка допомога буде дуже вдячна!


1
ваша змінна дискретна чи безперервна? Експоненційний розподіл визначається як безперервний .
Цікаво

безперервний. Цікаво, чи є тест на R, щоб перевірити це
судження

1
Ласкаво просимо. Шукайте функцію fitdistrв R. Він коригує функції щільності ймовірності (pdfs) на основі методу оцінки максимальної вірогідності (MLE). Також пошукайте на цьому веб-сайті терміни як pdf, fitdistr, mle та подібні запитання. Майте на увазі, що подібні питання майже вимагають відтворюваного прикладу, щоб зібрати хороші відповіді. Крім того, це допомагає, якщо питання стосується не лише програмування (що може призвести до його затримки як поза теми).
Андре Сілва

8
Експоненціальний розподіл буде побудовано у вигляді прямої лінії проти графічна позиція), де положення графіку (ранг - a ) / ( n - 2 a + 1 ) , ранг 1 за найменшим значенням, n - розмір вибірки, і популярний вибір для включають 1 / 2 . Це дає неформальний тест, який може бути таким же або кориснішим, ніж будь-який офіційний тест. -ln(1--а)/(н-2а+1)1на1/2
Нік Кокс

@ Беркан розробив у своїй посаді ідею кількісного сюжету.
Нік Кокс

Відповіді:


29

Я б це зробив, попередньо оцінивши єдиний параметр розподілу rateза допомогою fitdistr. Це не скаже вам, чи відповідає розподіл чи ні, тож ви повинні використовувати тест на придатність . Для цього можна використовувати ks.test:

require(vcd)
require(MASS)

# data generation
ex <- rexp(10000, rate = 1.85) # generate some exponential distribution
control <- abs(rnorm(10000)) # generate some other distribution

# estimate the parameters
fit1 <- fitdistr(ex, "exponential") 
fit2 <- fitdistr(control, "exponential")

# goodness of fit test
ks.test(ex, "pexp", fit1$estimate) # p-value > 0.05 -> distribution not refused
ks.test(control, "pexp", fit2$estimate) #  significant p-value -> distribution refused

# plot a graph
hist(ex, freq = FALSE, breaks = 100, xlim = c(0, quantile(ex, 0.99)))
curve(dexp(x, rate = fit1$estimate), from = 0, col = "red", add = TRUE)

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

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

Для отримання додаткової інформації дотримуйтесь відмінне керівництво по Ricci Установчий Розподілу з R .


2
+1. Ks.test є найкращим тестом для перевірки якості придатності в таких ситуаціях? Я думаю, ти також відповів на одне моє питання .
Андре Сілва

4
Лише вгору, ви повинні бути обережними, якщо ви оцінюєте параметри з самих даних. У такому випадку тест, подібний до Андерсона, любий, може бути найкращим, оскільки він стійкий до подібних ситуацій.
JPC

Про тест KS на експоненційність, коли параметр швидкості оцінюється з даних: див . Наївне запитання про тест Колмогорова Смірнова .
Scortchi

8

Хоча я зазвичай рекомендую перевірити експоненційність за допомогою діагностичних діаграм (таких як графіки QQ), я обговорю тести, оскільки люди часто хочуть їх:

Як пропонує Томаш, тест Колмогорова-Смірнова - ні підходить для тестування експоненційності з не визначеним параметром.

Однак якщо ви коригуєте таблиці для оцінки параметрів, ви отримуєте тест Лілліфорса на експоненціальне розподіл.

Лілліфорс, Х. (1969), "Про тест Колмогорова – Смірнова на експоненціальний розподіл із середнім невідомим", Журнал Американської статистичної асоціації , Vol. 64. С. 387–389.

Використання цього тесту обговорюється в практичній непараметричній статистиці Коновера .

Однак у " Добрості придатних методик" D'Agostino & Stephens вони обговорюють аналогічну модифікацію тесту Андерсона-Дарлінга (дещо косо, якщо я пам'ятаю правильно, але я думаю, що вся необхідна інформація про те, як наблизитись до експоненціальної справи, є що можна знайти в книзі), і це майже певно, що має більше сили проти цікавих альтернатив.

н(1-r2)r

Нарешті, можна скористатися плавним підходом до тестування , як у книзі Rayner & Best ( Smooth Tests of Goodness of Fit , 1990 - хоча я вважаю, що є більш пізній, з Thas і " в R " додано до назви). Експоненційний випадок також висвітлений у:

JCW Rayner and DJ Best (1990), "Гладкі тести на добро придатності: огляд", Міжнародний статистичний огляд , Vol. 58, № 1 (квітня, 1990), стор 9-17

Косма Шалізі також обговорює гладкі тести в одній главі своїх лекційних записок про випереджальний аналіз даних для студентів , або дивіться Ch15 своєї книги « Розширений аналіз даних з елементарної точки зору». .

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

н(1-r2)


5

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

У R відсутня спеціальна функція qq-сюжету для експоненціального розподілу конкретно (принаймні серед базових функцій). Однак ви можете скористатися цим:

qqexp <-  function(y, line=FALSE, ...) { 
    y <- y[!is.na(y)]
    n <- length(y)
    x <- qexp(c(1:n)/(n+1))
    m <- mean(y)
    if (any(range(y)<0)) stop("Data contains negative values")
    ylim <- c(0,max(y))
    qqplot(x, y, xlab="Exponential plotting position",ylim=ylim,ylab="Ordered sample", ...)
    if (line) abline(0,m,lty=2)
    invisible()
  }

При інтерпретації результатів: Якщо два розподілених розподілу схожі, точки на графіку qq приблизно будуть лежати на лінії y = x. Якщо розподіли лінійно пов'язані, точки на графіку qq приблизно будуть лежати на прямій, але не обов'язково на прямій y = x.


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