Learn R Programming

VGAM (version 0.9-1)

freund61: Freund's (1961) Bivariate Extension of the Exponential Distribution

Description

Estimate the four parameters of the Freund (1961) bivariate extension of the exponential distribution by maximum likelihood estimation.

Usage

freund61(la = "loge",  lap = "loge",  lb = "loge", lbp = "loge",
         ia = NULL, iap = NULL, ib = NULL, ibp = NULL,
         independent = FALSE, zero = NULL)

Arguments

la, lap, lb, lbp
Link functions applied to the (positive) parameters $\alpha$, $\alpha'$, $\beta$ and $\beta'$, respectively (the ``p'' stands for ``prime''). See Links for more choices.
ia, iap, ib, ibp
Initial value for the four parameters respectively. The default is to estimate them all internally.
independent
Logical. If TRUE then the parameters are constrained to satisfy $\alpha=\alpha'$ and $\beta=\beta'$, which implies that $y_1$ and $y_2$ are independent and each have an ordinary exponential distribution.
zero
An integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. The values must be from the set {1,2,3,4}. The default is none of them.

Value

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

Details

This model represents one type of bivariate extension of the exponential distribution that is applicable to certain problems, in particular, to two-component systems which can function if one of the components has failed. For example, engine failures in two-engine planes, paired organs such as peoples' eyes, ears and kidneys. Suppose $y_1$ and $y_2$ are random variables representing the lifetimes of two components $A$ and $B$ in a two component system. The dependence between $y_1$ and $y_2$ is essentially such that the failure of the $B$ component changes the parameter of the exponential life distribution of the $A$ component from $\alpha$ to $\alpha'$, while the failure of the $A$ component changes the parameter of the exponential life distribution of the $B$ component from $\beta$ to $\beta'$. The joint probability density function is given by $$f(y_1,y_2) = \alpha \beta' \exp(-\beta' y_2 - (\alpha+\beta-\beta')y_1)$$ for $0 < y_1 < y_2$, and $$f(y_1,y_2) = \beta \alpha' \exp(-\alpha' y_1 - (\alpha+\beta-\alpha')y_2)$$ for $0 < y_2 < y_1$. Here, all four parameters are positive, as well as the responses $y_1$ and $y_2$. Under this model, the probability that component $A$ is the first to fail is $\alpha/(\alpha+\beta)$. The time to the first failure is distributed as an exponential distribution with rate $\alpha+\beta$. Furthermore, the distribution of the time from first failure to failure of the other component is a mixture of Exponential($\alpha'$) and Exponential($\beta'$) with proportions $\beta/(\alpha+\beta)$ and $\alpha/(\alpha+\beta)$ respectively.

The marginal distributions are, in general, not exponential. By default, the linear/additive predictors are $\eta_1=\log(\alpha)$, $\eta_2=\log(\alpha')$, $\eta_3=\log(\beta)$, $\eta_4=\log(\beta')$.

A special case is when $\alpha=\alpha'$ and $\beta=\beta'$, which means that $y_1$ and $y_2$ are independent, and both have an ordinary exponential distribution with means $1 / \alpha$ and $1 / \beta$ respectively.

Fisher scoring is used, and the initial values correspond to the MLEs of an intercept model. Consequently, convergence may take only one iteration.

References

Freund, J. E. (1961) A bivariate extension of the exponential distribution. Journal of the American Statistical Association, 56, 971--977.

See Also

exponential.

Examples

Run this code
fdata <- data.frame(y1 = rexp(nn <- 200, rate = 4))
fdata <- transform(fdata, y2 = rexp(nn, rate = 8))
fit <-  vglm(cbind(y1, y2) ~ 1, fam = freund61, fdata, trace = TRUE)
coef(fit, matrix = TRUE)
Coef(fit)
vcov(fit)
head(fitted(fit))
summary(fit)

# y1 and y2 are independent, so fit an independence model
fit2 <- vglm(cbind(y1, y2) ~ 1, fam = freund61(indep = TRUE),
             fdata, trace = TRUE)
coef(fit2, matrix = TRUE)
constraints(fit2)
pchisq(2 * (logLik(fit)-logLik(fit2)),  # p-value
       df = df.residual(fit2) - df.residual(fit), lower.tail = FALSE)

Run the code above in your browser using DataLab