通过重复观察的数量来估计被抽样人群的数量


13

假设我有五千万个独特的事物,我采样了1000万个样本(有替换样本)...我附上的第一张图显示了我对相同的“事物”进行了多少次采样,这与人口大于我的样本。

但是,如果我的人口只有1000万,而我又进行了1000万采样,则如第二幅图所示,我将更频繁地对同一事物进行采样。

我的问题是-从我的观察频率表(条形图中的数据)中,当未知时,是否有可能获得原始人口规模的估计?如果您可以提供如何在R中进行此操作的指针,那就太好了。

替代文字


Answers:


10

加万怎么样

问题是我们不知道观察到多少个零计数。我们必须对此进行估计。对于这种情况,经典的统计过程是期望最大化算法。

一个简单的例子:

假设我们从泊松常数为0.2的未知人口(1,000,000)中提取。

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-这是抽样人口的估计比例。您要处理的典型生物学问题中的主要问题是假设泊松率是一个常数。

很抱歉,这篇冗长的文章-这个Wiki确实不适合R代码。


3
突出显示您的代码,然后单击看起来像二进制数字的按钮...
Shane 2010年

8

这听起来像是“标记和重新捕获”(又称为“捕获重新捕获”)的形式,这是生态学(以及流行病学等其他领域)中众所周知的技术。尽管您的情况并非适用于此处说明的Lincoln-Petersen方法的情况,但不是我的领域而是Wikipedia上关于商标和重新获得的文章看起来很合理。

我认为shabbychef是适合您的情况的正确方法之一,但是使用Poisson分布来近似二项式可能会使事情变得简单一些,并且如果人口数量很大,则应该是一个很好的近似值,如您的示例。我认为获得人口规模的最大似然估计的显式表达式应该非常简单(再次参见例如Wikipedia),尽管我现在没有时间来确定细节。


5

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.