simpA.param {CondCopulas}R Documentation

Semiparametric testing of the simplifying assumption

Description

This function tests the “simplifying assumption” that a conditional copula

C_{1,2|3}(u_1, u_2 | X_3 = x_3)

does not depend on the value of the conditioning variable x_3 in a semiparametric setting, where the conditional copula is of the form

C_{1,2|3}(u_1, u_2 | X_3 = x_3) = C_{\theta(x_3)}(u_1,u_2),

for all 0 <= u_1, u_2 <= 1 and all x_3. Here, (C_\theta) is a known family of copula and \theta(x_3) is an unknown conditional dependence parameter. In this setting, the simplifying assumption can be rewritten as \theta(x_3) does not depend on x_3, i.e. is a constant function of x_3.

Usage

simpA.param(
  X1,
  X2,
  X3,
  family,
  testStat = "T2c",
  typeBoot = "boot.NP",
  h,
  nBootstrap = 100,
  kernel.name = "Epanechnikov",
  truncVal = h,
  numericalInt = list(kind = "legendre", nGrid = 10)
)

Arguments

X1

vector of n observations of the first conditioned variable

X2

vector of n observations of the second conditioned variable

X3

vector of n observations of the conditioning variable

family

the chosen family of copulas (see the documentation of the class VineCopula::BiCop() for the available families).

testStat

name of the test statistic to be used. The only choice implemented yet is 'T2c'.

typeBoot

the type of bootstrap to be used. (see Derumigny and Fermanian, 2017, p.165). Possible values are

  • "boot.NP": usual (Efron's) non-parametric bootstrap

  • "boot.pseudoInd": pseudo-independent bootstrap

  • "boot.pseudoInd.sameX3": pseudo-independent bootstrap without resampling on X_3

  • "boot.pseudoNP": pseudo-non-parametric bootstrap

  • "boot.cond": conditional bootstrap

  • "boot.paramInd": parametric independent bootstrap

  • "boot.paramCond": parametric conditional bootstrap

h

the bandwidth used for kernel smoothing

nBootstrap

number of bootstrap replications

kernel.name

the name of the kernel

truncVal

the value of truncation for the integral, i.e. the integrals are computed from truncVal to 1-truncVal instead of from 0 to 1.

numericalInt

parameters to be given to statmod::gauss.quad, including the number of quadrature points and the type of interpolation.

Value

a list containing

References

Derumigny, A., & Fermanian, J. D. (2017). About tests of the “simplifying” assumption for conditional copulas. Dependence Modeling, 5(1), 154-197. doi:10.1515/demo-2017-0011

See Also

Other tests of the simplifying assumption:

Examples

# We simulate from a conditional copula
set.seed(1)
N = 500
Z = rnorm(n = N, mean = 5, sd = 2)
conditionalTau = -0.9 + 1.8 * pnorm(Z, mean = 5, sd = 2)
simCopula = VineCopula::BiCopSim(N=N , family = 1,
    par = VineCopula::BiCopTau2Par(1 , conditionalTau ))
X1 = qnorm(simCopula[,1], mean = Z)
X2 = qnorm(simCopula[,2], mean = - Z)

result <- simpA.param(
   X1 = X1, X2 = X2, X3 = Z, family = 1,
   h = 0.03, kernel.name = "Epanechnikov", nBootstrap = 5)
print(result$p_val)
# In practice, it is recommended to use at least nBootstrap = 100
# with nBootstrap = 200 being a good choice.


set.seed(1)
N = 500
Z = rnorm(n = N, mean = 5, sd = 2)
conditionalTau = 0.8
simCopula = VineCopula::BiCopSim(N=N , family = 1,
    par = VineCopula::BiCopTau2Par(1 , conditionalTau ))
X1 = qnorm(simCopula[,1], mean = Z)
X2 = qnorm(simCopula[,2], mean = - Z)

result <- simpA.param(
   X1 = X1, X2 = X2, X3 = Z, family = 1,
   h = 0.08, kernel.name = "Epanechnikov", nBootstrap = 5)
print(result$p_val)



[Package CondCopulas version 0.1.3 Index]