bifrankcop: Frank's Bivariate Distribution Family Function

View source: R/family.bivariate.R

bifrankcopR Documentation

Frank's Bivariate Distribution Family Function

Description

Estimate the association parameter of Frank's bivariate distribution by maximum likelihood estimation.

Usage

bifrankcop(lapar = "loglink", iapar = 2, nsimEIM = 250)

Arguments

lapar

Link function applied to the (positive) association parameter \alpha. See Links for more choices.

iapar

Numeric. Initial value for \alpha. If a convergence failure occurs try assigning a different value.

nsimEIM

See CommonVGAMffArguments.

Details

The cumulative distribution function is

P(Y_1 \leq y_1, Y_2 \leq y_2) = H_{\alpha}(y_1,y_2) = \log_{\alpha} [1 + (\alpha^{y_1}-1)(\alpha^{y_2}-1)/ (\alpha-1)]

for \alpha \ne 1. Note the logarithm here is to base \alpha. The support of the function is the unit square.

When 0 < \alpha < 1 the probability density function h_{\alpha}(y_1,y_2) is symmetric with respect to the lines y_2=y_1 and y_2=1-y_1. When \alpha > 1 then h_{\alpha}(y_1,y_2) = h_{1/\alpha}(1-y_1,y_2).

\alpha=1 then H(y_1,y_2) = y_1 y_2, i.e., uniform on the unit square. As \alpha approaches 0 then H(y_1,y_2) = \min(y_1,y_2). As \alpha approaches infinity then H(y_1,y_2) = \max(0, y_1+y_2-1).

The default is to use Fisher scoring implemented using rbifrankcop. For intercept-only models an alternative is to set nsimEIM=NULL so that a variant of Newton-Raphson is used.

Value

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

Note

The response must be a two-column matrix. Currently, the fitted value is a matrix with two columns and values equal to a half. This is because the marginal distributions correspond to a standard uniform distribution.

Author(s)

T. W. Yee

References

Genest, C. (1987). Frank's family of bivariate distributions. Biometrika, 74, 549–555.

See Also

rbifrankcop, bifgmcop, simulate.vlm.

Examples

## Not run: 
ymat <- rbifrankcop(n = 2000, apar = exp(4))
plot(ymat, col = "blue")
fit <- vglm(ymat ~ 1, fam = bifrankcop, trace = TRUE)
coef(fit, matrix = TRUE)
Coef(fit)
vcov(fit)
head(fitted(fit))
summary(fit)

## End(Not run)

VGAM documentation built on Sept. 19, 2023, 9:06 a.m.