Learn R Programming

VGAM (version 0.9-2)

biclaytoncop: Clayton Copula (Bivariate) Family Function

Description

Estimate the correlation parameter of the (bivariate) Clayton copula distribution by maximum likelihood estimation.

Usage

biclaytoncop(lalpha = "loge", ialpha = NULL, imethod = 1,
             parallel = FALSE, zero = NULL)

Arguments

lalpha, ialpha, imethod
Details at CommonVGAMffArguments. See Links for more link function choices.
parallel, zero
Details at CommonVGAMffArguments. If parallel = TRUE then the constraint is also applied to the intercept.

Value

  • An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm and vgam.

Details

The cumulative distribution function is $$P(u_1, u_2;\alpha) = (u_1^{-\alpha} + u_2^{-\alpha}-1)^{-1/\alpha}$$ for $0 \leq \alpha$. The support of the function is the interior of the unit square; however, values of 0 and/or 1 are not allowed (currently). The marginal distributions are the standard uniform distributions. When $\alpha = 0$ the random variables are independent. This VGAM family function can handle multiple responses, for example, a six-column matrix where the first 2 columns is the first out of three responses, the next 2 columns being the next response, etc.

References

Clayton, D. (1982) A model for association in bivariate survival data. Journal of the Royal Statistical Society, Series B, Methodological, 44, 414--422. Stober, J. and Schepsmeier, U. (2013) Derivatives and Fisher information of bivariate copulas. Statistical Papers.

See Also

rbiclaytoncop, dbiclaytoncop, kendall.tau.

Examples

Run this code
ymat <- rbiclaytoncop(n = (nn <- 1000), alpha = exp(2))
bdata <- data.frame(y1 = ymat[, 1],
                    y2 = ymat[, 2],
                    y3 = ymat[, 1],
                    y4 = ymat[, 2],
                    x2 = runif(nn))

summary(bdata)
plot(ymat, col = "blue")
fit1 <- vglm(cbind(y1, y2, y3, y4) ~ 1,  # 2 responses, e.g., (y1,y2) is the first
             biclaytoncop, data = bdata,
             trace = TRUE, crit = "coef")  # Sometimes a good idea

coef(fit1, matrix = TRUE)
Coef(fit1)
head(fitted(fit1))
summary(fit1)

# Another example; alpha is a function of x2
bdata <- transform(bdata, alpha = exp(-0.5 + x2))
ymat <- rbiclaytoncop(n = nn, alpha = with(bdata, alpha))
bdata <- transform(bdata, y5 = ymat[, 1],
                          y6 = ymat[, 2])
fit2 <- vgam(cbind(y5, y6) ~ s(x2), data = bdata,
             biclaytoncop(lalpha = "loge"), trace = TRUE)
plot(fit2, lcol = "blue", scol = "orange", se = TRUE, las = 1)

Run the code above in your browser using DataLab