Learn R Programming

copula (version 1.1-4)

fixParam: Fix a Subset of a Copula Parameter Vector

Description

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).

Usage

fixParam(param, fixed = TRUE)
fixedParam(copula) <- value

isFreeP(param) # S4 method for copula isFree(copula) ## and specific '*Copula' methods # S4 method for copula nParam(copula, freeOnly = FALSE) ## and specific '*Copula' methods

Value

fixParam(param) returns a numeric vector with attribute "fixed"(a logical, either TRUE

or vector of the same length as param) to indicate which components of param are to be held fixed or not.

fixedParam<-, a generic function, returns a

"copula" object with a partly fixed parameter (slot), i.e., corresponding to

fixParam() above.

Arguments

param

numeric parameter vector

fixed, value

logical vector of the same length as param indicating for each component param[j] if it is (going to be) fixed or not.

copula

a "copula" object.

freeOnly

logical (scalar) indicating if only free parameters should be counted or all.

See Also

fitCopula for fitting; t-copulas, tCopula(*, df.fixed=TRUE) now uses parameter fixing for "df".

setTheta() for setting or changing the non-fixed parameter values.

Examples

Run this code
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)))

Run the code above in your browser using DataLab