반복 관찰 횟수로 샘플링되는 모집단의 크기 추정


13

5 천만 개의 고유 한 개체군이 있고 1,000 만 개의 샘플을 교체한다고 가정 해 보겠습니다. 첫 번째 그래프는 내가 첨부 한 동일한 "사물"을 몇 번이나 샘플링했는지 보여줍니다. 인구가 샘플보다 큽니다.

그러나 제 인구가 천만 개에 불과하고 천만 개 샘플을 채취하면 두 번째 그래프에서 볼 수 있듯이 동일한 횟수를 반복하여 샘플링하는 경우가 더 많습니다.

내 질문은-내 관측 빈도 표 (막 대형 차트의 데이터)에서 알 수없는 경우 원래 인구 크기의 추정치를 얻을 수 있습니까? R 에서이 문제를 해결하는 방법에 대한 포인터를 제공 할 수 있다면 좋을 것입니다.

대체 텍스트


흥미로운 응용 프로그램 은 space.stackexchange.com/questions/41547/… 을 참조하십시오
kjetil b halvorsen

답변:


10

Garvan은 어때?

문제는 우리는 얼마나 많은 0 카운트가 관찰되는지 모른다는 것입니다. 우리는 이것을 추정해야합니다. 이와 같은 상황에 대한 일반적인 통계 절차는 Expectation-Maximisation 알고리즘입니다.

간단한 예 :

포아송 상수가 0.2 인 알 수없는 인구 (100,000 명)에서 추출한다고 가정합니다.

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

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

그러나 우리는 0 카운트를 관찰하지 않습니다. 대신 우리는 이것을 관찰합니다.

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
코드를 강조 표시하고 이진수처럼 보이는 버튼을 클릭하십시오.
Shane

8

이것은 생태학 (및 역학과 같은 다른 분야)에서 잘 알려진 기술인 '마크 앤 리 캡처'(일명 '캡쳐 리 캡처')와 비슷합니다. 귀하의 상황이 링컨-피터슨 방법이 적용되지 않은 상황이기는 하지만 , 제 영역은 아니지만 마크 및 회수에 관한 Wikipedia 기사 가 합리적으로 보입니다.

shabbychef가 귀하의 상황에 맞는 올바른 길 중 하나라고 생각하지만, Poisson 분포를 사용하여 이항을 근사화하면 아마도 일을 조금 더 간단하게 만들 수 있으며 귀하의 예에서와 같이 모집단 크기가 매우 클 경우 매우 좋은 근사치가되어야합니다. 나는 인구 규모의 최대 가능성 추정치에 대한 명시 적 표현을 얻는 것이 꽤 간단해야한다고 생각합니다 (예 : Wikipedia 다시 참조 ). 지금 세부 사항을 해결할 시간이 없습니다.


5

이항 분포를 통해 추정 할 수 있습니다. 이 경우 에서, 여분으로 끌어 (객체와 미지의) 오브젝트의 확률이 한 번 연신 그려지는 것은 . 이것을 코인 플립으로 생각하십시오. 번의 시행 에서 정확히 머리 (즉, 복제물) 의 확률 은 입니다. 관찰 된 예상 횟수 (플롯)를 얻으려면 이 값에 을 곱하십시오 . 큰 경우 데이터에서 제거하기에는 약간 털이 있지만 작은k k P = 1nkk mmnP=1kmmn(nm)Pm(1P)nmnnkm 항이 과 같다고 가정하면 아마 잘 할 수 있습니다 .(1P)1

편집 : 숫자 문제를 해결하는 한 가지 가능한 방법은 카운트의 비율을 보는 것입니다. 즉, 이 헤드 를 그릴 확률 인 경우 은 . 그런 다음 데이터에서 중복 횟수의 비율을 확인하여 여러 추정치를 얻은 다음 중간 또는 평균을 취하십시오.PmmPm/Pm+1(k1)m+1nmk

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.