Given a dataset with a chosen distribution for the data in the body and another distribution in the tail, the threshold, the parameters of the body and the tail distributions and the weights are estimated.
fitSpliced(cell, body, tail, method, thresh = NULL) fitSplicedPar(cell, thresh, body, tail)
List containing the data in the component cell$Loss
Distribution in the body. Can be chosen between "gamma", "lnorm", "weibull" or "erlang"
Distribution in the tail. Can be chosen between "gpd", "gamma", "lnorm", "weibull" or "gh"
Method for the threshold estimation. In case of a GPD tail, it can be chosen between "BestFit", "Fixed", "dAMSE", "danielsson", "DK", "hall", "Himp", "HW", "mindist" or "RT"
Predetermined threshold quantile (if method="Fixed")
Returns a sevdist object of type 'spliced' with the given body and tail distributions fitted to the loss data.
In the spliced model, the distribution of the data is spliced into two distributions, one in the body and another in the tail. The density \(f(x)\) for a spliced distribution with threshold \(\tau\), weights \(w\), body distribution with density \(g\) and cumulative distribution function \(G\) and tail distribution with density \(h\) and cumulative distribution function \(H\) is given as below:
If \(x\le \tau\): \(f(x) = w* g(x)/G(\tau)\)
If \(x>\tau\): \(f(x) = (1-w)* h(x)/(1-H(\tau))\)
The weight \(w\) is required to normalise the density function. The estimation of the spliced distribution consists of three steps. In the first step, the threshold for the selected body and tail distribution is estimated. For further details on the methods for the threshold estimation, see fitThreshold. In the second step, the parameters of the body and the tail distribution are obtained by maximum likelihood estimation. For spliced distributions, truncated body distributions are fitted to truncated data. For the estimation of the parameters of the tail distribution, only the data points above the threshold are used. In the last step, the weight \(w\) is obtained.
fitSplicedBestFit, fitThreshold
# NOT RUN {
data(lossdat)
fitSpliced(lossdat[[3]],"gamma","gpd",method="Fixed",thresh=2000)
# }
Run the code above in your browser using DataLab