Fix a Subset of a Copula Parameter Vector
It is sometimes useful to keep fixed some components of a copula
parameter vector whereas the others are “free” and will be
estimated, e.g., by fitCopula.
The first two functions set or modify the “fixedness”, whereas
isFree(), isFreeP() and nParam() are utilities
enquiring about the “fixedness” of the parameters (of a copula).
fixParam(param, fixed = TRUE) fixedParam(copula) <- value isFreeP(param) ## S4 method for signature 'copula' isFree(copula) ## and specific '*Copula' methods ## S4 method for signature 'copula' nParam(copula, freeOnly = FALSE) ## and specific '*Copula' methods
param |
numeric parameter vector |
fixed, value |
logical vector of the same length as |
copula |
a |
freeOnly |
logical (scalar) indicating if only free parameters should be counted or all. |
fixedParam<-, a generic function, returns a
"copula" object
with a partly fixed parameter (slot), i.e., corresponding to
fixParam() above.
setTheta() for setting or changing the
non-fixed parameter values.
nc1 <- normalCopula(dim = 3, fixParam(c(.6,.3,.2), c(TRUE, FALSE,FALSE)),
dispstr = "un")
nc1
nc13 <- nc12 <- nc1
fixedParam(nc12) <- c(TRUE, TRUE, FALSE) ; nc12
fixedParam(nc13) <- c(TRUE, FALSE, TRUE) ; nc13
set.seed(17); x <- rCopula(100, nc1)
summary(f.13 <- fitCopula(nc13, x, method = "ml"))
f.13@copula # 'rho.2' is estimated; the others kept fixed
## Setting to 'FALSE' (removes the "fixed" parts completely):
nc0 <- nc13; fixedParam(nc0) <- FALSE
nc0
stopifnot(is.null(attributes(nc0@parameters)))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.