Bagaimana saya bisa menguji jika sampel yang diberikan diambil dari distribusi Poisson?


Jawaban:


18

Pertama-tama saran saya adalah Anda harus menahan diri untuk tidak mencoba distribusi Poisson seperti halnya untuk data. Saya sarankan Anda harus terlebih dahulu membuat teori mengapa distribusi Poisson harus sesuai dengan dataset atau fenomena tertentu.

Setelah Anda menetapkan ini, pertanyaan berikutnya adalah apakah distribusinya homogen atau tidak. Ini berarti apakah semua bagian data ditangani oleh distribusi poisson yang sama atau apakah ada variasi dalam hal ini berdasarkan pada beberapa aspek seperti waktu atau ruang. Setelah Anda yakin akan aspek-aspek ini, cobalah tiga tes berikut:

  1. uji rasio kemungkinan menggunakan variabel chi square
  2. penggunaan statistik chi-square bersyarat; juga disebut uji dispersi poisson atau uji varians
  3. penggunaan statistik neyman-scott, yang didasarkan pada variasi penstabilan transformasi variabel poisson

cari ini dan Anda akan menemukannya dengan mudah di internet.


3
"Apakah distribusinya homogen atau tidak ... Setelah Anda yakin akan aspek-aspek ini," Bisakah Anda berkomentar sedikit cara menentukan ini?
Berarti-makna

13

Berikut adalah urutan perintah R yang mungkin bermanfaat. Jangan ragu untuk berkomentar atau mengedit jika Anda menemukan kesalahan.

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
Baris ini: freq.ex <- (dpois (0: max (x.poi), lambda = lambda.est) * 200) menghasilkan kesalahan dengan beberapa data dunia nyata, karena panjang freq.ex tidak akan cocok dengan freq. obs pada baris ini acc <- mean (abs (freq.os-trunc (freq.ex)))). Saya mengadaptasi baris ini ke freq.ex <- (dpois (seq (0, max (x.poi)) [seq (0: max (x.poi))% dalam% x.poi], lambda = lambda.est) * 200) tetapi sesuatu masih kurang tepat karena goodfit menghasilkan peringatan.
russellpierce

Menggunakan kode Anda, saya menerima indeks goodess of fit 121. Tetapi relatif, bukan? Jadi itu harus antara 0 hingga 100, kan?
MERose


5

Anda dapat menggunakan dispersi (rasio varians terhadap rata-rata) sebagai statistik uji, karena Poisson harus memberikan dispersi dari 1. Berikut adalah tautan ke cara menggunakannya sebagai uji model.


+1 terima kasih. sering saya mendapatkan beberapa hasil "weired", misalnya, distribusi normal mendapat nilai p lebih tinggi daripada nilai poisson, di mana lambda relatif kecil (jadi hanya terlihat normal dan poisson tidak sama sekali)
David B

6
404 TIDAK DITEMUKAN!!
Rodrigo

5

Untuk distribusi Poisson, mean sama dengan varians. Jika mean sampel Anda sangat berbeda dari varians sampel Anda, Anda mungkin tidak memiliki data Poisson. Tes dispersi juga disebutkan di sini adalah formalisasi dari gagasan itu.

Jika varians Anda jauh lebih besar dari rata-rata Anda, seperti yang biasa terjadi, Anda mungkin ingin mencoba distribusi binomial negatif berikutnya.


5
Jadi jika rata-rata sama dengan varians, dapatkah Anda menyimpulkan bahwa datanya adalah Poisson? Sulit!
PeterR

Benar. Diperlukan tetapi tidak cukup.
John D. Cook

2

Anda dapat menggambar angka tunggal di mana frekuensi yang diamati dan diharapkan digambar berdampingan. Jika distribusinya sangat berbeda dan Anda juga memiliki rasio varians-rata-rata lebih besar dari satu, maka kandidat yang baik adalah binomial negatif. Baca bagian Distribusi Frekuensi dari The R Book. Ini berhubungan dengan masalah yang sangat mirip.


1

Saya pikir poin utama adalah satu sidmaestro memunculkan ... apakah pengaturan eksperimental atau mekanisme pembuatan data mendukung premis bahwa data mungkin timbul dari distribusi Poisson.

Saya bukan penggemar berat pengujian untuk asumsi distribusi, karena tes tersebut biasanya tidak terlalu berguna. Apa yang tampaknya lebih bermanfaat bagi saya adalah membuat asumsi distribusi atau model yang fleksibel dan cukup kuat untuk penyimpangan dari model, biasanya untuk tujuan inferensi. Dalam pengalaman saya, tidak umum untuk melihat mean = varians, sehingga seringkali model binomial negatif tampaknya lebih tepat, dan memasukkan Poisson sebagai kasus khusus.

Poin lain yang penting dalam pengujian pengujian distribusi, jika itu yang ingin Anda lakukan, adalah untuk memastikan bahwa tidak ada strata yang terlibat yang akan membuat distribusi Anda menjadi campuran dari distribusi lain. Distribusi strata-spesifik individu mungkin muncul Poisson, tetapi campuran yang diamati mungkin tidak. Situasi analog dari regresi hanya mengasumsikan bahwa distribusi kondisional Y | X terdistribusi normal, dan tidak benar-benar distribusi Y itu sendiri.


Poin terakhir Anda tentang regresi hanya akan benar jika X adalah acak. Jika X diperbaiki maka Y juga akan menjadi normal. tidak?

Ya, ini benar, tetapi untuk masalah regresi umum (berlawanan dengan anova atau masalah yang dirancang), X benar-benar tidak diperbaiki tetapi merupakan pengamatan dari proses yang mendasarinya. Namun, untuk kasus Poisson, intinya masih berlaku, karena campuran Poissons belum tentu Poisson.
Abhijit

0

Namun cara lain untuk menguji ini adalah dengan plot kuantil kuantil. Di R, ada qqplot. Ini secara langsung memplot nilai Anda terhadap distribusi normal dengan mean dan sd yang sama

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.