Learn R Programming

copBasic (version 1.7.1)

EMPIRsim: Simulate a Bivariate Empirical Copula

Description

Perform a simulation on a bivariate empirical copula to produce the random variates $U$ and $V$ and return an Rdata.frame of them. This function is an empirical parallel to simCOP that is used for parametric copulas. If circumstances require conditional simulation of $V|U$, then function EMPIRsimv, which produces a vector of $V$ from a fixed $u$, should be used.

For the usual situation in which an individual $u$ during the simulation loops is not a value aligned on the grid, then the bounding conditional quantile functions are solved for each of the $n$ simulations and the following interpolation is made by $$v = \frac{v_1/w_1 + v_2/w_2}{1/w_1 + 1/w_2}\mbox{,}$$ which states that that the weighted mean is computed. The values $v_1$ and $v_2$ are ordinates of the conditional quantile function for the respective grid lines to the left and right of the $u$ value. The values $w_1$ $=$ $u - u^\mathrm{left}_\mathrm{grid}$ and $w_2$ $=$ $u^\mathrm{right}_\mathrm{grid} - u$.

Usage

EMPIRsim(n=100, empgrid=NULL, kumaraswamy=FALSE, ploton=TRUE, points=TRUE, ...)

Arguments

n
A sample size, default is 100;
empgrid
Gridded empirical copula from EMPIRgrid;
kumaraswamy
A logical to trigger Kumaraswamy smoothing of the conditional quantile function that is passed to EMPIRgridderinv. The Kumaraswamy distribution is a distribution having support $[0,1]$ with an expl
ploton
A logical to toggle on the plot;
points
A logical to actually draw the simulations by the points() function in R; and
...
Additional arguments to pass to the points() function or to EMPIRgridderinv.

Value

  • An Rdata.frame of the simulated values is returned.

See Also

EMPIRgrid, EMPIRgridderinv, EMPIRsimv

Examples

Run this code
pdf("EMPIRsim_experiment.pdf")
  nsim <- 5000
  para <- list(alpha=0.15, beta=0.65,
               cop1=PLACKETTcop, cop2=PLACKETTcop, para1=0.005, para2=1000)
  set.seed(1)
  uv <- simCOP(n=nsim, cop=composite2COP, para=para, pch=16, col=rgb(0,0,0,.2))
  mtext("A highly complex simulated bivariate relation")
  # set.seed(1) # try not resetting the seed
  uv.grid <- EMPIRgrid(para=uv, deluv=0.025)

  tmp <- EMPIRsim(n=nsim, empgrid=uv.grid, kumaraswamy=FALSE, col=rgb(1,0,0,0.1),pch=16)
  mtext("Resimulation without Kumaraswamy smoothing")

  tmp <- EMPIRsim(n=nsim, empgrid=uv.grid, kumaraswamy=TRUE,  col=rgb(1,0,0,0.1),pch=16)
  mtext("Resimulation but using the Kumaraswamy Distribution for smoothing")
dev.off()
# See other examples under EMPIRsimv

Run the code above in your browser using DataLab