Marcin Bronicki

Marcin Bronicki kierownik, własna

Temat: Trójkąty szkodowy w R

Czy ktoś ma doświadczenie z obliczaniem trójkątów szkodowych w R i wie z jakiego/jakich pakietów skorzystać?
Wszelkie uwagi i opinie, wskazów mile widziane.
Miron Kołodziejczyk

Miron Kołodziejczyk Aktuariusz, Liberty
Direct

Temat: Trójkąty szkodowy w R

gotowe procedury są w


library(ChainLadder)


samemu można się bawić np.


?glm
Marcin Bronicki

Marcin Bronicki kierownik, własna

Temat: Trójkąty szkodowy w R

Dzięki, załadowałem, posprawdzałem to co jest na http://bm2.genes.nig.ac.jp/RGM2/R_current/library/Chai..., wszystko działa.
Mam tylko jedno pytanie.

Przykłady tam podane np. MCLpaid są to już gotowe trójkąty. Ja mam dane typu

rok___opoznienie ilosc
2010__0__________100
2010__1__________110
2010__2__________90
2009__0__________70
2009__1__________120
2009__2__________100

W przykładzie nie znalazłem załadowania tych danych do trójkąta.

Jak zrobić jak mam po prostu data.frame w tej postaci?
Miron Kołodziejczyk

Miron Kołodziejczyk Aktuariusz, Liberty
Direct

Temat: Trójkąty szkodowy w R

Np.


# długi format
t.long <- data.frame(origin=rep(2010:2009, each=3), dev.year=rep(0:2,2), amount=c(100,110,90,70,120,100))
# krótki format
t.short <- with(t.long, tapply(amount, list(origin, dev.year), sum))
# krótki format - skumulowany
t.short.cum <- t(apply(t.short, 1, cumsum))

konto usunięte

Temat: Trójkąty szkodowy w R

Jeśli danych jest więcej to zamiast wpisywać ręcznie można je zaimportować np. z Excela. Nie instalując dodatkowych programów najlepiej skopiować do schowka, a następnie wczytać ze schowka.
Miron Kołodziejczyk

Miron Kołodziejczyk Aktuariusz, Liberty
Direct

Temat: Trójkąty szkodowy w R

Bardziej elegancko, szczególnie przy danych niezagregowanych (np. pojedynczych szkodach) użyć

library(RODBC)

Od razu możemy sobie dane zagregować w locie przy użyciu silnika bazy. Co by nie mówić o zaletach R, operacje na danych lepiej zostawić bazom danych.
Marcin Bronicki

Marcin Bronicki kierownik, własna

Temat: Trójkąty szkodowy w R

Testuję sobie ChainLadder i MASS na danych rzeczywistych i mam pytanie, jeśli coś źle rozumiem to proszę o wyjaśnienie.
Zrobiłem
>B <- BootChainLadder(RAA, R=1999, process.distr="gamma")
fit <- fitdistr(B$IBNR.Totals, "lognormal")
Dostałem błąd że na liście IBNR.Totals mam wartości ujemne i nie można tego policzyć. IBRN wyszedł mi rzeczywiście w jednym przypadku ujemny, a więc jak dobrze rozumiem mam więcej szkód/przypadków niż należy się spodziewać.
Poszukałem w helpie (?BootChainLadder) i tam jest coś takiego:

fit <- fitdistr(B$IBNR.Totals[B$IBNR.Totals>0], "lognormal")
Twórca biblioteki spodziewał się że mogą wystąpić wartości ujemne i należy je usunąć z modelu. Dlatego mam pytanie czy takie usuwanie jest odpowiednie, a nie na przykład podanie średniej czy innej liczby. Takie radosne odrzucanie niewygodnych danych dla mnie jest trochę dziwne, dlatego proszę o głos specjalistów. Mogę jedynie dodać że zastosowanie tego warunku rzeczywiście pozwoliło mi na dokończenie wyliczeń i zaprezentowanie wykresu.
Miron Kołodziejczyk

Miron Kołodziejczyk Aktuariusz, Liberty
Direct

Temat: Trójkąty szkodowy w R

Zmienna o rozkładzie lognormalnym przyjmuje wartości dodatnie, w szczególności gęstość nie jest określona dla wartości niedodatnich. Dlatego nie działa fitdistr.

Aby być w zgodzie ze sztuką należałoby dołożyć np. trzeci parametr - przesunięcie.

konto usunięte

Temat: Trójkąty szkodowy w R

Myślę, że do każdego przypadku należy podejść zdroworozsądkowo. Jeśli na 1999 losowań wypadnie jedna liczba ujemna i w dodatku w okolicy 0 to spokojnie można ją pominąć albo ręcznie podmienić na dodatnią bliską zeru. Jeśli tego jest więcej to najprawdopodobniej wylosowane punkty nie odpowiadają rozkładowi log-normalnemu, więc należy szukać innego. Co więcej jeśli za często wychodzi ujemna liczba dla łącznej wartości rezerw to duża szansa, że przyjęty model nie pasuje do trójkąta i trzeba poszukać jakiegoś innego.
Krzysztof Szopa

Krzysztof Szopa aktuariusz, TU
Allianz Polska S.A.

Temat: Trójkąty szkodowy w R

Albo że case reserves są zdrowo przeszacowane :)

konto usunięte

Temat: Trójkąty szkodowy w R

Jeśli mamy trójkąt szkód zgłoszonych to dolny trójkąt będzie naszym IBNR. Jeśli wychodzą minusy to albo trzeba zmienić model albo przyjąć konserwatywnie IBNR=0 albo przejść na trójkąt szkód wypłaconych.

Jeśli mamy trójkąt szkód wypłaconych i rezerwy wychodzą ujemne to znaczy, że będą kłopoty z nadzorem ;)

Następna dyskusja:

Trójkąty szkodowy w R




Wyślij zaproszenie do