R: Fix a Subset of a Copula Parameter Vector

fixParam {copula} | R Documentation

## 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 signature 'copula'
    isFree(copula)
    ## and specific '*Copula' methods
    ## S4 method for signature 'copula'
    nParam(copula, freeOnly = FALSE)
    ## and specific '*Copula' methods

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

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

### 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

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

[Package copula version 1.0-1 Index]