표본 복제 및 고유 빈도로 모집단 크기 추정


14

임의의 항목에 대한 정보를 요청할 수있는 웹 서비스가 있습니다. 모든 요청에 ​​대해 각 품목은 반품 기회가 동일합니다.

항목을 계속 요청하고 중복 수와 고유 한 수를 기록 할 수 있습니다. 이 데이터를 사용하여 총 품목 수를 추정하려면 어떻게해야합니까?


2
추정하려는 것은 표본 크기가 아니라 모집단의 크기입니다 (웹 서비스에서 반환 한 고유 항목의 총 수).
GaBorgulya

답변:


8

이것은 본질적으로 쿠폰 수집기 문제의 변형입니다.

이 경우 총 항목 및 샘플 크기 촬영 한 S 로 교체 한 후 확인 한 확률 U 고유 항목이다 P R ( U = U | N , 이야 ) = S 2 ( S , U ) , n은 !nsu 여기서S2((S)을,U는)부여제 2 종 스털링 번호

Pr(U=u|n,s)=S2(s,u)n!(nu)!ns
S2(s,u)

이제 대한 사전 분포 , Bayes 정리를 적용하고 N에 대한 사후 분포를 구하면 됩니다.Pr(N=n)N


항목이 2, 3, 4, ... 번 관찰 된 빈도 를 설명하지 않기 때문에 일부 정보가 손실 된 것으로 보입니다 .
whuber

2
@whuber : 정보를 사용하지 않는 것처럼 보일 수 있지만, 더 자세히 조사하면 고유 항목의 수가 충분한 통계임을 알 수 있습니다. 예를 들어, 모집단 에서 4 개 항목을 교체하여 표본을 추출하면 한 항목 중 3 개와 다른 항목 중 1 개를 얻을 확률은 4입니다.n n이무엇이든 관계없이 두 항목 각각 2 개를 얻는것이므로 세부 빈도를 아는 것은 표본에서 발견 된 두 개의 고유 한 항목이 있다는 것을 아는 것보다 모집단에 대한 더 유용한 정보를 제공하지 않습니다. 43n
Henry

독특한 아이템의 수에 대한 흥미로운 점. 따라서 빈도는 (독립성 및 동등한 확률의) 가정에 대한 점검의 역할을 할 수 있지만 그렇지 않은 경우 불필요합니다.
whuber

5

나는 이미 두 번째 종류의 스털링 수와 베이지안 방법을 기반으로 제안을했습니다.

스털링 숫자가 너무 크거나 베이지안 방법이 너무 어려운 경우 거친 방법을 사용하는 것이 좋습니다

E[U|n,s]=n(1(11n)s)

var[U|n,s]=n(11n)s+n2(11n)(12n)sn2(11n)2s

그리고 수치 방법을 사용하여 역 계산.

s=300U=265n^1180

Un


1
s/nnns/nU

1(11/n)s(1fk(s/n))/fk(s/n)fk(x)=i=0kxi/i!kexk=1n~=ssUUsn^

3

Rcapture R 패키지 로 구현 된 캡처 캡처 방법을 사용할 수 있습니다 .


다음은 R로 코딩 된 예입니다. 웹 서비스에 N = 1000 개의 항목이 있다고 가정합니다. 우리는 n = 300 요청을 할 것입니다. 1에서 k까지의 요소에 번호를 매기는 랜덤 샘플을 생성하십시오. 여기서 k는 우리가 본 다른 아이템의 수입니다.

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 번의 항목이 2 번, 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

N^


편집 : 위의 방법의 신뢰성을 확인하기 위해 위의 코드를 10000 개의 생성 된 샘플에서 실행했습니다. Mh Chao 모델은 매번 수렴되었습니다. 요약은 다음과 같습니다.

> 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

이것은 표준 캡처-복구 실험이 아니기 때문에 캡처-복구 모델의 사용에 대한 일부 정당화가 필요한 것 같습니다. (아마도 300 개의 캡처 이벤트로 볼 수 있지만 closedp에 대한 호출이이를 나타내는 것으로 보이지는 않습니다.)
whuber

@ whuber 예, 300 캡처 이벤트로 예제를 보았습니다. "closedp에 대한 호출이이를 나타내지 않는 것"을 어떻게 의미합니까? 나는 (비판적인) 비판에 감사하며 내 대답이 틀린 것으로 판명되면 기꺼이 수정합니다.
GaBorgulya

이것은 합리적인 접근법으로 보입니다. 그러나 R을 사용하지 않으므로 그 뒤에있는 수학을 이해해야합니다. 위키 페이지는 두 가지 상황을 다룹니다.이 사건에 어떻게 적용합니까?
hoju

1
@Ga I see : 데이터에 대해 300 x 300 행렬을 만들었습니다! 이 코드의 비 효율성은 나를 속였다 :`closedp.0 (Y, dfreq = TRUE, dtype = "nbcap", t = 300) '를 사용하는 것이 더 간단하고 직접적이다. 여기서 Y는 주파수 행렬 {{1,234}, {2,27}, {3,4}} (두 번 계산하여 실제로 표시했습니다!). 요컨대, 수렴 실패는 놀랍습니다. 기본 코드 또는 모델에 문제가 있음을 나타냅니다. ( "M0" 에 대한 문서 를 철저히 검색하면 이 방법에 대한 참조 나 설명이 나타나지 않습니다 ...)
whuber

1
@ whuber 귀하의 제안에 따라 코드를 단순화했습니다 (dfreq = TRUE, dtype = "nbcap", t = 300). 다시 감사합니다.
GaBorgulya
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.