Specifying Copula Models through Correlation

library(causl)

The standard way we choose to parametrize copula dependence structure is similar to the way we parametrize the other causal structures. We specify a variable is a link function of a linear combination of other variables.

For instance, we return to the following example: \[\begin{align*} Z &\sim N(0, \; 1)\\ X \mid Z=z &\sim N(0.5\times z, \; 1)\\ Y \mid \operatorname{do}(X=x) &\sim N(0.3\times x, \; 1) \end{align*}\]

The formulas and family variables are familiar.

formulas=list(z~1, x~z, y~x, ~1)
family=rep(1,4)

When defining the pars variable we replace the familiar beta in the cop entry to a tau. If the user specifies a \(\tau\), the program will convert the specified Kendall’s \(\tau\) to the correct parameter so that the copula between the outcome and confounder has a Kendall correlation of \(\tau\). This is a simpler way to encode the dependence information as \(\tau \in [-1,1]\) and easier to interpret. The code looks like.

pars <- list(z = list(beta = 0, phi=1),
             x = list(beta = c(0,0.5), phi=1),
             y = list(beta = c(0,0.3), phi=1),
             cop = list(y= list(z = list(tau = 0.25)))) # NOTE tau argument

We note that we define the dependence between y and z to be uncoditional on the treatment x. This assumption is necessary for specifying Kendall’s \(\tau\). (Is it?)

cm <- causl_model(formulas = formulas, family = family, pars = pars)
dat <- rfrugal(n = 10000, causl_model = cm)
## Inversion method selected: using pair-copula parameterization