NEWS | R Documentation |
Avoid long lines in vignette R output.
Replace sprintf()
by snprintf()
as it is going to
be deprecated in upcoming C environments, e.g., on macOS 13.
Fix all current compiler warnings
Fix non-UTF-8 accents in C code WARN on CRAN.
Decrease the large ‘inst/doc/*.html’ vignettes a bit more, for a smaller package size (for CRAN).
fitCopula(<mixCopula>)
now by default uses
estimate.variance = TRUE
also with free mixture
weights.
fitLambda()
gets new method "Schmidt.Stadtmueller"
.
fitMvdc()
works in more cases, e.g. with a mixCopula.
"mvdc"
class objects no longer inherit from "xcopula"
(a
copula) but from new "Xcopula"
(which just contains a copula).
using isTRUE()
and isFALSE()
instead of
identical(TRUE, .)
etc.
fitCopula(.., method="mpl")
now also catches errors in
var-cov matrix computations.
New loglikCopulaMany(pList, ..)
function for (more
efficiently) computing copula likelihoods for many parameter vectors / values.
For elliptic (t-, normal-) copulas, provide “permuted
Toeplitz” dispersion via new dispstrToep()
which allows to
specify a permutation of the d
variables / columns /
coordinates to have a Toeplitz correlation structure.
New arguments and defaults keepAttr=FALSE
and checkCorr=FALSE
for mvtnorm's Miwa()
should speed up
pCopula()
for normal- and t- copulas.
Empirical copula computations tweaks, preventing some erronous computations.
The pCopula()
methods for normal- and t-copulas now
allow to pass algorithm = .
to pkg mvtnorm's
functions. For lower dimensions, notably dimension
d \le 3
, the default is now to typically use a
non-random algorithm.
Such a default algorithm is also used in the (internal) derivative
for normal- and t-copulas, (dCdu()
calling dCduEllipCopula()
).
invisible improvement in internal Jscore()
for internal var.mpl()
computations.
For mixCopula
s, the default optimMethod()
for
fitCopula()
is now "L-BFGS-B"
.
When fitCopula(*, estimate.variance=TRUE)
fails during
optim(*, hessian=TRUE)
, a warning()
is signalled, and
kept as attribute of the NA
-valued vcov matrix.
Similarly when the hessian inversion fails, the warning message is
now returned with the NA
-valued vcov matrix.
Smoothed empCopula()
objects now have the right
sampling methods.
fitCopula(*, estimate.variance=FALSE)
now returns a
0 x 0
matrix as slot @ var.est
in all cases.
tweaks some of the regression tests.
For mixture copulas (mixCopula(.)
) estimation by
fm <- fitCopula(*, estimate.variance=TRUE)
now is more reasonable:
summary(fm)
and vcov(fm)
still stay in the w-space and
currently return a warning about not-yet implemented Jacobian
delta-method.
coef()
, vcov()
, and summary(fm)
now all have an
optional argument orig = TRUE
, which when set to false will
provide results on the ‘l-scale’ aka ‘lambda-scale’
(instead of the original ‘w-scale’) for the weights, such that
inference on the ‘l-scale’ is available.
mixCopula()
objects can now be fit (by
fitCopula()
) more generally, as the weights no longer need to
be kept fixed, thanks to Maechler's clr1()
parametrization,
and Rebecca Morger's B.Sc thesis.
When no start
parameter vector is specified in
fitCopula()
, the new (generic) function getIniParam()
is
used now; it notably has a method for "mixCopula"
copulas.
In the fitCopula*()
functions, the traceOpt
option now can be a positive integer (instead of just TRUE
and
FALSE
) to print trace info only every traceOpt
objective function evaluation.
corrected thinko in `freeParam<-`(<mixcopula>, v)
.
more tweaks on fixed / free parameter settings for "mixCopula".
evTestA()
got new options trace.lev
and
report.err
for reporting numerical intergration problems.
gofT2stat()
implements the two-sample test statistic
of RĂ©millard and Scaillet (2009).
rCopula()
of an empCopula
object failed
because sampling was done without replace = TRUE
.
cCopula()
now should work for indepCopula()
and
"moCopula"
objects (via internal rosenblatt()
.
fix ‘src/empcop.h’ and ‘man/fgmCopula.Rd’ inconsistencies, found by latest checks on CRAN.
exchTest()
gets new argument ties.method
.
a new vignette ‘HAXC’ on Hierarchical Archimax Copulas.
New simple classes and constructor fhCopula()
for
lower and upper Frechet–Hoeffding bounds (W
and M
),
see ?fhCopula
.
Empirical copulas now get an explicit class and constructor
empCopula()
.
Marshall-Olkin copulas for the bivariate case (d = 2
)
get a class representation and are constructed via moCopula()
.
In the case where loglikCopula(start, u=u,
copula=copula)
is +Inf
, as e.g., in the case of data with
duplicate columns (perfect correlation), the internal
fitCopStart()
and hence fitCopula()
tries harder to
work with the iTau()-generated start
values.
The plot()
method for copula objects uses a somewhat
experimental smart default for the main
title.
The "copula"
class now gets its dimension
slot
from the new virtual class "dimCopula"
which contains all
copulas with an explicit dimension
slot.
the "indepCopula"
now extends only "dimCopula"
and "parCopula"
and hence no longer has unuseful slots such
as parameter
.
contributors now are all mentioned in ‘DESCRIPTION’; and all are listed including their ORCID's.
gofCopula()
gets new argument test.method
.
cCopula()
now works for rotCopula
objects
and bivariate mixCopula
objects.
Bugfix in dCopula()
method of
empCopula(*, smoothing = "beta")
.
Better error messages when copula parameters are NA
(and hence, e.g. pCopula()
gives an error).
Bugfix in rCopula(, copula = mixCopula())
if the
weights are unit vectors.
mvdc(<rotCopula>, *)
now works, too.
fixed thinko in internal chkFun()
called e.g., by perspMvdc()
.
contourplot2()
now gets argument pretty
, to be
passed on, with a better (but not back-compatible) default (!labels
).
new margCopula()
constructor of marginal copulas,
currently for normal-, t-, and Archimedean copulas only.
cCopula(*, inverse=TRUE)
now also works for
non-Clayton Archmedean copulas.
C.n()
and several tests now get an optional
argument (ties.method
or similar) to specify what happens
with ties.
setTheta(cop, val)
now also works for a partially
fixed parameter elliptical copula.
Export the (formerly hidden) utilities isFree()
,
isFreeP()
, and nParam()
.
New rLatinHypercube()
and rAntitheticVariates()
utilities.
dCopula(u, copula, *)
now signals an error if
ncol(u)
and dim(copula)
differ.
corKendall()
now checks for NA
's by default
and then works pairwisely. It is now documented and exported.
As a consequence, etau(U, *)
now also works in the case
U
has missing values.
In the case of ties, several GOF tests now use a
better default method for dealing with ties in their calls to
pobs()
.
pobs(<zoo>, .)
continues working.
setTheta(<tCopula>, ..)
now works correctly with
free/non-free parts of the parameters.
fgmCopula()
fixed to work with rotCopula()
.
iTau()
fixed for joeCopula()
.
Improved warning messages in iTau()
and iRho()
.
rCopula(<frankCopula>)
now also works for the case of
large tau and d > 2
(via re-parametrized log series distribution).
pK(u, log.p=TRUE)
now correctly checks u
.
rotCopula(cop)
now does rotate in the default
case.
vcov(fitCopula(*, "mpl"))
now works (returning a
matrix of NA
s).
fitCopula(joeCopula(), *, method = "itau")
gave an
error instead of warning.
setTheta(<rotCopula>, <par>)
now works.
xvCopula(<rotCopula>, <data>)
now works.
fitMvdc()
now works again for a “df.fixed-tCopula”.
"mvdc"
methods for contour()
, persp()
and wireframe2()
now use ylim
correctly.
cCopula(<archmCopula>)
failed for 2-dimensional AMH,
Clayton, and Frank in the negative-\tau
case.
Also, cCopula()
sometimes returned a vector instead of an
n \times k
matrix (which ?cCopula
has promised
always).
pCopula()
was wrong (but gave a warning) for some
(unbalanced) nested archimedean copulas.
Adding an abstraction level, using (currently hidden) "setr"
and "getr" methods, allows to simplify class definition for
"khoudrajiCopula"
and fitCopula()
now to also work
e.g. for rotCopula(khoudrajiCopula(.), ..)
.
The coef()
method for fitCopula()
or
fitMvdc()
results can get the matrix of parameters
and their standard errors by the new option SE = TRUE
.
summary(fitCopula(*))
and summary(fitMvdc(*))
have a nicer print()
method and print more than just
printing the fitted objects. Note that
printing fitCopula(*)
or fitMvdc(*)
no longer
computes and prints standard errors ("Std. Error"
), but
printing summary(fit..(*))
does (see above).
improved documentation about pK()
and qK()
.
mixCopula()
and "mixCopula"
class for
arbitrary finite mixtures of copulas.
splom2()
now works when a single “global”
color is specified.
C.n(u, X, *)
now has X
as second argument,
calls pobs(X)
and then F.n(*,*)
; previously,
C.n
and F.n
were practically equivalent, which has
been confusing.
pobs()
is more flexible, accepting numeric vectors, and
e.g., keeping "xts"
and "zoo"
class attributes.
improved R markdown vignettes.
Internally, notably for etau()
and "itau"
fitting, make
use of fast Kendall's tau from package pcaPP (via hidden
corKendall()
).
fitCopula()
gets now method "itau.mpl"
for
tCopula
s, which implements the robust estimation method of
Mashal and Zeevi (2002).
various improvements in gofCopula()
related to the
alternative test statistics (method != "Sn"
).
new xvCopula()
function: cross-validated copula fitting
for model selection.
Asymmetric copulas are now better implemented; previous
asymCopula()
and asymExplicitCopula()
are deprecated
and to be replaced by khoudrajiCopula()
.
“Rotated” copulas, i.e., generalizations of
“survival” copulas, are now available via rotCopula()
.
gofEVCopula()
's default optim.method
has been
changed from "Nelder-Mead"
to "BFGS"
in line with
fitCopula()
and because Nelder-Mead is warned against in the
1-dimensional case.
new getAname()
useful e.g., in htrafo()
.
Parts of a parameter vector can be kept fixed
(“known”), see fixedPar
. The "tCopula"
and "tevCopula"
classes consequently no longer have a
df
slot.
Functions deprecated (.Deprecated
) since 2012, namely,
K
, beta.hat
, calibKendallsTau
,
calibSpearmansRho
, kendallsTau
, spearmansRho
,
genInv
, genFun
, genFunDer1
, genFunDer2
,
Afun
, AfunDer
,
Anfun
, dcopula
, pcopula
, rcopula
,
dmvdc
, pmvdc
, and rmvdc
are now defunct (the user still sees them and gets a useful
error message from .Defunct()
!).
Function tailindex
is deprecated in favor of new
lambda()
; gofMB()
and gofPB()
calls are
deprecated and to be replaced by gofCopula(.., simulation = *)
.
Function rtrafo()
has now been deprecated, users
should work with cCopula()
instead.
Various improvements in data visualization tools such as
contour()
, persp()
, contourplot2()
,
pairs2()
, wireframe2()
, cloud2()
and
splom2()
.
qK()
gets log.p
option.
New demo "NALC" on nested Archimedean Levy copulas
Explicitly import from "base packages"
contour(<mvdc>, ..)
gets new default
box01=FALSE
, as a [0,1]^2
box does not make sense for
general multivariate distributions.
coeffG()
is exported (though still partly subject to change)
new (rmarkdown -> knitr) vignette wild_animals
from
former demo.
pCopula(*, cop)
for normal- or t- copulas cop
now accepts optional arguments to be passed to the underlying
(numerical integration) algorithm from package mvtnorm.
fixed the (dontrun) 3d example of gofCopula
.
New demo on tail compatibility
lsum(): also work for vectors and when result is zero,
i.e. log(0) == -Inf
.
Fix bug which did not allow to set non-default
optim.method
in gofCopula()
.
Not fully back-compatible change: gofCopula()
now
passes all extra arguments via ...
to fitCopula()
.
Before, gofPB()
passed them to the trafo.method.
The default for the optional estimate.variance
argument
of fitCopula()
and fitMvcd()
now is TRUE
only if
the optimization converged.
rtrafo()
is more efficient for "normalCopula".
fitMvdc()
now also works when margin parameter has
length >1.
fitMvdc()
gains optional arguments lower
and
upper
for specifying box-constraints to optim().
Fixes some border cases, notably psi()
for negative tau
Gumbel, Clayton and AMH copulas,
debye[12]()
functions improvements (e.g., Inf
)
New log1pexp()
from Rmpfr's vignette
‘log1mexp’.
rho(<amhCopula>)
now numerically stable, also works for
\theta \approx 0
, using Martin's beautiful
formula, as documented in the new vignette
‘rhoAMH-dilog.Rnw’.
Purely numerical .psiFrank()
etc; accuracy improvements for
psi()
, rho()
, tau()
for small |\alpha|
for Frank.
New cospi2()
, tanpi()
; iTau()
and
iRho()
have a smaller tolerance of 1e-7
and hence are
more accurate where they use inversion.
polylog(x, 2)
now uses gsl's dilog()
.
pCopula()
now works for a t-copula with df=Inf
.
rtrafo()
with new option 'inverse=TRUE', hence can be
used for sampling.
Fixed overflow bug (seg.fault) for large n^2 p
Fixed qqplot2()
case
pobs(*, lower.tail)
new optional argument.
new optional argument indepC.maybe
to (Archimedean)
copula constructors.
empirical copula functions C.n()
and F.n()
all.equal(*, tol)
adaption to upcoming R changes.
a bug fix version, as 0.999-6
had in one case
accidentally introduced a NON-back compatible version in
gofCopula()
.
gofCopula()
gets a new trafo.method
argument,
now also can use (new) htrafo()
in addition to Rosenblatt's
transform rtrafo
.
...
new back-compatibility feature which allows older R scripts (notably the 2010 JSS paper) to still run without errors.
...
...
...
...
After the copula week at ETH (July 9–13):
Renaming (and deprecation) “orgy”: ... ...
...
...
...
dK()
, pK()
, qK()
, rK()
: Kendall's
distribution functions.
...
export log1mexp()
added facilities for Hofert & Maechler's graphical GOF testing.
fixed corner cases of dcopulat()
and dcopulaNormal()
.
polyG()
and dsumSibuya()
improvements; possibly
using Rmpfr.
fixed "boundary overrun" bug in indepence tests built on empirical copula.
Big merge of former CRAN packages nacopula (Maechler and Hofert) and copula (Yan and Kojadinovic) into new “super package”.
new class "Copula"
, with [dpr]copula()
methods
for "nacopula".