ฉันรู้ว่าการทดสอบภาวะปกติ แต่ฉันจะทดสอบ "Poisson-ness" ได้อย่างไร?
ฉันมีตัวอย่างจำนวนเต็ม 1000 จำนวนที่ไม่เป็นลบซึ่งฉันสงสัยว่านำมาจากการแจกแจงแบบปัวซองและฉันต้องการทดสอบสิ่งนั้น
ฉันรู้ว่าการทดสอบภาวะปกติ แต่ฉันจะทดสอบ "Poisson-ness" ได้อย่างไร?
ฉันมีตัวอย่างจำนวนเต็ม 1000 จำนวนที่ไม่เป็นลบซึ่งฉันสงสัยว่านำมาจากการแจกแจงแบบปัวซองและฉันต้องการทดสอบสิ่งนั้น
คำตอบ:
ก่อนอื่นคำแนะนำของฉันคือคุณต้องละเว้นการทดลองใช้ปัวซงการกระจายแบบเดียวกับข้อมูล ฉันขอแนะนำให้คุณต้องสร้างทฤษฎีก่อนว่าทำไมการแจกแจงปัวซองจึงเหมาะกับชุดข้อมูลเฉพาะหรือปรากฏการณ์
เมื่อคุณสร้างคำถามนี้ขึ้นมาแล้วคำถามต่อไปคือการกระจายตัวนั้นเป็นเนื้อเดียวกันหรือไม่ ซึ่งหมายความว่าทุกส่วนของข้อมูลได้รับการจัดการโดยการกระจายปัวซองเดียวกันหรือมีการเปลี่ยนแปลงในลักษณะนี้ขึ้นอยู่กับบางแง่มุมเช่นเวลาหรือพื้นที่ เมื่อคุณมั่นใจในประเด็นเหล่านี้แล้วให้ลองทดสอบสามแบบต่อไปนี้:
ค้นหาสิ่งเหล่านี้และคุณจะพบพวกเขาได้อย่างง่ายดายบนอินเทอร์เน็ต
นี่คือลำดับของคำสั่ง 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")
ฉันคิดว่าวิธีที่ง่ายที่สุดคือทำแบบทดสอบความดีแบบไคสแควร์
ในความเป็นจริงนี่คือแอปเพล็ต java ที่ดีที่จะทำเช่นนั้น!
คุณสามารถใช้การกระจายตัว (อัตราส่วนความแปรปรวนต่อค่าเฉลี่ย) เป็นสถิติการทดสอบเนื่องจาก Poisson ควรให้การกระจายตัวที่ 1 นี่คือลิงค์ไปยังวิธีการใช้เป็นการทดสอบแบบจำลอง
สำหรับการแจกแจงปัวซงค่าเฉลี่ยเท่ากับความแปรปรวน หากค่าเฉลี่ยตัวอย่างของคุณแตกต่างจากความแปรปรวนตัวอย่างมากคุณอาจไม่มีข้อมูลปัวซอง การทดสอบการกระจายตัวยังกล่าวถึงในที่นี้คือความเป็นทางการของแนวคิดนั้น
หากความแปรปรวนของคุณมีขนาดใหญ่กว่าค่าเฉลี่ยของคุณเช่นเดียวกับกรณีทั่วไปคุณอาจต้องการลองแจกแจงทวินามลบต่อไป
คุณสามารถวาดรูปเดียวที่ความถี่ที่สังเกตและคาดหวังถูกวาดแบบเคียงข้างกัน หากการแจกแจงนั้นแตกต่างกันมากและคุณมีอัตราส่วนแปรปรวน - ค่าใหญ่กว่าหนึ่งการเลือกที่ดีคือทวินามลบ อ่านส่วนแจกแจงความถี่The R Book
จาก มันเกี่ยวข้องกับปัญหาที่คล้ายกันมาก
ฉันคิดว่าประเด็นหลักคือยกระดับซิดมาสโทร ... การตั้งค่าการทดลองหรือกลไกการสร้างข้อมูลสนับสนุนสมมติฐานที่ว่าข้อมูลอาจเกิดขึ้นจากการกระจายของปัวซอง
ฉันไม่ได้เป็นแฟนตัวยงของการทดสอบสำหรับสมมติฐานการกระจายเนื่องจากการทดสอบเหล่านั้นมักจะไม่เป็นประโยชน์ สิ่งที่ดูเหมือนว่ามีประโยชน์มากกว่าสำหรับฉันคือการตั้งสมมติฐานเกี่ยวกับการกระจายสินค้าหรือตัวแบบที่ยืดหยุ่นและมีความทนทานต่อการเบี่ยงเบนจากตัวแบบโดยทั่วไปเพื่อจุดประสงค์ในการอนุมาน จากประสบการณ์ของฉันมันไม่ธรรมดาที่จะเห็นค่าเฉลี่ย = ความแปรปรวนดังนั้นบ่อยครั้งที่โมเดลทวินามลบนั้นดูเหมาะสมกว่าและรวมถึงปัวซองเป็นกรณีพิเศษด้วย
อีกจุดหนึ่งที่สำคัญสำหรับการทดสอบแบบกระจายถ้านั่นคือสิ่งที่คุณต้องการจะทำก็คือเพื่อให้แน่ใจว่าไม่มีชั้นที่เกี่ยวข้องซึ่งจะทำให้การกระจายแบบสังเกตของคุณเป็นส่วนผสมของการแจกแจงแบบอื่น สตราตัมเฉพาะส่วนบุคคลอาจปรากฏปัวซอง แต่ส่วนผสมที่สังเกตอาจไม่เป็นเช่นนั้น สถานการณ์ที่คล้ายคลึงกันจากการถดถอยเพียงสมมติว่าการแจกแจงแบบมีเงื่อนไขของ Y | X นั้นโดยปกติแล้วจะเป็นการกระจายและไม่ใช่การกระจายตัวของ Y จริงๆ
อีกวิธีหนึ่งในการทดสอบนี้คือพล็อตเชิงควอนตัม ใน R มี qqplot นี่เป็นการแปลงค่าของคุณโดยตรงกับการแจกแจงแบบปกติที่มีค่าเฉลี่ยและ SD ที่คล้ายกัน