ordinal_ordinal_loglik()
computes the observed-data loglikelihood for a
bivariate copula model with two ordinal endpoints. The model
is based on a latent variable representation of the ordinal endpoints.
ordinal_ordinal_loglik(para, X, Y, copula_family, K_X, K_Y, return_sum = TRUE)
(numeric) loglikelihood value evaluated in para
.
Parameter vector. The parameters are ordered as follows:
para[1:p1]
: Cutpoints for the latent distribution of X corresponding to
\(c_1^X, \dots, c_{K_X - 1}^X\) (see Details).
para[(p1 + 1):(p1 + p2)]
: Cutpoints for the latent distribution of Y corresponding to
\(c_1^Y, \dots, c_{K_Y - 1}^Y\) (see Details).
para[p1 + p2 + 1]
: copula parameter
First variable (Ordinal with \(K_X\) categories)
Second variable (Ordinal with \(K_Y\) categories)
Copula family, one of the following:
"clayton"
"frank"
"gumbel"
"gaussian"
Number of categories in X
.
Number of categories in Y
.
Return the sum of the individual loglikelihoods? If FALSE
,
a vector with the individual loglikelihood contributions is returned.
Following the Neyman-Rubin potential outcomes framework, we assume that each patient has four potential outcomes, two for each arm, represented by \(\boldsymbol{Y} = (T_0, S_0, S_1, T_1)'\). Here, \(\boldsymbol{Y_z} = (S_z, T_z)'\) are the potential surrogate and true endpoints under treatment \(Z = z\).
The latent variable notation and D-vine copula model for \(\boldsymbol{Y}\)
is a straightforward extension of the notation in
ordinal_continuous_loglik()
.
In practice, we only observe \((S_0, T_0)'\) or \((S_1, T_1)'\). Hence, to
estimate the (identifiable) parameters of the D-vine copula model, we need
to derive the observed-data likelihood. The observed-data loglikelihood for
\((S_z, T_z)'\) is as follows:
$$
f_{\boldsymbol{Y_z}}(s, t; \boldsymbol{\beta}) =
P \left( c^{S_z}_{s - 1} < \tilde{S}_z, c^{T_z}_{t - 1} < \tilde{T}_z \right) - P \left( c^{S_z}_{s} < \tilde{S}_z, c^{T_z}_{t - 1} < \tilde{T}_z \right)
- P \left( c^{S_z}_{s - 1} < \tilde{S}_z, c^{T_z}_{t} < \tilde{T}_z \right) + P \left( c^{S_z}_{s} < \tilde{S}_z, c^{T_z}_{t} < \tilde{T}_z \right).
$$
The above expression is used in ordinal_ordinal_loglik()
to compute the
loglikelihood for the observed values for \(Z = 0\) or \(Z = 1\).