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


41

Я знаю тести на нормальність, але як зробити тест на "Пуассон-Несс"?

У мене є зразок ~ 1000 невід’ємних цілих чисел, які, я підозрюю, взяті з розподілу Пуассона, і я хотів би це перевірити.

Відповіді:


18

Перш за все, моя порада - ви повинні утриматися від випробування розподілу Пуассона так само, як і до даних. Я пропоную вам спершу скласти теорію, чому розподіл Пуассона повинен відповідати конкретному набору даних або явищу.

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

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

шукайте їх, і ви їх легко знайдете в мережі.


3
"Чи є розподіл однорідним чи ні ... Після того, як ви переконалися в цих аспектах", чи можете ви прокоментувати трохи, як це визначити?
значуще значення

13

Ось послідовність R команд, яка може бути корисною. Ви можете коментувати чи редагувати, якщо помітили якісь помилки.

set.seed(1)
x.poi<-rpois(n=200,lambda=2.5) # a vector of random variables from the Poisson distr.

hist(x.poi,main="Poisson distribution")

lambda.est <- mean(x.poi) ## estimate of parameter lambda
(tab.os<-table(x.poi)) ## table with empirical frequencies


freq.os<-vector()
for(i in 1: length(tab.os)) freq.os[i]<-tab.os[[i]]  ## vector of emprical frequencies

freq.ex<-(dpois(0:max(x.poi),lambda=lambda.est)*200) ## vector of fitted (expected) frequencies

acc <- mean(abs(freq.os-trunc(freq.ex))) ## absolute goodness of fit index acc
acc/mean(freq.os)*100 ## relative (percent) goodness of fit index

h <- hist(x.poi ,breaks=length(tab.os))
xhist <- c(min(h$breaks),h$breaks)
yhist <- c(0,h$density,0)
xfit <- min(x.poi):max(x.poi)
yfit <- dpois(xfit,lambda=lambda.est)
plot(xhist,yhist,type="s",ylim=c(0,max(yhist,yfit)), main="Poison density and histogram")
lines(xfit,yfit, col="red")

#Perform the chi-square goodness of fit test 
#In case of count data we can use goodfit() included in vcd package
library(vcd) ## loading vcd package
gf <- goodfit(x.poi,type= "poisson",method= "MinChisq")
summary(gf)
plot(gf,main="Count data vs Poisson distribution")

3
Цей рядок: freq.ex <- (dpois (0: max (x.poi), lambda = lambda.est) * *) * 200) створює помилки з деякими реальними даними, оскільки довжина freq.ex не відповідає freq. obs на цьому рядку acc <- mean (abs (freq.os-trunc (freq.ex))). Я адаптував цей рядок до freq.ex <- (dpois (seq (0, max (x.poi))) [seq (0: max (x.poi))% у% x.poi], lambda = lambda.est) * 200), але щось все-таки не зовсім правильне, оскільки goodfit створює попередження.
russellpierce

Використовуючи ваш код, я отримую показник придатності 121. Але це відносно, чи не так? Так що це має бути від 0 до 100, правда?
MERose


5

Ви можете використовувати дисперсію (відношення дисперсії до середнього) в якості тестової статистики, оскільки Пуассон повинен дати дисперсію 1. Ось посилання на те, як використовувати її як тест моделі.


+1 дякую. часто я отримую якісь "набридлі" результати, наприклад, нормальний розподіл отримує більш високе р-значення, ніж пуассонове, де лямбда відносно невеликий (тому за зовнішнім виглядом лише нормальний і пуассон зовсім не подібні)
Девід Б

6
404 НЕ ЗНАЙДЕНО!!
Родріго

5

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

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


5
Отже, якщо середнє значення збігається з дисперсією, ви могли б зробити висновок, що дані були Пуассоном? Навряд чи!
PeterR

Правда. Необхідна, але недостатня.
Джон Д. Кук

2

Можна намалювати єдину фігуру, на якій спостережувані та очікувані частоти малюються поряд. Якщо розподіли дуже різні, а також у вас коефіцієнт дисперсії середній більший, ніж один, то хорошим кандидатом є негативний двочлен. Прочитайте розділ Частотні розподіли від The R Book. У ньому йдеться про дуже подібну проблему.


1

Я думаю, що головне в тому, що sidmaestro піднімає ... чи підтримують експериментальні установки чи механізм генерації даних передумови, що дані можуть виникати в результаті розподілу Пуассона.

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

Ще один момент, який важливий для тестування на дистрибуцію, якщо ви хочете це зробити, - це переконатися, що немає задіяних верств, які зробили б ваш спостережуваний розподіл сумішшю інших дистрибутивів. Окремі стратові розподіли можуть виявлятися Пуассоном, але спостережуваної суміші може не бути. Аналогічна ситуація з регресії передбачає лише те, що умовний розподіл Y | X нормально розподілений, а насправді не сам розподіл Y.


Ваша остання думка про регресію буде істинною, лише якщо X випадкова. Якщо X є фіксованим, Y також буде нормальним. немає?

Так, це правда, але для загальних проблем з регресією (на відміну від anova або розроблених проблем) X насправді не фіксовано, але є спостереженнями з основного процесу. Однак у випадку з Пуассоном справа все-таки справедлива, оскільки суміші Пуассона не обов'язково є Пуассоном.
Abhijit

0

Ще один спосіб перевірити це - це квантильний квантильний сюжет. У R є qqplot. Це безпосередньо відображає ваші значення проти нормального розподілу з аналогічним середнім значенням та sd

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