가상 보험 포트폴리오 구현 프로젝트

개인 프로젝트 by 최진경

by 최진경

실제 손해율이 대부분의 기간에서 VaR 수준 이하에 위치하여, 모델이 안정적인 손해 구조를 가정하고 있음을 확인할 수 있다.


친구 추천으로 처음 시작해본 브런치인데...개인적인 취향으로 티스토리보다는 다루기 쉬운거 같아서

시작했습니다.

본 프로젝트는 보험 상품의 손해율이 어떻게 결정되는지를 이해하고, 이를 기반으로 리스크 지표를 산출하는 과정을 구현하였다.


프로젝트 주제 : 가상 보험 포트폴리오 생성 및 Frequency - Severity 기반 손해율 추정 및 검증


프로젝트 개요

- 몬테카를로 방법론과 Moving Window 방법론을 이용해서 리스크 지표를 추정한다.

- 보험사에서 규정하는 위험 지표는 보험 상품이 가진 손해율이다.

- 보험 포트폴리오 구조에서 가장 기본적인 틀인 Frequency - Severity 구조를 이용하여 60개월(=5년)동안의 시계열 데이터를 생성한다.

- 손해율 Loss의 분포를 생성하고, 유의수준하에서 발생하는 최대 손해율 VaR과 최대 손해율의 평균 TVaR을 추정한다.


프로젝트 내용

1. Frequency - Severity 구조의 모델 가정은 다음과 같다.

- Frequency 와 Severity

Frequency equation.png

우선 보험금 청구 횟수 Frequency는 포아송 분포를 따르는 것으로 가정했다. 람다 변수의 정의는 Exposure x q 로 해두었는데, 위험 노출 수 x 위험이 발생할 확률 로 가정했다. 해당 실험에서 q = 0.04로 고정했다. Exposure는 보험사가 부담하는 위험의 규모를 나타내며, 손해율 변동의 가장 중요한 결정요인 중 하나이다.


- Total Loss 와 Premium

Loss and Premium equation.png

총 손실 금액은 시간(=t)이 지날수록 발생하는 보험 청구금액이 포아송 분포를 따르는 발생횟수 Nt에 따라 산정된다. Premium은 간단하게 말하면, 보험사가 보험상품을 팔아서 얻게되는 수익이다. 파이 변수는 보험상품의 가격이다. 여기서 Exposure가 위험 노출 수 라고 명시되어 있지만, 간단하게 설명하면 그냥 보험상품에 가입한 가입자 수 이다. 가입한 사람들 모두 잠재적 위험성을 가지고 있기 때문에 위험 노출수 라고 지정한거 같다.

- Loss Ratio

Loss ratio equation.png

LR(=Loss Ratio)는 다음과 같이 Total Loss / Premium 으로 구한다.


2. VaR 과 TVaR

VaR equation.png

손실 L에 대해 확률 α 수준에서의 최대 손실을 의미한다. 해당 실험에서 α 는 0.99 수준으로 실험했다.

TVaR equation.png

TVaR은 최대 손실인 VaR을 초과하는 극단 수준의 초과 손실율의 평균을 의미한다.


3. Monte Carlo Method와 Moving Window

- 1번에서 정의한 모델 구조로 시뮬레이션 시계열 데이터를 생성한다. 기간은 t = 1, ... , 60 으로 60개월(=5년)이다.

- MC 방법으로 생성되는 샘플의 갯수는 10000개 이다. 적절한 밀도를 가진 분포를 생성하기에 적합하다.

- window size는 12이다. 12개월 (=1년)동안의 데이터를 사용하여 미래 예측 분포를 생성하고, VaR과 TVaR을 계산한다.


4. 결과

Actual LR vs VaR,TVaR.png

보험 포트폴리오의 가상 모델로 생성된 Actual LR 과 MC Method 와 Moving Window로 생성한 미래예측 분포에서 각각 계산된 VaR을 plot으로 그려보았다. 실제 손해율이 대부분의 기간에서 VaR 수준 이하에 위치하여, 모델이 안정적인 손해 구조를 가정하고 있음을 확인할 수 있다.


5. 사후검증

통계학에서 가장 중요한 부분은 추정된 결과값이 얼마나 정확하느냐를 확인하는 것이다.

시뮬레이션 데이터로 검증한거라 사실 객관성은 많이 떨어지지만, 이번 프로젝트의 목표는 보험 포트폴리오의 구조를 파악하는 것이니 결과의 객관성은 크게 중요하지않다.


- Hit Variable과 LR test

연구하면서 가장 많이 배웠던 사후검증 방법론이다. Hit variable은 위반횟수가 얼마나 발생하는지 count하는 변수를 의미한다. LR test는 실제로 발생한 위반횟수가 기대 위반횟수랑 일치하는지를 검증하는 검증 방법이다. LR test에서 일치하지 않는다는 것은 실험을 통해 나온 결과값이 기존의 가정을 지키지 못했다는 뜻이다.

각 검증 방법의 수식은 다음과 같다.

Hit variavle equation.png

indicator function을 이용하여 비교대상이 되는 Actual LR의 실제 손실율을 초과하는 VaR 값이 있는지 count하는 변수이다.


LR test equation.png

LR test는 수식이 복잡한 편인데, 그냥 간단하게 말하면 기대 위반율 과 실제 위반율이 일치하는지를 확인하는 사후 검정방법이다. 현재 실험에서는 유의수준 α 가 0.99 이므로, 기대 위반율은 1%이다. 따라서, 실제 위반율이 1% 언저리로 나온다면 해당 모델이 적절히 추정을 하고 있다고 해석한다.


- 결과 table

result table.png

결과표를 해석해보면, 총 60개월 동안의 Actual LR에서 우리가 추정한 예측분포의 갯수는 48개이다. 따라서 추정된 총 VaR/TVaR은 48개이고, 그 중 실제로 Actual LR을 초과한 VaR/TVaR은 1개이다. 실제 위반률 p_hat은 1/48 = 0.0208 (2.08%)이므로, 기대 초과율 1%을 넘어간다.

하지만, 표본이 작아 기대 위반횟수(0.48)와 실제 위반횟수(1) 간 차이가 통계적으로 유의하지 않기 때문에 Kupiec 검정에서 귀무가설을 기각하지 못한 것이다.

보험사의 특성상 하나의 상품에도 최소 20년 이상의 장기 플랜을 가지고 위험을 관리 하기 때문에 통상적인 참고 표본이 작다는 점이 결과로 나타난 것 같다.


다음으로, 위반한 Hit Variable을 강조한 plot이다.

Exceedance highlighted.png

6. 결론

- 가상의 보험 포트폴리오를 생성하여 Frequency–Severity 기반 손해율 구조를 구현하고, Monte Carlo 시뮬레이션을 통해 VaR 및 TVaR를 산출하였다. 이를 통해 보험 리스크가 보험금 발생 빈도와 손실 규모의 결합 구조로 결정됨을 확인하였다.

- Backtesting 결과 기대 위반률과 실제 위반률 간 유의한 차이가 나타나지 않았으며, 이는 생성된 포트폴리오가 정상성 환경에서 안정적인 위험 구조를 가지기 때문으로 해석된다.

- 다만 본 모형은 단일 분포와 동질적 위험군을 가정하고 있어, 실제 보험 환경에서 발생하는 위험군 이질성, 대형사고, 의료비 상승 등 구조적 위험요인을 충분히 반영하지 못한다는 한계를 확인하였다.

- 따라서 손해보험의 위험률 산정에서는 과거 청구이력, 가입자 특성, 외부 환경 변수 등을 반영한 위험군 세분화와 동적 모형이 필요함을 이해할 수 있었다.


7. 소감

일단 석사 시절 내내 했었던 VaR,ES 추정, 몬테카를로 방법론, Moving Window 들을 활용할 수 있는 프로젝트여서 재미있게 진행했던 것 같다. 기존에 알고있었던 구조가 아니라 보험사 기준으로 다시 모델을 설계하는 부분에서 알고있는 지식을 조금 더 확장할 수 있었던 것 같다. 본 실험을 통해 보험 리스크는 단순한 손실 분포가 아니라, 위험 노출 규모(Frequency)와 손실 규모(Severity)의 결합 구조에 의해 결정됨을 확인하게 되어 좋았다.