LabHub
배우기 러닝패스 코스

保険ドメイン深化

IBNRを数え出再保険を照合する

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

데이터에 없는 사고를 세는 방법을 익히고, 준비금이 어떤 조각으로 이루어지는지, 재보험 출재가 어긋났을 때 어느 순서로 좁혀 들어가는지를 손으로 해 볼 수 있게 됩니다.

왜 중요한가

결산 시점의 사고 데이터는 언제나 덜 자란 상태입니다. 6월 30일에 6월 사고를 세면 적게 나오는데, 그것은 사고가 적었던 것이 아니라 아직 접수될 시간이 없었던 것입니다. 이 차이를 모르고 "이번 달 손해율이 좋아졌다" 고 보고하면 다음 달에 원래 자리로 돌아오고, 그때는 왜 갑자기 나빠졌냐는 회의가 열립니다.

아직 오지 않은 건의 양은 추측이 아니라 계산입니다. 다 자란 사고월에서 접수 지연 분포를 뽑아 두면, 덜 자란 달이 지금 몇 퍼센트까지 왔는지 알 수 있습니다. 이 실습의 데이터는 결산 기준일이 2026-06-30 이고 접수 지연은 최대 5개월이라, 5개월을 다 채운 사고월은 2026-01 까지 입니다.

준비금은 두 조각입니다.

미지급 발생손해   발생손해액 − 기지급액. 이미 접수된 건의 남은 몫
IBNR 추정액       미접수 추정 건수 × 건당 평균 발생손해액

두 번째 조각의 평균을 잡을 때 1억을 넘는 대형 건은 빼야 합니다. 대형 건은 따로 개별 추산하는 것이 통상적인 처리이고, 평균에 섞으면 준비금이 억 단위로 부풀려집니다.

마지막으로 재보험입니다. 이 데이터에는 모든 손해에 QS30 비례재보험이 걸려 있어 발생손해액의 30%가 출재됩니다. 그런데 출재 내역이 두 곳에 있습니다 — 회계 원장(월 단위 계상)과 재보험 관리 시스템(건 단위 등록). 원장이 원수 데이터에서 계산된 값이고, 재보험 시스템은 사람이 등록합니다. 그래서 갈라집니다.

단계

  1. 오른쪽 예시의 생성기를 /root/ins/make_reserve.py 로 저장하고 python3 make_reserve.py 로 실행하세요. 손해 1,296건, 출재 1,293건, 원장 12개월이 만들어집니다.
  2. 사고월 × 접수 지연 개월수 표를 /root/ins/triangle.csvaccident_ym,lag0,lag1,lag2,lag3,lag4,lag5,reported 로 적으세요. 사고월 12줄 전부가 들어가야 합니다.
  3. 5개월을 다 채운 사고월(2025-07 ~ 2026-01)만 모아 /root/ins/lagrate.csvlag,claims,cum_claims,cum_permille 여섯 줄을 적으세요. cum_permille 은 누적을 전체로 나눈 천분율 정수입니다.
  4. 아직 다 자라지 않은 사고월의 최종 건수를 추정해 /root/ins/ibnr.csvaccident_ym,reported,max_lag,cum_claims,ultimate,ibnr 로 적으세요.
  5. /root/ins/reserve.txtoutstanding=, ibnr_claims=, avg_incurred_excl_large=, ibnr_amount=, reserve_total=, avg_incurred_incl_large=, reserve_if_incl_large=, overstated_by= 여덟 줄을 적으세요.
  6. 원장과 재보험 시스템을 사고월 단위로 대사해 차이가 0이 아닌 달을 /root/ins/cession_diff.csvaccident_ym,ledger,system,diff 로 적고, 건 단위로 좁혀 /root/ins/cession_claims.csvclaim_no,accident_ym,incurred,expected,recorded,diff 로 적으세요.
  7. /root/ins/netloss.txtgross_incurred=, ceded=, net_retained=, big_claim=, big_net=, net_excl_big=, big_share_pct= 일곱 줄을 적으세요. 출재액은 원장 값을 쓰세요.
  8. /root/ins/reserve_report.md## 확인한 것, ## 준비금, ## 출재 대사, ## 대형 사고, ## 권고 다섯 절로 보고서를 쓰세요. 권고는 세 항목 이상이어야 합니다.

참고

결산 데이터 만들기

오른쪽 예시의 생성기를 /root/ins/make_reserve.py 로 저장하고 python3 make_reserve.py 로 실행하세요. 손해 1,296건, 출재 1,293건, 원장 12개월이 만들어집니다.

실습 안내에 있는 생성기를 /root/ins/make_reserve.py 로 저장하고 python3 로 실행하세요. 결산 기준일 이후에 접수될 사고는 애초에 데이터에 들어가지 않습니다.

지연 삼각형 만들기

사고월 × 접수 지연 개월수 표를 /root/ins/triangle.csvaccident_ym,lag0,lag1,lag2,lag3,lag4,lag5,reported 로 적으세요. 사고월 12줄 전부가 들어가야 합니다.

접수 지연 개월수는 report_ym 과 accident_ym 을 각각 연×12+월 로 바꿔 빼면 나옵니다. 오른쪽 아래가 비는 것이 정상입니다.

다 자란 달에서 보고율 뽑기

5개월을 다 채운 사고월(2025-07 ~ 2026-01)만 모아 /root/ins/lagrate.csvlag,claims,cum_claims,cum_permille 여섯 줄을 적으세요. cum_permille 은 누적을 전체로 나눈 천분율 정수입니다.

결산 기준일이 2026-06 이고 최대 지연이 5개월이므로, 5개월을 다 채운 사고월은 2026-01 까지입니다. 아직 자라는 중인 달을 섞으면 비율이 앞쪽으로 쏠립니다.

아직 접수되지 않은 건 추정하기

아직 다 자라지 않은 사고월의 최종 건수를 추정해 /root/ins/ibnr.csvaccident_ym,reported,max_lag,cum_claims,ultimate,ibnr 로 적으세요.

아직 자라는 중인 달은 관측 가능한 최대 지연이 5보다 작습니다. 그 지연까지의 누적 건수로 나누고 전체 건수를 곱하면 최종 추정치가 나옵니다. 곱을 먼저 하고 나눗셈은 마지막에 한 번만 하세요.

준비금을 두 조각으로 계산하기

/root/ins/reserve.txtoutstanding=, ibnr_claims=, avg_incurred_excl_large=, ibnr_amount=, reserve_total=, avg_incurred_incl_large=, reserve_if_incl_large=, overstated_by= 여덟 줄을 적으세요.

IBNR 추정액은 미접수 건수에 건당 평균 발생손해액을 곱한 것입니다. 평균을 낼 때 1억을 넘는 대형 건을 넣은 것과 뺀 것을 각각 계산해 나란히 두세요.

원장과 재보험 시스템 대사하기

원장과 재보험 시스템을 사고월 단위로 대사해 차이가 0이 아닌 달을 /root/ins/cession_diff.csvaccident_ym,ledger,system,diff 로 적고, 건 단위로 좁혀 /root/ins/cession_claims.csvclaim_no,accident_ym,incurred,expected,recorded,diff 로 적으세요.

먼저 사고월 단위로 좁혀 차이가 0이 아닌 달만 남기고, 그 다음 건 단위로 열어 확정하세요. 월 합계 차이와 건 합계 차이가 같아야 다 찾은 것입니다.

대형 사고 한 건의 재무 영향 재기

/root/ins/netloss.txtgross_incurred=, ceded=, net_retained=, big_claim=, big_net=, net_excl_big=, big_share_pct= 일곱 줄을 적으세요. 출재액은 원장 값을 쓰세요.

출재액은 대사가 끝나지 않은 재보험 시스템 값이 아니라 회계 원장 값을 쓰세요. 순보유는 총 발생손해에서 출재액을 뺀 것입니다.

결산 보고서 쓰기

/root/ins/reserve_report.md## 확인한 것, ## 준비금, ## 출재 대사, ## 대형 사고, ## 권고 다섯 절로 보고서를 쓰세요. 권고는 세 항목 이상이어야 합니다.

다섯 절이 필요하고 권고는 세 항목 이상이어야 합니다. 준비금과 출재는 서로 다른 팀이 보므로 누구의 일인지 구분되어야 그 문서가 움직입니다.