Approximates the density of a copula by a piece-wise constant function.
GetApprox( Cop, dim =2, depth = ifelse(type ==1,10,32), type =1, TOL =1000* .Machine$double.eps
)
Arguments
Cop: A function defining the copula.
dim: The approximation should be calculated on the dim-dimensional unit cube, defaults to 2.
depth: The number of hyperrectangles to be used to devide the unit cube, defaults to 10 for Approximation I and to 32 for Approximation II.
type: Whether Approximation I or Approximation II should be used, defaults to one.
TOL: A numerical tolerance used when calculating Approximation I.
Returns
GetApprox returns an object of class CopApprox according to its inputs. The returned object is a list containing a matrix that holds the information of the approximation, the argument Cop, which approximation was determined, and other auxiliary information.
The only method for objects of class CopApprox implemented so far are for the generic function plot, and then only for the case if dim was 2.
Details
This function provides two methods for subdividing the d-dimensional unit cube into hyper-rectangles, with d being passed to the parameter dim. As most of the functions in this package which create a new copula return a function that can be evaluated at points in arbitrary dimensions, it is necessary to specify for which dimension d one wishes to calculate the approximation to the copula's density .
The first method (Approximation I) determines 2m hyper-rectangles (where m is the parameter depth), each containing the same probability mass with respect to the copula. The second method (Approximation II) dividies the unit cube into md hyper-squares.
These approximations can be interpreted as piecewise constant approximations of the copula's probability density function if the copula is absolutely continuous. For futher details see References .
Tajvidi, N. and Turlach, B.A. (2017). A general approach to generate random variates for multivariate copulae, Australian & New Zealand Journal of Statistics 60 (1): 140--155. tools:::Rd_expr_doi("10.1111/anzs.12209") .