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.

htrahdis
sumber
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")
George Dontas
sumber
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
6

Saya kira cara termudah adalah dengan melakukan uji Good- of-fit chi-square .

Sebenarnya inilah applet java yang bagus yang akan melakukan hal itu!

csgillespie
sumber
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.

Eric Suh
sumber
+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.

John D. Cook
sumber
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.

Brani
sumber
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.

Abhijit
sumber
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

Peter Flom - Pasang kembali Monica
sumber