มีบริการบนเว็บที่ฉันสามารถขอข้อมูลเกี่ยวกับรายการแบบสุ่ม สำหรับทุกคำขอแต่ละรายการมีโอกาสเท่ากับการส่งคืน
ฉันสามารถขอรายการและบันทึกจำนวนรายการซ้ำและไม่ซ้ำกันได้ ฉันจะใช้ข้อมูลนี้เพื่อประมาณจำนวนรายการทั้งหมดได้อย่างไร
มีบริการบนเว็บที่ฉันสามารถขอข้อมูลเกี่ยวกับรายการแบบสุ่ม สำหรับทุกคำขอแต่ละรายการมีโอกาสเท่ากับการส่งคืน
ฉันสามารถขอรายการและบันทึกจำนวนรายการซ้ำและไม่ซ้ำกันได้ ฉันจะใช้ข้อมูลนี้เพื่อประมาณจำนวนรายการทั้งหมดได้อย่างไร
คำตอบ:
นี่คือตัวแปรของปัญหาของตัวสะสมคูปอง
หากมีรายการในทั้งหมดและคุณได้ถ่ายขนาดตัวอย่างด้วยการเปลี่ยนแล้วน่าจะเป็นของที่มีการระบุรายการที่ไม่ซ้ำเป็น โดยที่ให้ตัวเลข Stirling ของชนิดที่สองs u P r ( U = u | n , s ) = S 2 ( s , u ) n ! S2(s,u)
ตอนนี้สิ่งที่คุณต้องมีการกระจายก่อนสำหรับใช้ Bayes ทฤษฎีบทและได้รับการกระจายหลังสำหรับNN
ฉันได้ให้คำแนะนำตามหมายเลขสเตอร์ลิงของวิธีที่สองและวิธีเบย์
สำหรับผู้ที่พบจำนวนสเตอร์ลิงที่ใหญ่เกินไปหรือวิธีเบย์ยากเกินไปอาจใช้วิธีที่หยาบกว่านี้
และคำนวณย้อนกลับโดยใช้วิธีตัวเลข
ตัวอย่างเช่นการใช้ตัวอย่างของ GaBorgulya ด้วย และสังเกตได้นี่อาจทำให้เราประมาณสำหรับประชากร
ถ้านั่นคือประชากรก็จะทำให้เรามีความแปรปรวนของประมาณ 25 และค่าเบี่ยงเบนมาตรฐานสองค่าจากด้านใดด้านหนึ่งของ 265 จะเท่ากับ 255 และ 275 (อย่างที่ผมบอกนี่เป็นวิธีคร่าวๆ) 255 จะให้ค่าประมาณสำหรับประมาณ 895 ในขณะที่ 275 จะได้ประมาณ 1692 ตัวอย่างของ 1,000 นั้นสะดวกสบายภายในช่วงเวลานี้
คุณสามารถใช้วิธีการจับยึดยังนำมาใช้เป็นแพคเกจ Rcapture R
N = 1000; population = 1:N # create a population of the integers from 1 to 1000
n = 300 # number of requests
set.seed(20110406)
observation = as.numeric(factor(sample(population, size=n,
replace=TRUE))) # a random sample from the population, renumbered
table(observation) # a table useful to see, not discussed
k = length(unique(observation)) # number of unique items seen
(t = table(table(observation)))
ผลของการจำลองคือ
1 2 3
234 27 4
ดังนั้นใน 300 คำขอมี 4 รายการที่เห็น 3 ครั้งมี 27 รายการที่เห็นสองครั้งและ 234 รายการเห็นเพียงครั้งเดียว
ตอนนี้ประมาณ N จากตัวอย่างนี้:
require(Rcapture)
X = data.frame(t)
X[,1]=as.numeric(X[,1])
desc=descriptive(X, dfreq=TRUE, dtype="nbcap", t=300)
desc # useful to see, not discussed
plot(desc) # useful to see, not discussed
cp=closedp.0(X, dfreq=TRUE, dtype="nbcap", t=300, trace=TRUE)
cp
ผลลัพธ์:
Number of captured units: 265
Abundance estimations and model fits:
abundance stderr deviance df AIC
M0** 265.0 0.0 2.297787e+39 298 2.297787e+39
Mh Chao 1262.7 232.5 7.840000e-01 9 5.984840e+02
Mh Poisson2** 265.0 0.0 2.977883e+38 297 2.977883e+38
Mh Darroch** 553.9 37.1 7.299900e+01 297 9.469900e+01
Mh Gamma3.5** 5644623606.6 375581044.0 5.821861e+05 297 5.822078e+05
** : The M0 model did not converge
** : The Mh Poisson2 model did not converge
** : The Mh Darroch model did not converge
** : The Mh Gamma3.5 model did not converge
Note: 9 eta parameters has been set to zero in the Mh Chao model
ดังนั้นมีเพียงแบบจำลอง Mh Chao ที่แปรสภาพมันประมาณ = 1262.7
> round(quantile(Nhat, c(0, 0.025, 0.25, 0.50, 0.75, 0.975, 1)), 1)
0% 2.5% 25% 50% 75% 97.5% 100%
657.2 794.6 941.1 1034.0 1144.8 1445.2 2162.0
> mean(Nhat)
[1] 1055.855
> sd(Nhat)
[1] 166.8352