Как я могу проверить, взяты ли данные образцы из распределения Пуассона?

41

Я знаю о тестах нормальности, но как мне проверить на "Пуассон-Несс"?

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

Дэвид Б
источник

Ответы:

18

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

После того, как вы это установили, возникает следующий вопрос: является ли распределение однородным или нет. Это означает, что все части данных обрабатываются одним и тем же распределением Пуассона, или есть изменение в этом, основанное на некотором аспекте, таком как время или пространство. Как только вы убедились в этих аспектах, попробуйте следующие три теста:

  1. тест отношения правдоподобия с использованием переменной хи-квадрат
  2. использование условной статистики хи-квадрат; также называется тестом дисперсии Пуассона или тестом дисперсии
  3. использование статистики Неймана-Скотта, основанной на стабилизирующем дисперсию преобразовании пуассоновской переменной

Ищите их, и вы легко найдете их в сети.

htrahdis
источник
4
«Является ли распределение однородным или нет ... Как только вы убедились в этих аспектах» Не могли бы вы немного прокомментировать, как это определить?
значит к значению
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
6

Я полагаю, что самый простой способ - это просто провести тест добротности по критерию хи-квадрат .

На самом деле вот хороший Java-апплет , который сделает именно это!

csgillespie
источник
5

Вы можете использовать дисперсию (отношение дисперсии к среднему значению) в качестве статистики теста, поскольку коэффициент Пуассона должен давать дисперсию 1. Вот ссылка на то, как использовать ее в качестве модельного теста.

Эрик Су
источник
+1 спасибо. часто я получаю некоторые «потертые» результаты, например, нормальное распределение получает более высокое значение p, чем пуассоновское, где лямбда относительно мала (так что, по внешнему виду, только нормальное и пуассоново совсем не похоже)
Дэвид Б.
6
404 НЕ НАЙДЕНО!!
Родриго
5

Для распределения Пуассона среднее значение равно дисперсии. Если среднее значение выборки сильно отличается от дисперсии выборки, у вас, вероятно, нет данных Пуассона. Упомянутый здесь тест дисперсии также является формализацией этого понятия.

Если ваша дисперсия намного больше среднего значения, как это обычно бывает, вы можете попробовать использовать отрицательное биномиальное распределение.

Джон Д. Кук
источник
6
И поэтому, если среднее значение совпадает с дисперсией, можете ли вы сделать вывод, что данные были Пуассона? Едва!
PeterR
1
Правда. Необходимо, но не достаточно.
Джон Д. Кук
2

Вы можете нарисовать одну фигуру, на которой наблюдаемые и ожидаемые частоты изображены рядом. Если распределения очень разные и у вас также есть среднее значение дисперсии больше единицы, то хорошим кандидатом является отрицательный бином. Прочитайте раздел Распределение частот от The R Book. Это имеет дело с очень похожей проблемой.

Brani
источник
1

Я думаю, что главное - это то, что поднимает Сидмаэстро ... Поддерживает ли экспериментальная установка или механизм генерации данных предпосылку, что данные могут возникнуть из распределения Пуассона.

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

Другой момент, который важен для тестирования дистрибуции, если это то, что вы хотите сделать, - это убедиться, что в нем нет страт, которые бы сделали наблюдаемое распределение смесью других дистрибутивов. Могут появиться отдельные распределения для конкретного слоя Пуассона, но наблюдаемой смеси может и не быть. Аналогичная ситуация с регрессией предполагает только то, что условное распределение Y | X нормально распределено, а не само распределение Y.

Abhijit
источник
Ваш последний пункт о регрессии будет верным, только если X случайный. Если X фиксирован, то Y также будет нормальным. нет?
Да, это правда, но для общих проблем регрессии (в отличие от проблем с новой или заданной), X на самом деле не является фиксированным, но это наблюдения из основного процесса. Однако, для случая Пуассона, точка все еще остается в силе, поскольку смеси Пуассона не обязательно являются пуассоновскими.
Абхиджит
0

Еще один способ проверить это - квантильный квантильный график. В R есть qqplot. Это напрямую отображает ваши значения против нормального распределения с аналогичным средним и SD

Питер Флом - Восстановить Монику
источник