pmv_ghk: Approximate Log-Likelihood via GHK Simulation

pmvn_ghkR Documentation

Approximate Log-Likelihood via GHK Simulation

Description

Computes the approximate log-likelihood for a count time series model based on a Gaussian or Student–t copula using the Geweke–Hajivassiliou–Keane (GHK) simulator.

Usage

pmvn_ghk(lower, upper, tau, od, M = 1000, QMC = TRUE, ret_llk = TRUE)

pmvt_ghk(
  lower,
  upper,
  tau,
  od,
  M = 1000,
  QMC = TRUE,
  ret_llk = TRUE,
  df,
  engine = c("mvmn", "mvt")
)

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), where \phi_i are autoregressive (AR) coefficients and \theta_j are moving-average (MA) coefficients.

od

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

M

Positive integer specifying the number of Monte Carlo or quasi-Monte Carlo samples used in the simulation.

QMC

Logical; if TRUE (default), quasi-Monte Carlo integration is used. Otherwise, standard Monte Carlo sampling is applied.

ret_llk

Logical; if TRUE (default), returns the approximate log-likelihood. If FALSE, internal diagnostic quantities from the GHK simulator are returned. This option is primarily intended for internal use and methodological research.

df

Degrees of freedom for the t copula. Must be greater than 2. Required only for pmvt_ghk().

engine

Character string specifying the conditional simulation engine used in the GHK approximation for the t copula. The default "mvmn" uses the multivariate mixture of normal (Standard implementation). The alternative "mvt" uses the direct Student–t conditional simulation scheme included for reproducibility of results reported in Nguyen and De Oliveira (2026). Ignored for the Gaussian copula.

Details

The GHK method approximates the multivariate normal or Student–t rectangle probability defining the copula likelihood by sequential simulation from truncated conditional distributions.

Two copula families are supported:

  • Gaussian copula via pmvn_ghk()

  • Student–t copula via pmvt_ghk()

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

The GHK simulator approximates the multivariate normal or t rectangle probability by decomposing it into a sequence of one-dimensional truncated conditional distributions.

Value

By default, a numeric scalar giving the approximate log-likelihood. If ret_llk = FALSE, internal diagnostic quantities from the GHK simulator are returned (primarily for internal use).

References

Nguyen, Q. N., & De Oliveira, V. (2026). Likelihood Inference in Gaussian Copula Models for Count Time Series via Minimax Exponential Tilting Journal of Computational Statistics and Data Analysis.

Nguyen, Q. N., & De Oliveira, V. (2026). Scalable Likelihood Inference for Student–t Copula Count Time Series. Manuscript in preparation.

See Also

pmvn_ghk, pmvt_ghk

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_ghk(lower = a, upper = b, tau = tau, od = arma_order,
                      M = 1000)


## Student--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_ghk(lower = a_t, upper = b_t, tau = tau, od = arma_order,
                  M = 1000, df = df)

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