Làm cách nào tôi có thể kiểm tra nếu các mẫu đã cho được lấy từ phân phối Poisson?


Câu trả lời:


18

Trước hết, lời khuyên của tôi là bạn phải hạn chế thử phân phối Poisson giống như dữ liệu. Tôi đề nghị bạn trước tiên phải đưa ra một lý thuyết về lý do tại sao phân phối Poisson phải phù hợp với một tập dữ liệu cụ thể hoặc một hiện tượng.

Một khi bạn đã thiết lập điều này, câu hỏi tiếp theo là liệu phân phối có đồng nhất hay không. Điều này có nghĩa là liệu tất cả các phần của dữ liệu được xử lý bởi cùng một phân phối poisson hay có một biến thể trong điều này dựa trên một số khía cạnh như thời gian hoặc không gian. Khi bạn đã thuyết phục được các khía cạnh này, hãy thử ba bài kiểm tra sau:

  1. kiểm tra tỷ lệ khả năng sử dụng một biến vuông chi
  2. sử dụng thống kê chi-vuông có điều kiện; cũng được gọi là kiểm tra phân tán poisson hoặc kiểm tra phương sai
  3. sử dụng thống kê neyman-scott, dựa trên biến đổi ổn định phương sai của biến poisson

tìm kiếm những thứ này và bạn sẽ tìm thấy chúng dễ dàng trên mạng.


3
"Liệu phân phối có đồng nhất hay không ... Một khi bạn đã thuyết phục được các khía cạnh này" Bạn có thể bình luận một chút về cách xác định điều này?
có nghĩa là

13

Đây là một chuỗi các lệnh R có thể hữu ích. Hãy bình luận hoặc chỉnh sửa nếu bạn phát hiện ra bất kỳ sai lầm.

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
Dòng này: freq.ex <- (dpois (0: max (x.poi), lambda = lambda.est) * 200) tạo ra lỗi với một số dữ liệu trong thế giới thực, vì độ dài của freq.ex sẽ không khớp với freq. obs trên dòng này acc <- mean (abs (freq.os-trunc (freq.ex))). Tôi đã điều chỉnh dòng này thành freq.ex <- (dpois (seq (0, max (x.poi)) [seq (0: max (x.poi))% trong% x.poi], lambda = lambda.est) * 200) nhưng điều gì đó vẫn không hoàn toàn đúng vì goodfit tạo ra các cảnh báo.
russellpierce

Sử dụng mã của bạn, tôi nhận được một chỉ số phù hợp với 121. Nhưng nó có tương đối không? Vì vậy, nó phải nằm trong khoảng từ 0 đến 100, phải không?
MERose

6

Tôi cho rằng cách dễ nhất là làm một bài kiểm tra mức độ phù hợp chi bình phương .

Trong thực tế đây là applet java đẹp sẽ làm điều đó!


5

Bạn có thể sử dụng độ phân tán (tỷ lệ phương sai với giá trị trung bình) làm thống kê kiểm tra, vì Poisson sẽ cho độ phân tán là 1. Đây là liên kết đến cách sử dụng nó làm thử nghiệm mô hình.


+1 cảm ơn bạn. thông thường tôi nhận được một số kết quả "đã sử dụng", ví dụ: phân phối bình thường có giá trị p cao hơn giá trị pse, trong đó lambda tương đối nhỏ (do đó, trông chỉ bình thường và poisson hoàn toàn không giống nhau)
David B

6
404 KHÔNG TÌM THẤY!!
Rodrigo

5

Đối với phân phối Poisson, giá trị trung bình bằng phương sai. Nếu giá trị trung bình mẫu của bạn rất khác so với phương sai mẫu của bạn, có lẽ bạn không có dữ liệu Poisson. Các thử nghiệm phân tán cũng được đề cập ở đây là một chính thức của khái niệm đó.

Nếu phương sai của bạn lớn hơn nhiều so với giá trị trung bình của bạn, như thường lệ, bạn có thể muốn thử phân phối nhị thức âm tiếp theo.


5
Và vì vậy, nếu giá trị trung bình giống như phương sai, bạn có thể kết luận rằng dữ liệu là Poisson không? Khó khăn!
PeterR

Thật. Cần thiết nhưng chưa đủ.
John D. Cook

2

Bạn có thể vẽ một hình duy nhất trong đó các tần số được quan sát và dự kiến ​​được vẽ cạnh nhau. Nếu các bản phân phối rất khác nhau và bạn cũng có tỷ lệ trung bình phương sai lớn hơn một, thì một ứng cử viên tốt là nhị thức âm. Đọc phần Phân phối tần số từ The R Book. Nó giải quyết một vấn đề rất giống nhau.


1

Tôi nghĩ rằng điểm chính là một sidmaestro tăng ... thiết lập thử nghiệm hoặc cơ chế tạo dữ liệu có hỗ trợ tiền đề rằng dữ liệu có thể phát sinh từ phân phối Poisson.

Tôi không phải là một fan hâm mộ lớn của thử nghiệm cho các giả định phân phối, vì các thử nghiệm đó thường không hữu ích. Điều có vẻ hữu ích hơn đối với tôi là đưa ra các giả định phân phối hoặc mô hình linh hoạt và hợp lý mạnh mẽ đối với các sai lệch so với mô hình, điển hình cho mục đích suy luận. Theo kinh nghiệm của tôi, không có gì phổ biến khi thấy mean = variance, do đó, thường thì mô hình nhị thức âm có vẻ phù hợp hơn và bao gồm Poisson như một trường hợp đặc biệt.

Một điểm quan trọng khác trong việc thử nghiệm phân phối, nếu đó là điều bạn muốn làm, là đảm bảo rằng không có tầng lớp nào liên quan sẽ làm cho phân phối quan sát của bạn trở thành hỗn hợp của các phân phối khác. Các phân phối riêng cho từng tầng có thể xuất hiện Poisson, nhưng hỗn hợp quan sát được có thể không. Một tình huống tương tự từ hồi quy chỉ cho rằng phân phối có điều kiện của Y | X thường được phân phối và không thực sự là phân phối của chính Y.


Điểm cuối cùng của bạn về hồi quy sẽ chỉ đúng nếu X là ngẫu nhiên. Nếu X cố định thì Y cũng sẽ là bình thường. Không?

Đúng, điều này là đúng, nhưng đối với các vấn đề hồi quy chung (trái ngược với các vấn đề anova hoặc được thiết kế), X thực sự không được sửa chữa mà là các quan sát từ quy trình cơ bản. Tuy nhiên, đối với trường hợp Poisson, điểm vẫn còn, vì hỗn hợp Poissons không nhất thiết phải là Poisson.
Abhijit

0

Một cách khác để kiểm tra điều này là với một âm mưu lượng tử lượng tử. Trong R, có qqplot. Điều này trực tiếp vẽ các giá trị của bạn so với phân phối bình thường với giá trị trung bình và sd tương tự

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.