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


25

Я студент з нижчих класів і маю проект для свого класу ймовірностей. В основному я маю набір даних про урагани, які впливали на мою країну протягом ряду років.

У моїй книжці ймовірностей ("Ймовірність та статистика з R") є (не повний) приклад того, як перевірити, чи відповідають дані за розподілом Пуассона, вони починають намагатися довести, що ці 3 критерії виконуються: (З моєї книги, сторінка 120 (критерії) сторінка 122-123 приклад)

1- Кількість результатів у неперекриваються інтервали не залежать. Іншими словами, кількість результатів за проміжок часу (0, t] не залежить від кількості результатів за проміжок часу (t, t + h], h> 0

2- Імовірність двох або більше результатів за досить короткий інтервал практично дорівнює нулю. Іншими словами, за умови h досить мала, ймовірність отримання двох або більше результатів в інтервалі (t, t + h] є мізерною порівняно з ймовірністю отримання одного або нульового результату за той же проміжок часу.

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

Але критерій 3 залишається "як вправа".

A - Чи може хтось сказати мені, чи є більш "простий" спосіб дізнатися, чи відповідає мій набір даних після розподілу Пуассона?

B- Чи може хтось пояснити мені критерій 1 і 3 деяким типом прикладу (якщо це з R, фантастично)?

Спасибі!

Примітка: Вибачте за довге повідомлення. Крім того, я повинен перетворити дані, щоб у мене була таблиця типу:

  number of hurricanes       | 0 | 1 | 2  etc.
  -----------------------------------------
  total years that have      |   |   |
  that number of hurricanes  |   |   |

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

Відповіді:


33

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

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

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

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

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

Ви можете зробити цю перевірку за допомогою тестів на придатність.

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

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


Люди часто роблять ці тести з неправильної причини (наприклад, тому, що вони хочуть сказати: «отже, добре робити якусь іншу статистичну річ із даними, які передбачають, що дані є Пуассоном»). Справжнє питання: "як сильно неправильно це могло піти?" ... і корисність тестів на придатність насправді не допомагає в цьому питанні. Найчастіше відповідь на це питання - це в кращому випадку незалежний (/ майже незалежний) від розміру вибірки - а в деяких випадках той, який має наслідки, які мають тенденцію відходити від розміру вибірки ... в той час як корисність тесту на придатність марна невеликі зразки (коли ризик від порушення припущень часто є найбільшим).

Якщо вам потрібно перевірити наявність Пуассона, існує кілька розумних альтернатив. Можна було б зробити щось подібне до тесту Андерсона-Дарлінга, заснованого на статистиці AD, але з використанням модельованого розподілу під нулем (для врахування проблем-близнюків дискретного розподілу та необхідності оцінювання параметрів).

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

Ви також можете використовувати кореляцію (або, більше схожу на тест Шапіро-Франсіа, можливо, ) в графіку Пуассонесса - наприклад, графік vs (див. Hoaglin, 1980) - як тестова статистика.log ( x k ) + log ( k ! ) kн(1-r2)журнал(хк)+журнал(к!)к

Ось приклад цього розрахунку (та графіку), зробленого в R:

y=rpois(100,5)
n=length(y)
(x=table(y))
y
 0  1  2  3  4  5  6  7  8  9 10 
 1  2  7 15 19 25 14  7  5  1  4 

k=as.numeric(names(x))
plot(k,log(x)+lfactorial(k))

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

Ось статистика, яку я запропонував, може бути використана для тесту на придатність пуассона:

n*(1-cor(k,log(x)+lfactorial(k))^2)
[1] 1.0599

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

Ось приклад того, як зробити графік Пуассонса на вибірці розміром 50 з геометричного розподілу (p = .3):

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

Як бачите, він відображає чіткий «перегин», що вказує на нелінійність


Посилання на сюжет Пуассонесса:

Девід К. Хоаглін (1980),
"Сюжет про Пуассонність",
Американський статистик
Вол. 34, № 3 (серп.,), Стор 146-149

і

Hoaglin, Д. і Дж Тьюки (1985),
"9. Перевірка форми дискретних розподілів",
вивчення таблиць даних, тенденції та форми ,
(Hoaglin, Мостеллер & Таки EdS)
John Wiley & Sons

Друга посилання містить коригування сюжету для невеликих підрахунків; ви, ймовірно, хочете включити його (але я не маю довідки про це).


Приклад виконання тесту на придатність чи-квадрата:

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

1: починаючи з ваших даних (які я візьму за дані, які я випадковим чином генерується в 'y' вище), генерую таблицю підрахунків:

(x=table(y))
y
 0  1  2  3  4  5  6  7  8  9 10 
 1  2  7 15 19 25 14  7  5  1  4 

2: обчислити очікуване значення у кожній комірці, припускаючи, що Пуассон, встановлений ML:

 (expec=dpois(0:10,lambda=mean(y))*length(y))
 [1]  0.7907054  3.8270142  9.2613743 14.9416838 18.0794374 17.5008954 14.1173890  9.7611661
 [9]  5.9055055  3.1758496  1.5371112

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

expec[1]=sum(expec[1:2])
expec[2:8]=expec[3:9]
expec[9]=length(y)-sum(expec[1:8])
expec=expec[1:9]
expec
sum(expec) # now adds to n

4: аналогічно, згортання категорій у спостережуваному:

(obs=table(y))
obs[1]=sum(obs[1:2])
obs[2:8]=obs[3:9]
obs[9]=sum(obs[10:11])
obs=obs[1:9]

(Оi-Еi)2/Еi

print(cbind(obs,expec,PearsonRes=(obs-expec)/sqrt(expec),ContribToChisq=(obs-expec)^2/expec),d=4)
  obs  expec PearsonRes ContribToChisq
0   3  4.618   -0.75282      0.5667335
1   7  9.261   -0.74308      0.5521657
2  15 14.942    0.01509      0.0002276
3  19 18.079    0.21650      0.0468729
4  25 17.501    1.79258      3.2133538
5  14 14.117   -0.03124      0.0009761
6   7  9.761   -0.88377      0.7810581
7   5  5.906   -0.37262      0.1388434
8   5  5.815   -0.33791      0.1141816

Х2=i(Еi-Оi)2/Еi

(chisq = sum((obs-expec)^2/expec))
[1] 5.414413
(df = length(obs)-1-1) # lose an additional df for parameter estimate
[1] 7
(pvalue=pchisq(chisq,df))
[1] 0.3904736

І діагностика, і значення p показують відсутність придатності тут ... чого ми очікували, оскільки отримані нами дані були насправді Пуассоном.


Редагувати: ось посилання на блог Ріка Вікліна, який обговорює змову Пуассонесса, та розповідає про реалізацію в SAS та Matlab

http://blogs.sas.com/content/iml/2012/04/12/the-poissonness-plot-a-goodness-of-fit-diagnostic/


Edit2: Якщо я маю право, видозмінений сюжет Пуассонса з посилання 1985 року буде *:

y=rpois(100,5)
n=length(y)
(x=table(y))
k=as.numeric(names(x))
x=as.vector(x)
x1 = ifelse(x==0,NA,ifelse(x>1,x-.8*x/n-.67,exp(-1)))
plot(k,log(x1)+lfactorial(k))

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

(Для наведеного вище прикладу зовнішність майже не змінюється від першого сюжету Пуассонесса.)


2
Дякую за відповідь! Але мушу сказати, що я не знаю жодної теми, про яку ви говорите. Мені було цікаво, чи стане QQplot для цього корисним. Як ти гадаєш? З альтернатив, які ви даєте, які ви вважаєте, що я повинен використовувати? доброта підходить? Де я можу знайти інформацію та / або тести, про які ви говорите? (з гладкого тесту на прихильність) Також, чи знали ви, чи є у кого код R для блогу? (Я не знаю Matlab або SAS). І, велике спасибі за вашу відповідь!
Шаріф

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

Як би ви створили QQplot для Пуассона, не приймаючи параметр? (Я припускаю, що ви можете працювати з перетворенням Пуассона, якщо параметр не надто малий. Або ви можете використовувати MLE для невідомого параметра, але тоді графік має вигляд "краще", ніж це було б інакше - вам потрібно скорегувати свій судження, коли ти це робиш). Сюжет Пуассонса має на меті діяти як-небудь на зразок QQplot і його слід інтерпретувати якось аналогічно. Якщо ви хочете провести діагностичну оцінку, я б запропонував цей сюжет (бажано, щоб згадані коригування були встановлені, якщо хтось із нас може їх знайти).
Glen_b -Встановіть Моніку

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

ну, можливо, я можу використовувати оцінені лямбда спостережуваних значень для даних для QQplot, але я трохи прочитав і схоже, що QQplots краще для постійних даних (не так добре для дискретних даних). Чи можете ви перекласти код? Це буде дуже по достоїнству! Повідомте мене, якщо у вас є код! (Звичайно, я дам вам кредит за код).
Шаріф

5

Виконайте тест на придатність на чи-квадрат. У разі підрахунку даних, ми можемо використовувати goodfit()включені в пакет vcd. Зауважимо, що якщо значення p більше 0,05, ми не можемо відхилити h0: процес - процес Пуассона. Або ж це не процес Пуассона.

# load the vcd package
library(vcd) ## loading vcd package

# generate two processes for test
set.seed(2014);y=rpois(200,5)
set.seed(2014);y=rnorm(100, 5, 0.3) # goodfit asks for non-negative values
# output the results
gf = goodfit(y,type= "poisson",method= "ML")
plot(gf,main="Count data vs Poisson distribution")
summary(gf)

# to automatically get the pvalue
gf.summary = capture.output(summary(gf))[[5]]
pvalue = unlist(strsplit(gf.summary, split = " "))
pvalue = as.numeric(pvalue[length(pvalue)]); pvalue

# to mannualy compute the pvalue
chisq = sum(  (gf$observed-gf$fitted)^2/gf$fitted )

df = length(gf$observed)-1-1
pvalue = pchisq(chisq,df)
pvalue

3
pchisqП(Хх)П(Хх)pvalue=1-pchisq(chisq,df)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.