# bifrankcop: Frank's Bivariate Distribution Family Function In VGAM: Vector Generalized Linear and Additive Models

 bifrankcop R 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(Y1 <= y1, Y2 <= y2) = H_{alpha}(y1,y2) = log_{alpha} [1 + (alpha^(y1)-1)*(alpha^(y2)-1)/ (alpha-1)]

for alpha != 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 y2=y1 and y2=1-y1. When alpha>1 then h_{1/alpha}(1-y_1,y_2).

alpha=1 then H(y1,y2)=y1*y2, i.e., uniform on the unit square. As alpha approaches 0 then H(y1,y2)=min(y1,y2). As alpha approaches infinity then H(y1,y2)=max(0,y1+y2-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.

T. W. Yee

### References

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

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