fitCopula {copula} | R Documentation |
Fits a copula model to multivariate data.
loglikCopula(param, x, copula) loglikMvdc(param, x, mvdc) fitCopula(data, copula, start, lower=NULL, upper=NULL, optim.control = list(NULL), method = "BFGS") fitMvdc(data, mvdc, start, optim.control = list(NULL), method = "BFGS")
param |
a vector of parameter values. |
x |
a data matrix. |
copula |
a "copula" object. |
mvdc |
a "mvdc" object. |
data |
a data matrix. |
start |
a vector of starting value for param . |
lower, upper |
bounds on the variables for the "L-BFGS-B" method. |
optim.control |
a list of controls to be passed to "optim" . |
method |
the method for optim. |
The return value of "loglikCopula"
and "loglikMvdc"
is
the loglikelihood evaluated for the given value of "param"
.
The return values of "fitCopula"
and "fitMvdc"
are
objects of class "fitCopula"
and "fitMvdc"
, respectively,
containing slots:
est |
the estimate of the parameters. |
var.est |
variance matrix estimate of the parameter estimator. See note below. |
loglik |
loglikelihood at "est" . |
fit |
the result of "optim" . |
The variance matrix of the estimate, "var.est"
, in the returned
object is only valid for full likelihood maximization. When
pseudo-observations are used, they under-estimate the variation. See
Genest, Ghoudi, and Rivest (1995).
When covariates are available for marginal distributions or for the copula,
one can construct the loglikelihood function and feed it to "optim"
to estimate all the parameters.
C. Genest, K. Ghoudi and L.-P. Rivest (1995). A semiparametric estimation procedure of dependence parameters in multivariate families of distributions. Biometrika, 82, 543-552.
J. Yan (2006), Multivariate Modeling with Copulas and Engineering Applications. In Handbook of Engineering Statistics, Ed. Pham, Springer.
gumbel.cop <- gumbelCopula(3, dim=2) myMvd <- mvdc(gumbel.cop, c("exp","exp"), list(list(rate=2),list(rate=4))) x <- rmvdc(myMvd, 1000) fit <- fitMvdc(x, myMvd, c(1,1,2)) fit n <- 200 u <- rcopula(gumbel.cop, n) ## true observations r <- apply(u, 2, rank) / (n + 1) ## pseudo-observations start <- calibKendallsTau(gumbel.cop, cor(u, method="kendall")[1,2]) fit.u <- fitCopula(u, gumbel.cop, start) fit.u fit.r <- fitCopula(r, gumbel.cop, start) fit.r