Salah satu prinsip penentuan premi yang standar digunakan adalah prinsip nilai ekspektasi: \[ \pi(S)=(1+\alpha)E[S],\] dengan \(\alpha>0\) menyatakan loading, dan \(S\) adalah kerugian tahunan yang acak.
Misalkan \((N_t)\) adalah proses menghitung yang menyatakan banyaknya banyaknya klaim yang terjadi selama periode waktu \([0,t]\). Misalkan juga \((Y_i)\) menyatakan besarnya klaim ke-\(i\). Maka total kerugian selama periode waktu \([0,t]\) adalah
\[S_t=\sum_{i=1}^{N_t}Y_i,\]
dengan \(S_t=0\) jika \(N_t=0\).
Untuk kasus \(\alpha=0\), kita memiliki premi murni.
Untuk langkah awal kita tentukan dahulu \(E[S]\), dengan \(S=S_1\) annual total charge. Jika \(N_1\) dan \(Y_1, Y_2, ...,Y_n, ..\) saling bebas; dan jika \(Y_i\) saling bebas dan memiliki distribusi yang identik, maka \[\pi=E[S]=E[N]E[Y].\] Premi murni tahunan di atas merupakan perkalian antara frekuensi klaim tahunan \(E[N]\) dan rataan biaya individual klaim tahunan.
Disini kita memperhitungkan faktor heterogen yang mungkin terdapat dalam perhitungan premi. Mengapa kita memperhitungkan keheterogenan pemegang polis? Hal ini dapatdiilustrasikan seperti dalam contoh berikut:
Contoh: misalkan terdapat dua perusahaan asuransi A dan B. Perusahaan A mengeluarkan premi \(E[S]=15\) tanpa memperhitungkan kondisi pemegang polis. Sedangkan perusahaan B mengeluarkan premi \(E[S|Z=0]=10\) dan \(E[S|Z=1]=20\), dengan \[Z=\begin{cases} 0, \text{ low risk}\\ 1, \text{ high risk}\end{cases}\] Konsumen yang memiliki kondisi low risk akan memilih premi yang dikeluarkan perusahaan B, sedangkan yang high risk akan memilih perusahaan A. Hal ini tentunya akan mempengaruhi solvency perusahaan A.
Deberikan data kontrak asuransi kendaraan bermotor dari suatu perusahaan di Perancis dengan variabel-variabel berikut:
## [1] "PolicyID" "ClaimNb" "Exposure" "Power" "CarAge"
## [6] "DriverAge" "Brand" "Gas" "Region" "Density"
dengan
Data yang kita miliki mengandung data dengan jenis kategori seperti:
dan data kuantitatif seperti:
Deskripsi statistik untuk data yang kita miliki adalah sebagai beikut:
## PolicyID ClaimNb Exposure Power
## Min. : 1 Min. :0.00000 Min. :0.002732 f :95718
## 1st Qu.:103293 1st Qu.:0.00000 1st Qu.:0.200000 g :91198
## Median :206585 Median :0.00000 Median :0.540000 e :77022
## Mean :206585 Mean :0.03916 Mean :0.561088 d :68014
## 3rd Qu.:309877 3rd Qu.:0.00000 3rd Qu.:1.000000 h :26698
## Max. :413169 Max. :4.00000 Max. :1.990000 j :18038
## (Other):36481
## CarAge DriverAge
## Min. : 0.000 Min. :18.00
## 1st Qu.: 3.000 1st Qu.:34.00
## Median : 7.000 Median :44.00
## Mean : 7.532 Mean :45.32
## 3rd Qu.: 12.000 3rd Qu.:54.00
## Max. :100.000 Max. :99.00
##
## Brand Gas
## Fiat : 16723 Diesel :205945
## Japanese (except Nissan) or Korean: 79060 Regular:207224
## Mercedes, Chrysler or BMW : 19280
## Opel, General Motors or Ford : 37402
## other : 9866
## Renault, Nissan or Citroen :218200
## Volkswagen, Audi, Skoda or Seat : 32638
## Region Density
## R24 :160601 Min. : 2
## R11 : 69791 1st Qu.: 67
## R53 : 42122 Median : 287
## R52 : 38751 Mean : 1985
## R72 : 31329 3rd Qu.: 1410
## R31 : 27285 Max. :27000
## (Other): 43290
Data di atas tidak memiliki “missing data”, sehingga kita dapat melanjutkan dengan proses transformasi data.
Data umur pengendara, umur kendaraan dan kepadatan kita kategorikan sebagai berikut:
Asumsikan klaim-klaim terjadi mengikuti proses Poisson homogen dengan intensitas \(\lambda\). Sehingga proses terjadinya klaim memiliki kenaikan bebas dan banyaknya klaim terobservasi pada rentang \([t,t+h]\) memiliki distribusi Poisson dengan parameter \(\lambda h\).
Dalam aplikasi ketika kita memperoleh data, terdapat polis-polis yang belum mencapai satu tahun atau bahkan sudah mencapai lebih dari satu tahun. Sehingga kita mendapat kesulitan untuk menghitung klaim tahunan suatu polis yang belum mencapai satu tahun. Untuk mengatasi hal ini kita menggunakan waktu exposure setiap pemegang polis.
Misalkan \(Y_i\) adalah banyaknya klaim pemegang polis \(i\) pada rentang \([0,E_i]\), dengan \(E_i\) adalah exposure. Di sini \(E_i\) dapat lebih kecil 1 atau bahkan lebih besar 1.
Untuk menghitung rataan frekuensi klaim tahunannya kita gunakan formula empirik
\[m_N=\frac{\sum_{i=1}^n Y_i}{\sum_{i=1}^n E_i}\] dan variansi empirik \[S_N^2=\frac{\sum_{i=1}^n(Y_i-m_N . E_i)^2}{\sum_{i=1}^n E_i}\] Dengan memakai data di atas, kita peroleh informasi rataan banyaknya frekuensi klaim tahunan, variansinya dan rasio variansi dan rataannya sebagai berikut:
## rataan= 0.06979859 variansi= 0.07396742 psi= 1.059727
dengan psi (\(\phi\)) adalah suatu konstan yang memenuhi \[S_N^2=\phi m_N.\] Untuk distribusi Poisson \(\phi=1\).
Kita dapat juga menghitung rataan dan variansi di atas berdasarkan kategori dari kovariatnya. Misalkan kita gunakan kovariat \(X\) adalah daerah dari si pengendara. Maka berdasarkan kategori kovariat daerah pengendara ini diperoleh:
## Daerah= R11 rataan= 0.08577016 variansi= 0.09526731 psi= 1.110728
## Daerah= R23 rataan= 0.06923285 variansi= 0.07388641 psi= 1.067216
## Daerah= R24 rataan= 0.06303979 variansi= 0.06483763 psi= 1.028519
## Daerah= R25 rataan= 0.06788926 variansi= 0.07152207 psi= 1.053511
## Daerah= R31 rataan= 0.08210142 variansi= 0.09201134 psi= 1.120703
## Daerah= R52 rataan= 0.07185182 variansi= 0.07590899 psi= 1.056466
## Daerah= R53 rataan= 0.06741501 variansi= 0.07016521 psi= 1.040795
## Daerah= R54 rataan= 0.0716627 variansi= 0.07559456 psi= 1.054866
## Daerah= R72 rataan= 0.07366204 variansi= 0.08064593 psi= 1.09481
## Daerah= R74 rataan= 0.08222055 variansi= 0.08952784 psi= 1.088874
Terlihat bahwa untuk setiap daerah rataannya berbeda dan ratio variansi dan rataannya berkisar di sekitar 1. Hasil ini dapat menyarankan kita untuk menggunakan model distribusi Poisson dengan parameter \(\lambda\) yang bergantung pada karakteristik pemegang polis.
Model frekuensi klaim dengan menggunakan distribusi Poisson ini kita namakan regresi Poisson. Berikut ini kita berikan model regresi Poisson dengan parameter tetap dan parameter yang bergantung pada karakteristik pemegang polis.
Misalkan \(N_i\) menyatakan frekuensi klaim tahunan untuk pemegang polis ke-\(i\), dan diasumsikan \(N_i\sim Poisson(\lambda)\). Jika pemegang polis ini kita observasi selama periode \(E_i\) dan \(Y_i\) menyatakan frekuensi klaim selama periode \(E_i\) ini, maka kita asumsikan \(Y_i\sim Poisson(\lambda E_i)\). Disini \(\lambda\) diasumsikan tetap untuk setiap pemegang polis. Untuk mengestimasi parameter \(\lambda\) kita gunakan fungsi likelihood:
\[\mathcal{L}(\lambda,Y,E)=\prod_{i=1}^n \frac{e^{-\lambda E_i}(\lambda E_i)^{Y_i}}{Y_i!}\]
atau fungsi log likelihood
\[\log(\mathcal{L}(\lambda,Y,E))=-\lambda\sum_{i=1}^n E_i+\sum_{i=1}^n Y_i \log(\lambda E_i)-\sum_{i=1}^n \log(Y_i).\]
Dengan menggunakan kondisi \(\frac{\partial }{\partial \lambda}\mathcal{L}(\lambda,Y,E)=0\), kita peroleh
\[\widehat{\lambda}=\frac{\sum_{i=1}^nY_i}{\sum_{i=1}^n E_i}.\] \(\widehat{\lambda}\) ini akan memaksimumkan fungsi likelihood di atas jika kondisi \(\frac{\partial^2 }{\partial \lambda^2}\mathcal{L}(\lambda,Y,E)<0\) terpenuhi. Untuk kasus ini kita memiliki \(\frac{\partial^2 }{\partial \lambda^2}\mathcal{L}(\lambda,Y,E)=-\frac{\sum_{i=1}^n Y_i}{\lambda^2}<0.\) Sehingga kondisi kedua ini terpenuhi.
Kita dapat juga menggunakan parameter \(\lambda\) yang bergantung pada karakteristik pemegang polis. Misalkan \(\lambda_i\) menyatakan laju banyaknya klaim tahunan pemegang polis ke-\(i\). Kita modelkan
\[ \lambda_i =e^{X_i^T\beta},\] dengan \(X_i\) adalah vektor kovariat berdimensi \(p\) dari pemegang polis ke-\(i\) dan \(\beta\in R^p\) adalah vektor parameter yang akan kita estimasi.
Asumsikan \(N_i\sim Poisson(\lambda_i)\), dengan alasan yang sama seperti model sebelumnya kita bisa mengasumsikan \(Y_i\sim Poisson(E_i \lambda_i)\) atau \[Y_i\sim Poisson\left(e^{X_i^T\beta+\log(E_i)}\right).\] Untuk kasus \(\lambda\) yang bergantung kovariat ini kita memiliki fungsi log likelihood berikut:
\[\log(\mathcal{L}(\lambda,Y,E))=-\sum_{i=1}^n \lambda_iE_i+\sum_{i=1}^n Y_i \log(\lambda_i E_i)-\sum_{i=1}^n \log(Y_i)\]
atau, dengan menggunakan definisi \(\lambda_i=\exp(X_i^T\beta)\),
\[\log(\mathcal{L}(\lambda,Y,E))=-\sum_{i=1}^n \exp(X_i^T\beta+\log(E_i))+\sum_{i=1}^n Y_i(X_i^T\beta+ \log(\lambda E_i))-\sum_{i=1}^n \log(Y_i).\] Parameter \(\beta\) ini kita estimasi menggunakan metode Newton-Rhapson:
\[\beta_{k+1}=\beta_k-H(\beta_k)^{-1} \nabla \log(\mathcal{L}(\beta_k,Y,E)),\] dengan \[\nabla \log(\mathcal{L}(\beta,Y,E))=\frac{\partial \log(\mathcal{L}(\beta,Y,E))}{\partial \beta}=\sum_{i=1}^n(Y_i-\exp(X_i^T\beta+\log(E_i)))X_i^T,\] dan matriks Hessian:
\[H(\beta)=\frac{\partial^2 \log(\mathcal{L}(\beta,Y,E))}{\partial \beta\partial \beta^T}=\sum_{i=1}^n(Y_i-\exp(X_i^T\beta+\log(E_i)))X_iX_i^T.\] Misalkan kita gunakan kovariat Gas, DriverAge dan Density. Kita peroleh hasil estimasi parameter-parameternya sebagai berikut:
##
## Call:
## glm(formula = ClaimNb ~ Gas + DriverAge + Density + offset(log(Exposure)),
## family = poisson, data = contracts.f)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.7655 -0.3385 -0.2669 -0.1488 6.5202
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.86471 0.04047 -46.079 < 2e-16 ***
## GasRegular -0.20598 0.01603 -12.846 < 2e-16 ***
## DriverAge(22,26] -0.61606 0.04608 -13.370 < 2e-16 ***
## DriverAge(26,42] -1.07967 0.03640 -29.657 < 2e-16 ***
## DriverAge(42,74] -1.07765 0.03549 -30.362 < 2e-16 ***
## DriverAge(74,Inf] -1.10706 0.05188 -21.338 < 2e-16 ***
## Density(40,200] 0.18473 0.02675 6.905 5.02e-12 ***
## Density(200,500] 0.31822 0.02966 10.730 < 2e-16 ***
## Density(500,4.5e+03] 0.52694 0.02593 20.320 < 2e-16 ***
## Density(4.5e+03,Inf] 0.63717 0.03482 18.300 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 105613 on 413168 degrees of freedom
## Residual deviance: 103986 on 413159 degrees of freedom
## AIC: 135263
##
## Number of Fisher Scoring iterations: 6
Terlihat dari nilai \(p-\) value untuk setiap parameternya memberikan kesimpulan bahwa semua parameternya signifikan tidak sama dengan nol.
Misalkan kovariat yang kita pilih adalah Gas.
##
## Call:
## glm(formula = vY ~ 0 + X1 + offset(log(vE)), family = poisson(link = "log"),
## data = df)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.5092 -0.3610 -0.2653 -0.1488 6.5858
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## X1Diesel -2.59462 0.01088 -238.5 <2e-16 ***
## X1Regular -2.73101 0.01137 -240.2 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 450747 on 413169 degrees of freedom
## Residual deviance: 105537 on 413167 degrees of freedom
## AIC: 136799
##
## Number of Fisher Scoring iterations: 6
Misalkan kita ingin menghitung ekspektasi frekuensi klaim dengan periode eksposure 1 ( 1 tahun) untuk data berikut:
## X1 vE
## 1 Diesel 1
## 2 Regular 1
Dengan mengaplikasikan model regresi Poisson tanpa intercept di atas kita peroleh:
## 1 2
## 0.07467412 0.06515364
atau
\(E[N| \text{Gas=diesel}]=0.07467412\) dan \(E[N|\text{Gas=regular}]=0.06515364\)
##
## Call:
## glm(formula = vY ~ X1 + offset(log(vE)), family = poisson(link = "log"),
## data = df)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.5092 -0.3610 -0.2653 -0.1488 6.5858
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.59462 0.01088 -238.454 <2e-16 ***
## X1Regular -0.13639 0.01574 -8.666 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 105613 on 413168 degrees of freedom
## Residual deviance: 105537 on 413167 degrees of freedom
## AIC: 136799
##
## Number of Fisher Scoring iterations: 6
Terlihat model regresi Poisson dengan intercept ini memiliki variabel kovariat yang berbeda dengan model tanpa intercept. Disini kovariat X1Diesel tidak terlihat dan dijadikan variabel referensi. Perlu diperhatikan kita hanya bisa memilih diesel atau regular, sehingga bila X1Regular=0 maka X1Diesel=1. Untuk kasus X1Regular=0, Intercept akan merepresentasikan diesel. Sehingga
\[E[N| \text{Gas=diesel}]=\exp(\text{Intercept})=\exp(-2.59462)=0.07467412\] dan \[E[N|\text{Gas=regular}]=\exp(\text{Intercept}-0.13639)=\exp(-2.59462-0.13639)=0.06515364.\]
Misalkan kita ingin menganalisa dua kovariat Gas dan Density. Kita dapat membentuk table kontingensi antara Gas dan Density berikut:
## X2
## X1 [0,40] (40,200] (200,500] (500,4.5e+03] (4.5e+03,Inf]
## Diesel 36626 64966 31436 59797 13120
## Regular 25706 53588 31459 72461 24010
Tabel kontingensi untuk total eksposure
## X2
## X1 [0,40] (40,200] (200,500] (500,4.5e+03] (4.5e+03,Inf]
## Diesel 23049.805 38716.498 17588.139 28573.604 5176.733
## Regular 16943.598 33682.835 19577.038 38011.191 10504.727
Tabel kontingensi untuk total banyak klaim
## X2
## X1 [0,40] (40,200] (200,500] (500,4.5e+03] (4.5e+03,Inf]
## Diesel 1266 2575 1347 2760 498
## Regular 777 1858 1235 2941 924
Tabel kontingensi untuk frekuensi (empirik) klaim tahunan
## X2
## X1 [0,40] (40,200] (200,500] (500,4.5e+03] (4.5e+03,Inf]
## Diesel 0.05492454 0.06650912 0.07658570 0.09659265 0.09619966
## Regular 0.04585803 0.05516163 0.06308411 0.07737195 0.08796040
Pandang tabel kontingensi frekuensi klaim tahunan di atas, notasikan \(N\). Misalkan kita ingin memodelkan \(N_{ij}\) dengan \(L_i C_j\), \(i=1,2\) dan \(j=1,2,3,4,5\). Kita dapat mencari \(L_i\) dan \(C_j\) tersebut dengan teknik-teknik berikut:
\[\min_{C,L}\left\{\sum_{i,j}E_{ij}(N_{ij}-L_iC_j)^2\right\}\]
\[\min_{C,L}\left\{\sum_{i,j}E_{ij}\frac{(N_{ij}-L_iC_j)^2}{L_i C_j}\right\}\]
Disini Bailey menggunakan dua persamaan berikut: \[\sum_{i}Y_{ij}=\sum_i E_{ij}N_{ij}=\sum_i E_{ij}L_i C_j\] dan
\[\sum_{j}Y_{ij}=\sum_j E_{ij}N_{ij}=\sum_jE_{ij}L_i C_j\] Dua persamaan di atas memberikan
\[L_i=\frac{\sum_j Y_{ij}}{\sum_j E_{ij}C_j}\]
dan
\[C_j=\frac{\sum_i Y_{ij}}{\sum_i E_{ij}L_j}\] yang merupakan persamaan implisit, sehingga kita harus mengiterasi kedua persamaan di atas sampai nilai \(L_i\) dan \(C_j\) masing-masing konvergen ke suatu nilai.
Kita aplikasikan metode iterasi Bias minimum di atas untuk memodelkan tabel kontingensi frekuensi klaim tahunan. Setelah iterasi 100 kita peroleh
vektor \(L\)
## [1] 1.098979 0.907170
dan vektor \(C\)
## [0,40] (40,200] (200,500] (500,4.5e+03] (4.5e+03,Inf]
## 0.05019412 0.06063908 0.06961690 0.08653034 0.09343771
Dengan menggunakan model \(N_{ij}=L_iC_j\) kita peroleh tabel kontingensi frekuensi klaim tahunan berikut:
## X2
## X1 [0,40] (40,200] (200,500] (500,4.5e+03] (4.5e+03,Inf]
## Diesel 0.05516229 0.06664107 0.07650751 0.09509503 0.10268609
## Regular 0.04553460 0.05500995 0.06315436 0.07849773 0.08476389
Kita gunakan model ini untuk menghitung banyak klaim dari kendaraan diesel, dan diperoleh sebanyak:
## [1] 8446
Hasil model di atas ternyata sama dengan nilai empiriknya.
Hasil Bias minimum juga dapat kita peroleh dengan regresi Poisson. Kita modelkan \(Y_i\sim Poisson(\lambda_i E_i)\), dengan \(\lambda_i=\exp\left(X_i^T\beta+\log(E_i) \right)\). Kita gunakan kovariat \(X_1\)=Gas dan \(X_2=\) Density. Kita peroleh hasil berikut:
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.05516229 0.06664107 0.07650751 0.09509503 0.10268609
## [2,] 0.04553460 0.05500995 0.06315436 0.07849773 0.08476389
Disini kita gunakan data kuantitatif DriverAge yang belum dikategorikan. Kita gunakan model regresi Poisson dengan \[\lambda_i =e^{\beta_0+\beta_1 DriverAge_i+\log(E_i)}\] Kita peroleh model berikut:
##
## Call:
## glm(formula = ClaimNb ~ DriverAge + offset(log(Exposure)), family = poisson,
## data = freMTPLfreq)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.5523 -0.3510 -0.2678 -0.1504 6.4415
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.1513378 0.0262347 -82.00 <2e-16 ***
## DriverAge -0.0111060 0.0005579 -19.91 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 105613 on 413168 degrees of freedom
## Residual deviance: 105206 on 413167 degrees of freedom
## AIC: 136467
##
## Number of Fisher Scoring iterations: 6
Kita aplikasikan model inipada pengendara dengan usia 18 samapai 99 tahun. Kita peroleh plot berikut:
## integer(0)