포획-재포획법 시뮬레이션

#para/project #state/todo
#biology #math #statistics
최종수정: 2025-11-13T23:55:46+09:00

서론

생명과학 시간에 생태계 단원에서 개체군의 수를 추정하는 방법의 하나인 포획-재포획 법을 배우게 되었다.
이는 개체수가 큰 개체군에서 모든 개체를 일일이 새는 것이 불가능할 때, 비교적 적은 세기와 계산으로 전체적 개체군의 수를 추정하는 방법이다.

먼저 링컨-피터슨 지수, 또는 표식 및 재포획법으로도 알려진 포획-재포획법(이하 “방법”)의 원리는 다음과 같다.

개체수가 \(N\)일때, \(n_1\) 마리의 개체를 포획, 표시를 남긴다.
이때, 이 표시는 개체군에 영향을 줘서는 안 된다.

일정 시간이 지나 개체들이 완전히 섞였을 때, \(n_2\) 마리의 개체를 포획한다.
이때, 표시가 되어있는 개체수를 \(m\)이라고 한다.
이때, 개체의 비율이 전과 동일하다고 가정, 다음 식이 성립한다.

\[ \frac{n_1}{N} = \frac{m}{n_2} \]

따라서 개체수를 다음 식으로 구할 수 있다.

\[ N = \frac{n_1 \times n_2}{m} \]

본론

방법을 배운 뒤, 실재로 얼마나 실용적인지 궁금해졌고, 간단한 모델링과 시뮬레이션 프로그램 작성으로 시뮬레이팅할 수 있다고 판단하였다.
그리하여 방법을 검증하기 위해 시뮬레이션을 설계하였다.

시뮬레이션의 작동 방식은 다음과 같다.

  1. 시작과 동시에 N개의 개체를 소환한다. 이때 각 개체는 일정한 구역 내에 무작위 위치, 무작위 방향을 갖는다.
  2. 구역 내에 미리 지정된 국소 구역에 포함되는 개체는 표식이 세겨진다.
  3. 일정 시간(모든 개체가 균일하게 섞일 정도) 동안 모든 개체는 자신의 방향으로 향한다. 이때 벽에 부딪혔을 시, 벽에 반하는 무작위 방향으로 다시 향한다.
  4. 일정 시간이 지난 뒤, 처음과 동일한 국소 구역에 포함되는 개체의 수와, 그 개체들 중 표식이 새겨진 개체의 수를 센다.
  5. \(n = \frac{n_1 \times n_2}{m}\) 주어진 식에 따라 추정 개체수를 계산한다.

아래는 시뮬레이션의 스크린샷이다.

위 시뮬레이션은 아래 링크에서 직접 사용해볼 수 있다.
https://ywbird.github.io/cap-recap-method/

위 시뮬레이션을 다양한 개체수를 정하여 실행하였고 결과는 아래와 같았다.

200개체 150회 실행
400개체 250회 실행
600개체 200회 실행

결과

개체군의 크기가 클수록 추정 정확도가 커지는 것을 알 수 있었다. +-20% 정확도는 200개체에서 48.7%, 400개체에서 69.7%, 마지막 600개체에서 75.7%로 지속적 상승세를 보였다. 모든 개체군 크기에서 중앙값의 오차율이 평균값의 오차율보다 현저히 낮았다. \(n_1/n\)\(m/n_2\)는 양의 상관관계를 나타냈다.

개선점

이번 시뮬레이션에서 개체들은 직선 운동과 벽에서 튕겨 나가는 간단한 움직임만을 구현했다.
이에 따라 개체들이 벽과 가장자리에 좀 더 머무르고, 속도가 모두 일정하므로 주기적으로 표식 위치에 등장할 수 있었다. 이러한 시뮬레이션의 현실성 부족으로 오차와 현실과의 괴리가 발생할 수 있었다고 생각한다. 나는 이것이 일부 극단적 값들과 오차에 원인이라고 생각한다. 시뮬레이션을 수정하여 개체의 움직임에 다른 방식을 사용하였을 때 어떠한 결과가 나올지 확인해 볼 것이다.

결론

개체군의 크기가 클수록 추정 정확도가 향상된다.
중앙값에서의 오차율이 평균값에서 오차율보다 높은 현상은 일부 극단적 오차 값들로 인해 발생한 오차로 추정된다.
포획 비율과 재포획 비율의 일관적인 값 및 1에 가까운 비율은 포획-재포획법이 실용성이 있음을 보여주었다.