MGL.reg.Rd
MGL.reg
is used to fit bivariate MGL and MGL-EV copula regression models for two continuous variables.
MGL.reg(
U,
X,
copula = c("MGL", "MGL180", "MGL-EV", "MGL-EV180", "Gumbel", "MGB2"),
hessian = TRUE,
initpar,
...
)
two-dimensional matrix with values in \([0,1]\).
design matrix
'MGL', 'MGL180', "MGL-EV", "MGL-EV180", "Gumbel", "MGB2".
Logical. Should a numerically differentiated Hessian matrix be returned?
Initial values for the parameters to be optimized over.
additional arguments, see optim
for more details.
A list containing the following components:
loglike: the value of the estimated maximum of the loglikelihood function.
copula: the name of the fitted copula. "MGL180" and "MGL-EV180" denote the survival MGL and MGL-EV copula respectively.
estimates: the point at which the maximum value of the loglikelihood is obtained.
se: the standard errors of the estimators.
AIC, BIC: the goodness fit of the regression models.
hessian: the hessian at the estimated maximum of the loglikelihood (if requested).
The estimation method is performed via optim
function. Y1 and Y2 are both continuous variables.
copula: "MGL180" and "MGLEV180" denote the survival MGL and survival MGL-EV copula respectively.
For "Gumbel" regression model, the copula parameter $$\delta_i = \exp(X_i^T\beta) + 1,$$ where \({X}_{i}=(1,x_{i1}...,x_{ik})\) denotes the vector of covariates and \(\beta\) is the vector of coefficients to be estimated in the copula regression.
For "MGL", "MGL180", "MGL-EV", "MGL-EV180" regression model, the copula parameter $$\delta_i = \exp(X_i^T\beta).$$
For "MGB2", the copula parameter $$\q_i = \exp(X_i^T\beta)$$ and \((p_1,p_2)\) remain to be constant.
Note that the regression modelling can be extended to the high-dimensional case when copula is "MGL180" and "MGL".
# 10-dimensional regression models
set.seed(111)
d <- 10
n <- 1000 # sample size
beta.true <- c(-0.6, 0.5, 0.2) # true regression coefficients
x1 <- rnorm(n, 0, 1)
x2 <- rnorm(n, 0, 1)
X <- model.matrix(~ x1 + x2) # design matrix
delta.sim <- as.vector(exp(X%*%beta.true)) # true copula parameters
Usim <- matrix(0, nrow = n, ncol = d)
for (i in 1:n){
Usim[i, ] <- rcMGL.multi(n = 1, d = d, pars = delta.sim[i])
}
m.MGLMGA <- MGL.reg(U = Usim, copula = "MGL",
X = X, method = "Nelder-Mead",
initpar = c(-0.32, 0.001, 0.001)
)
m.MGLMGA
#> $loglike
#> [1] 729.0535
#>
#> $copula
#> $copula$name
#> [1] "MGL"
#>
#>
#> $estimates
#> [1] -0.6091929 0.4555460 0.1676800
#>
#> $se
#> [1] 0.03939535 0.03466884 0.03400156
#>
#> $hessian
#> [,1] [,2] [,3]
#> [1,] -913.5135 -544.5927 -119.1106
#> [2,] -544.5927 -1159.3980 -22.2301
#> [3,] -119.1106 -22.2301 -883.3534
#>
#> $AIC
#> [1] -1452.107
#>
#> $BIC
#> [1] -1437.384
#>