pmv_ce: Approximate Log-Likelihood via Continuous Extension (CE)

pmvn_ceR Documentation

Approximate Log-Likelihood via Continuous Extension (CE)

Description

Computes the approximate log-likelihood for a count time series model based on a Gaussian or Student–t copula using the Continuous Extension (CE) method.

Usage

pmvn_ce(lower, upper, tau, od, c = 0.5, ret_llk = TRUE)

pmvt_ce(lower, upper, tau, od, c = 0.5, ret_llk = TRUE, df)

Arguments

lower

Numeric vector of length n giving the lower bounds of the transformed latent variables.

upper

Numeric vector of length n giving the upper bounds of the transformed latent variables.

tau

Numeric vector of ARMA dependence parameters ordered as c(phi_1, ..., phi_p, theta_1, ..., theta_q).

od

Integer vector c(p, q) specifying AR and MA orders.

c

Smoothing bandwidth parameter in (0,1). Default is 0.5.

ret_llk

Logical; if TRUE (default), returns the approximate log-likelihood.

df

Degrees of freedom for the t copula. Required only for pmvt_ce().

Details

The CE method replaces the discrete probability mass at each observation with a smooth approximation controlled by a bandwidth parameter c. This yields a tractable approximation to the multivariate rectangle probability defining the likelihood.

Two copula families are supported:

  • Gaussian copula via pmvn_ce()

  • t copula via pmvt_ce()

In both cases, the latent dependence structure is specified through an ARMA(p,q) model.

The CE approximation applies to discrete marginal distributions once the corresponding latent lower and upper bounds are computed. The Gaussian copula version uses the standard normal cdf, while the t copula version uses the Student t cdf with degrees of freedom df.

Value

A numeric value giving the approximate log-likelihood.

References

Nguyen, Q. N., & De Oliveira, V. (2026). Approximating Gaussian copula models for count time series: Connecting the distributional transform and a continuous extension. Journal of Applied Statistics.

See Also

pmvn_ce, pmvt_ce

Examples

## Gaussian copula example
mu <- 10
tau <- 0.2
arma_order <- c(1, 0)

sim_data <- sim_poisson(mu = mu, tau = tau, arma_order = arma_order, 
                        nsim = 500, family = "gaussian", seed = 1)

y <- sim_data$y
a <- qnorm(ppois(y - 1, lambda = mu))
b <- qnorm(ppois(y, lambda = mu))

llk_gauss <- pmvn_ce(lower = a, upper = b,
                     tau = tau, od = arma_order, c = 0.5)


## t copula example
df <- 8

sim_data_t <- sim_poisson(mu = mu, tau = tau, arma_order = arma_order,
                          nsim = 500, family = "t", df = df, seed = 1)

y_t <- sim_data_t$y
a_t <- qt(ppois(y_t - 1, lambda = mu), df = df)
b_t <- qt(ppois(y_t, lambda = mu), df = df)

llk_t <- pmvt_ce(lower = a_t, upper = b_t, tau = tau, od = arma_order,
                 c = 0.5, df = df)

gctsc documentation built on March 20, 2026, 9:11 a.m.