Zadanie 2 - renta terminowa

W tym zadaniu zbudujesz prosty model aktuarialny służący do wyznaczenia bieżącej wartości aktuarialnej renty terminowej.

Renta terminowa to umowa, w której ubezpieczyciel zobowiązuje się wypłacać cykliczne świadczenia przez określony czas – pod warunkiem, że ubezpieczony żyje.

W modelu zakładamy:

1 Utworzenie modelu

Twoim pierwszym krokiem jest utworzenie nowego modelu.

W tym celu:

  1. Otwórz powłokę Python.

  2. Skorzystaj z poniższej komendy, aby utworzyć model o nazwie zadanie_2:

2 Dane wejściowe

W tej części przygotujesz dane wejściowe: dane ubezpieczeniowe (tzw. model point set) oraz założenie dotyczące stopy procentowej.

2.1 Dane ubezpieczeniowe (model point set)

W pliku input.py przygotuj dane dotyczące ubezpieczonych. Skorzystaj z klasy ModelPointSet i przygotuj dane w formie tabeli (DataFrame). Nazwij swój model point set policy.

Dodaj dane dla dwóch osób:

Uzupełnij kod:

Zadanie: Uzupełnij brakujące wartości zgodnie z danymi ubezpieczonych.

2.2 Założenia rynkowe

Załóż, że miesięczna stopa procentowa wynosi 0.3%. Zapisz ją jako zmienną skalarną interest_rate. Umieść ją w tym samym pliku input.py.

Zadanie: Uzupełnij wartość stopy procentowej jako ułamek dziesiętny.

3. Model

W tej części utworzysz zmienne potrzebne do obliczenia bieżącej wartości aktuarialnej renty.

3.1 Import danych

Na początek zaimportuj dane wejściowe z pliku input.py. Otwórz plik model.py.

Znajdziesz tam przykładową zmienną, możesz ją zakomentować lub usunąć, aby mieć czysty plik.

Zaimportuj dane:

Uzupełnij poniższy kod:

Zadanie: Wstaw odpowiednie nazwy zmiennych, które przygotowałeś/aś w input.py.

3.2 Prawdopodobieństwo przeżycia t miesięcy

Utwórz zmienną survival_rate(t), która będzie wyznaczać prawdopodobieństwo przeżycia t miesięcy od początku trwania renty.

Skorzystaj ze wzoru rekurencyjnego:

survival_rate(t)=tpx=t1px(1qx+t1)

Załóż, że:

Uzupełnij funkcję poniżej:

Zadanie:

3.3. Oczekiwane świadczenie

Zdefiniuj zmiennąexpected_benefit(t) – oczekiwaną wartość świadczenia wypłacanego w miesiącu t.

Skorzystaj ze wzoru:

expected_benefit(t)=Btpx

Pamiętaj, że:

Uzupełnij poniższy kod:

Zadanie:

3.4 Bieżąca wartość aktuarialna

Oblicz bieżącą wartość aktuarialną renty, czyli sumę zdyskontowanych oczekiwanych świadczeń.

Zastosuj podejście rekurencyjne:

actuarial_present_value(t)=expected_benefit(t)+actuarial_present_value(t+1)v

gdzie:

Uzupełnij kod poniżej:

Zadanie:

4. Struktura wyników

4.1. Wyniki indywidualne

Aby uzyskać wyniki osobno dla każdego ubezpieczonego, w pliku settings.py ustaw: