Function to estimate the total losses via the Monte Carlo simulations.
fMonteCarlo(ELT, s, t =1, theta =0, cap =Inf, nsim =10000, verbose =FALSE)
Arguments
ELT: Data frame containing two numeric columns. The column Loss contains the expected losses from each single occurrence of event. The column Rate contains the arrival rates of a single occurrence of event.
s: Scalar or numeric vector containing the total losses of interest.
t: Scalar representing the time period of interest. The default value is t = 1.
theta: Scalar containing information about the variance of the Gamma distribution: sd[X]=x∗theta. The default value is theta = 0: the loss associated to an event is considered as a constant.
cap: Scalar representing the financial cap on losses for a single event, i.e. the maximum possible loss caused by a single event. The default value is cap = Inf.
nsim: Integer representing the number of Monte Carlo simulations. The default value is nsim = 10e3.
verbose: Logical, if TRUE returns 95% CB and raw sample. The default is verbose = FALSE.
Returns
If verbose = FALSE the function returns a numeric matrix, containing in the first column the pre-specified losses s, and the estimated exceedance probabilities in the second column. If verbose = TRUE the function returns a numeric matrix containing four columns. The first column contains the losses s, the second column contains the estimated exceedance probabilities, the other columns contain the 95% confidence bands. The attributes of this matrix are a vector simS containing the simulated losses.
Examples
data(UShurricane)# Compress the table to millions of dollarsUSh.m <- compressELT(ELT(UShurricane), digits =-6)EPC.MonteCarlo <- fMonteCarlo(USh.m, s =1:40, verbose =TRUE)EPC.MonteCarlo
par(mfrow = c(1,2))plot(EPC.MonteCarlo[,1:2], type ="l", ylim = c(0,1))matlines(EPC.MonteCarlo[,-2], ylim = c(0,1), lty =2, col =1)# Assuming the losses follow a Gamma with E[X] = x, and Var[X] = 2 * x and cap = 5mEPC.MonteCarlo.Gamma <- fMonteCarlo(USh.m, s =1:40, theta =2, cap =5, verbose =TRUE)EPC.MonteCarlo.Gamma
plot(EPC.MonteCarlo.Gamma[,1:2], type ="l", ylim = c(0,1))matlines(EPC.MonteCarlo.Gamma[,-2], ylim = c(0,1), lty =2, col =1)# Compare the two results:par(mfrow = c(1,1))plot(EPC.MonteCarlo[,1:2], type ="l", main ="Exceedance Probability Curve",ylim = c(0,1))lines(EPC.MonteCarlo.Gamma[,1:2], col =2, lty =2)legend("topright", c("Dirac Delta", expression(paste("Gamma(",alpha[i]==1/ theta^2,", ", beta[i]==1/(x[i]* theta^2),")"," cap =",5))),lwd =2, lty =1:2, col =1:2)