bicop | R Documentation |
Fit a bivariate copula model for continuous or discrete data. The family can be selected automatically from a vector of options.
bicop(
data,
var_types = c("c", "c"),
family_set = "all",
par_method = "mle",
nonpar_method = "quadratic",
mult = 1,
selcrit = "aic",
weights = numeric(),
psi0 = 0.9,
presel = TRUE,
allow_rotations = TRUE,
keep_data = FALSE,
cores = 1
)
data |
a matrix or data.frame with at least two columns, containing the (pseudo-)observations for the two variables (copula data should have approximately uniform margins). More columns are required for discrete models, see Details. |
var_types |
variable types, a length 2 vector; e.g., |
family_set |
a character vector of families; see Details for additional options. |
par_method |
the estimation method for parametric models, either |
nonpar_method |
the estimation method for nonparametric models, either
|
mult |
multiplier for the smoothing parameters of nonparametric families. Values larger than 1 make the estimate more smooth, values less than 1 less smooth. |
selcrit |
criterion for family selection, either |
weights |
optional vector of weights for each observation. |
psi0 |
see |
presel |
whether the family set should be thinned out according to symmetry characteristics of the data. |
allow_rotations |
whether to allow rotations of the copula. |
keep_data |
whether the data should be stored (necessary for using
|
cores |
number of cores to use; if more than 1, estimation for multiple families is done in parallel. |
If there are missing data (i.e., NA
entries), incomplete observations are
discarded before fitting the copula.
When at least one variable is discrete, more than two columns are required
for data
: the first n \times 2
block contains realizations of
F_{X_1}(x_1), F_{X_2}(x_2)
. The second n \times 2
block contains
realizations of F_{X_1}(x_1^-), F_{X_2}(x_2^-)
. The minus indicates a
left-sided limit of the cdf. For, e.g., an integer-valued variable, it holds
F_{X_1}(x_1^-) = F_{X_1}(x_1 - 1)
. For continuous variables the left
limit and the cdf itself coincide. Respective columns can be omitted in the
second block.
The family_set
argument accepts all families in bicop_dist()
plus the
following convenience definitions:
"all"
contains all the families,
"parametric"
contains the parametric families (all except "tll"
),
"nonparametric"
contains the nonparametric families ("indep"
and
"tll"
)
"onepar"
contains the parametric families with a single parameter,
("gaussian"
, "clayton"
, "gumbel"
, "frank"
, and "joe"
),
"twopar"
contains the parametric families with two parameters,
("t"
, "bb1"
, "bb6"
, "bb7"
, and "bb8"
),
"threepar"
contains the paramtric families with three parameters,
("tawn"
),
"elliptical"
contains the elliptical families,
"archimedean"
contains the archimedean families,
"ev"
contains the extreme-value families,
"BB"
contains the BB families,
"itau"
families for which estimation by Kendall's tau inversion is
available ("indep"
,"gaussian"
, "t"
,"clayton"
, "gumbel"
,
"frank"
, "joe"
).
An object inheriting from classes bicop
and bicop_dist
. In addition to
the entries contained in bicop_dist()
, objects from the bicop
class
contain:
data
(optionally, if keep_data = TRUE
was used), the dataset that was
passed to bicop()
.
controls
, a list
with the set of fit controls that was passed to
bicop()
.
loglik
the log-likelihood.
nobs
, an integer
with the number of observations that was used to fit
the model.
bicop_dist()
, plot.bicop()
, contour.bicop()
, dbicop()
,
pbicop()
, hbicop()
, rbicop()
## fitting a continuous model from simulated data
u <- rbicop(100, "clayton", 90, 3)
fit <- bicop(u, family_set = "par")
summary(fit)
## compare fit with true model
contour(fit)
contour(bicop_dist("clayton", 90, 3), col = 2, add = TRUE)
## fit a model from discrete data
x_disc <- qpois(u, 1) # transform to Poisson margins
plot(x_disc)
udisc <- cbind(ppois(x_disc, 1), ppois(x_disc - 1, 1))
fit_disc <- bicop(udisc, var_types = c("d", "d"))
summary(fit_disc)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.