ประเมินขนาดของประชากรที่ถูกสุ่มตัวอย่างด้วยจำนวนการสังเกตซ้ำ


13

สมมติว่าฉันมีประชากร 50 ล้านสิ่งที่ไม่เหมือนใครและฉันนำตัวอย่าง 10 ล้านชิ้น (มาทดแทน) ... กราฟแรกที่ฉันแนบมาแสดงให้เห็นว่าฉันได้ทดลองสิ่ง "เดียวกัน" กี่ครั้งซึ่งค่อนข้างหายาก ประชากรใหญ่กว่าตัวอย่างของฉัน

อย่างไรก็ตามหากประชากรของฉันมีเพียง 10 ล้านสิ่งและฉันใช้ตัวอย่าง 10 ล้านตัวเนื่องจากกราฟที่สองแสดงให้เห็นว่าฉันมักจะลองทำซ้ำอีกครั้ง

คำถามของฉันคือ - จากตารางความถี่การสังเกตของฉัน (ข้อมูลในแผนภูมิแท่ง) เป็นไปได้หรือไม่ที่จะได้ประมาณขนาดประชากรดั้งเดิมเมื่อไม่ทราบ? และมันจะดีมากถ้าคุณสามารถหาตัวชี้ว่าจะทำยังไงในอาร์

ข้อความแสดงแทน


ดูspace.stackexchange.com/questions/41547/ สำหรับแอปพลิเคชั่นที่น่าสนใจ
kjetil b halvorsen

คำตอบ:


10

การ์แวนเป็นอย่างไร

ปัญหาคือเราไม่ทราบว่ามีการนับจำนวนศูนย์เป็นจำนวนเท่าใด เราต้องประมาณค่านี้ ขั้นตอนทางสถิติแบบคลาสสิกสำหรับสถานการณ์เช่นนี้คืออัลกอริทึมการคาดหวังสูงสุด

ตัวอย่างง่ายๆ:

สมมติว่าเรามาจากประชากรที่ไม่รู้จัก (จาก 1,000,000) ด้วยค่าคงตัวปัวซอง 0.2

counts <- rpois(1000000, 0.2)
table(counts)

     0      1      2      3      4      5
818501 164042  16281   1111     62      3

แต่เราไม่สังเกตจำนวนศูนย์ แต่เราสังเกตสิ่งนี้:

table <- c("0"=0, table(counts)[2:6])

table

     0      1      2      3      4      5
     0 164042  16281   1111     62      3

สังเกตความถี่ที่เป็นไปได้

k <- c("0"=0, "1"=1, "2"=2, "3"=3, "4"=4, "5"=5)

ค่าเริ่มต้นของการแจกแจงปัวซง - ลองเดาดู (เรารู้ว่ามันคือ 0.2 ตรงนี้)

lambda <- 1 
  1. ความคาดหวัง - การกระจายปัวซอง

    P_k <- lambda^k*exp(-lambda)/factorial(k)
    P_k
                  0           1           2           3           4           5
    0.367879441 0.367879441 0.183939721 0.061313240 0.015328310 0.003065662  
    n0 <- sum(table[2:6])/(1 - P_k[1]) - sum(table[2:6])
    
    
    n0
           0
    105628.2     
    table[1] <-  105628.2
  2. สูงสุด

    lambda_MLE <- (1/sum(table))*(sum(table*k))        
    lambda_MLE        
    [1] 0.697252        
    lambda <- lambda_MLE
  3. การทำซ้ำครั้งที่สอง

    P_k <- lambda^k*exp(-lambda)/factorial(k)        
    n0 <- sum(table[2:6])/(1 - P_k[1]) - sum(table[2:6])       
    table[1] <-  n0 
    lambda <- (1/sum(table))*(sum(table*k))
    
    
    
     population lambda_MLE
    
    [1,] 361517.1 0.5537774

ทวนซ้ำจนกระทั่งบรรจบกัน:

for (i in 1:200) {  
P_k <- lambda^k*exp(-lambda)/factorial(k)  
n0 <- sum(table[2:6])/(1 - P_k[1]) - sum(table[2:6])
table[1] <-  n0
lambda <- (1/sum(table))*(sum(table*k))
}
cbind( population = sum(table), lambda_MLE)
     population lambda_MLE
[1,]    1003774  0.1994473

ค่าประมาณประชากรของเราคือ 1003774 และอัตราปัวซองของเราประมาณไว้ที่ 0.1994473 - นี่คือสัดส่วนโดยประมาณของประชากรตัวอย่าง ปัญหาหลักที่คุณจะมีในปัญหาทางชีววิทยาทั่วไปที่คุณกำลังเผชิญอยู่คือสมมติว่าอัตราปัวซองนั้นคงที่

ขออภัยสำหรับการโพสต์ที่ยืดยาว - วิกินี้ไม่เหมาะสำหรับรหัส R


3
ไฮไลต์รหัสของคุณและคลิกที่ปุ่มที่ดูเหมือนว่าเลขฐานสอง ...
เชน

8

ดูเหมือนว่ารูปแบบของ 'มาร์คและการรำลึก' หรือที่เรียกว่า 'การดักจับ - รำลึก' ซึ่งเป็นเทคนิคที่รู้จักกันดีในด้านนิเวศวิทยา (และสาขาอื่น ๆ เช่นระบาดวิทยา) ไม่ใช่พื้นที่ของฉัน แต่บทความ Wikipedia เกี่ยวกับการทำเครื่องหมายและการเอากลับคืนดูสมเหตุสมผล

ฉันคิดว่า shabbychef เป็นเส้นทางที่ถูกต้องสำหรับสถานการณ์ของคุณ แต่การใช้การแจกแจงแบบปัวซงเพื่อประมาณค่าทวินามอาจทำให้สิ่งต่าง ๆ เรียบง่ายขึ้นและควรเป็นการประมาณที่ดีมากถ้าขนาดประชากรมีขนาดใหญ่มากเช่นในตัวอย่างของคุณ ฉันคิดว่าการแสดงออกอย่างชัดเจนสำหรับการประมาณความน่าจะเป็นสูงสุดของขนาดประชากรนั้นควรจะตรงไปตรงมา (ดูเช่นWikipedia อีกครั้ง ) แม้ว่าฉันจะไม่มีเวลาทำรายละเอียดในตอนนี้


5

nkkP=1kmmn(nm)Pm(1P)nmnnkm(1P)1

PmmPm/Pm+1(k1)m+1nmk

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.