fgm {VGAM}R Documentation

Farlie-Gumbel-Morgenstern's Bivariate Distribution Family Function

Description

Estimate the association parameter of Farlie-Gumbel-Morgenstern's bivariate distribution using maximum likelihood estimation.

Usage

fgm(lapar="identity", earg=list(), iapar=NULL, method.init=1)

Arguments

lapar Link function applied to the association parameter alpha, which is real. See Links for more choices.
earg List. Extra argument for the link. See earg in Links for general information.
iapar Numeric. Optional initial value for alpha. By default, an initial value is chosen internally. If a convergence failure occurs try assigning a different value. Assigning a value will override the argument method.init.
method.init An integer with value 1 or 2 which specifies the initialization method. If failure to converge occurs try the other value, or else specify a value for ia.

Details

The cumulative distribution function is

P(Y1 <= y1, Y2 <= y2) = y1 * y2 * ( 1 + alpha * (1 - y1) * (1 - y2) )

for real alpha (the range is data-dependent). The support of the function is the unit square. The marginal distributions are the standard uniform distributions. When alpha=0 then the random variables are independent.

A variant of Newton-Raphson is used, which only seems to work for an intercept model. It is a very good idea to set trace=TRUE. This VGAM family function is prone to numerical difficulties.

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 0.5. This is because each marginal distribution corresponds to a standard uniform distribution.

Author(s)

T. W. Yee

References

Castillo, E., Hadi, A. S., Balakrishnan, N. Sarabia, J. S. (2005) Extreme Value and Related Models with Applications in Engineering and Science, Hoboken, N.J.: Wiley-Interscience.

See Also

frank, morgenstern.

Examples

n = 1000
ymat = cbind(runif(n), runif(n))
## Not run: plot(ymat)
fit = vglm(ymat ~ 1, fam=fgm, trace=TRUE)
fit = vglm(ymat ~ 1, fam=fgm, trace=TRUE, crit="coef")
coef(fit, matrix=TRUE)
Coef(fit)
fitted(fit)[1:5,]

[Package VGAM version 0.7-3 Index]