Learn R Programming

DCL (version 0.1.2)

dcl.boot.prior: Bootstrap distribution (the full cashflow) adding prior knowledge

Description

Provide the distribution of the IBNR, RBNS and total (RBNS+IBRN) reserves by calendar years and rows using bootstrapping.

Usage

dcl.boot.prior( Xtriangle , Ntriangle , sigma2 , mu , inflat.i , inflat.j , Qi , 
    Model = 2 , adj = 1 , boot.type = 2, B = 999 ,  
    Tail = TRUE , summ.by = "diag", Tables = TRUE, num.dec = 2 , n.cal = NA ,
    Fj.X = NA , Fj.N = NA )

Arguments

Xtriangle

The paid run-off triangle: incremental aggregated payments. It should be a matrix with incremental aggregated payments located in the upper triangle and the lower triangle consisting in missing or zero values.

Ntriangle

The counts data triangle: incremental number of reported claims. It should be a matrix with the observed counts located in the upper triangle and the lower triangle consisting in missing or zero values. It should has the same dimension as Xtriangle (both in the same aggregation level (quarters, years,etc.))

sigma2

Optional. The variance of the individual payments in the first underwriting period.

mu

Optional. The mean of the individual payments in the first underwriting period.

inflat.i

Optional. A vector with dimension m (the dimension of the input triangles) specifying the severity inflation in the underwriting direction.

inflat.j

Optional. A vector with dimension m specifying the severity inflation in the development direction. If not specified it will be assumed to be 1 and then the severity mean not depending on the development period.

Qi

Optional. A vector with dimension m specifying the probability of zero-claims for each underwriting period. If not specified then it will be assumed no zero-payments.

Model

Possible values are 0, 1 or 2 (default). See dcl.estimation for more in details.

adj

Method to adjust the estimated delay parameters for the distributional model. It should be 1 (default value) or 2. See dcl.estimation for more details.

boot.type

Choose between values 1, to provide only the variance process, or 2 (default), to take into account the uncertainty of the parameters.

B

The number of simulations in the bootstrap algorithm. The defaul value is 999.

Tail

Logical. If TRUE (default) the tail is provided.

summ.by

A character value such as "diag", "row" or "cell".

Tables

Logical. If TRUE (default) it is showed a table with the summary (mean, standard deviation, 1%, 5%, 50%, 95%, 99%) of the distribution of the outstanding liabilities in the future calendar periods (if summ.by="diag") or by underwriting period (if summ.by="row").

num.dec

Number of decimal places used to report numbers in the tables. Used only if Tables=TRUE

n.cal

Integer specifying the number of most recent calendars which will be used to calculate the development factors. By default n.cal=NA and all the observed calendars are used (classical chain ladder).

Fj.X

Optional vector with lentgth m-1 (m being the dimension of the triangles) with the development factors to calculate the chain ladder estimates from Xtriangle. See more details in clm.

Fj.N

Optional vector with lentgth m-1 with the development factors to calculate the chain ladder estimates from Ntriangle.

Value

array.rbns.boot

An array with dimensions (m,2m-1,B) (m being the dimension of the input triangles in DCL). Each array.rbns.boot[,,b] is a matrix, with m rows and 2m-1 columns, having the bootstrapped outstanding RBNS numbers as the entries (for b=1,...,B).

Mat.rbns

A matrix with B rows and 2m columns. Each Mat.rbns[b,] is a vector with elements being the outstanding liabilities for RBNS claims in the future calendar periods (sums by diagonals), and last value is the RBNS reserve (overall sum).

array.ibnr.boot

An array with dimensions (m,2m-1,B) (m being the dimension of the input triangles in DCL). Each array.ibnr.boot[,,b] is a matrix, with m rows and 2m-1 columns, having the bootstrapped outstanding IBNR numbers as the entries (for b=1,...,B).

Mat.ibnr

A matrix with B rows and 2m columns. Each Mat.ibnr[b,] is a vector with elements being the outstanding liabilities for IBNR claims in the future calendar periods (sums by diagonals), and last value is the RBNS reserve (overall sum).

Mat.total

A matrix with B rows and 2m columns. Each Mat.total[b,] is a vector with elements being the outstanding liabilities for total(=RBNS+IBNR) claims in the future calendar periods (sums by diagonals), and last value is the RBNS reserve (overall sum).

summ.rbns

A dataframe with the summary of the RBNS distribution. Only if Tables=TRUE.

summ.ibnr

A dataframe with the summary of the IBNR distribution. Only if Tables=TRUE.

summ.total

A dataframe with the summary of the total(=RBNS+IBNR) distribution. Only if Tables=TRUE.

Details

If proper values are provided for the arguments sigma2, mu, inflat.i, inflat.j and Qi then, they will be considered fixed as prior knowledge. Otherwise, if not specified, inflat.j will be assumed to be a vector of ones, Qi a vector of zeros, and the rest will be estimated using dcl.estimation.

References

Martinez-Miranda, M.D., Nielsen, J.P., Verrall, R. and Wuthrich, M.V. (2013) Double Chain Ladder, Claims Development Inflation and Zero Claims. Scandinavian Actuarial Journal. In press.

See Also

Plot.cashflow, dcl.boot

Examples

Run this code
# NOT RUN {
## Data application by in Martinez-Miranda, Nielsen, Verrall and Wuthrich (2013)
data(NtrianglePrior)
data(NpaidPrior)
data(XtrianglePrior)

## Extract information about zero-claims and severity dev. inflation
my.priors<-extract.prior(XtrianglePrior,NpaidPrior,NtrianglePrior,Plots=FALSE)
my.inflat.j<-my.priors$inflat.j
my.Qi<-my.priors$Qi

## Bootstrap cashflow incorporating prior knowledge about
##      severity inflation and zero claims
# Only variance process
# Below only B=200 simulations for a fast example
dist.priorC.I<-dcl.boot.prior(NtrianglePrior,XtrianglePrior,
  inflat.j=my.inflat.j,Qi=my.Qi,adj=2,Tail=FALSE,boot.type=1,B=200)
Plot.cashflow(dist.priorC.I)

## Try to compare with DCL with no prior knowledge: 
# Only variance process
# dist.dcl.I<-dcl.boot.prior(NtrianglePrior,XtrianglePrior,adj=2,
#    Tail=FALSE,boot.type=1)
# Plot.cashflow(dist.dcl.I)
# }

Run the code above in your browser using DataLab