mhurdle (version 1.3-0)

mhurdle: Estimation of limited dependent variable models

Description

mhurdle fits a large set of models relevant when the dependent variable is 0 for a part of the sample.

Usage

mhurdle(
  formula,
  data,
  subset,
  weights,
  na.action,
  start = NULL,
  dist = c("ln", "n", "bc", "ihs"),
  h2 = FALSE,
  scaled = TRUE,
  corr = FALSE,
  robust = TRUE,
  check_gradient = FALSE,
  ...
)

Arguments

formula

a symbolic description of the model to be fitted,

data

a data.frame,

subset
weights
na.action
start

starting values,

dist

the distribution of the error of the consumption equation: one of "n" (normal), "ln" (log-normal) "bc" (box-cox normal) and "ihs" (inverse hyperbolic sinus transformation),

h2

if TRUE the second hurdle is effective, it is not otherwise,

scaled

if TRUE, the dependent variable is divided by its geometric mean,

corr

a boolean indicating whether the errors of the different equations are correlated or not,

robust

transformation of the structural parameters in order to avoid numerical problems,

check_gradient

if TRUE, a matrix containing the analytical and the numerical gradient for the starting values are returned,

further arguments.

Value

#' an object of class c("mhurdle", "maxLik").

A mhurdle object has the following elements :

  • coefficients: the vector of coefficients,

  • vcov: the covariance matrix of the coefficients,

  • fitted.values: a matrix of fitted.values, the first column being the probability of 0 and the second one the mean values for the positive observations,

  • logLik: the log-likelihood,

  • gradient: the gradient at convergence,

  • model: a data.frame containing the variables used for the estimation,

  • coef.names: a list containing the names of the coefficients in the selection equation, the regression equation, the infrequency of purchase equation and the other coefficients (the standard deviation of the error term and the coefficient of correlation if corr = TRUE,

  • formula: the model formula, an object of class Formula

  • call: the call,

  • rho: the lagrange multiplier test of no correlation.

Details

mhurdle fits models for which the dependent variable is zero for a part of the sample. Null values of the dependent variable may occurs because of one or several mechanisms : good rejection, lack of ressources and purchase infrequency. The model is described using a three-parts formula : the first part describes the selection process if any, the second part the regression equation and the third part the purchase infrequency process. y ~ 0 | x1 + x2 | z1 + z2 means that there is no selection process. y ~ w1 + w2 | x1 + x2 | 0 and y ~ w1 + w2 | x1 + x2 describe the same model with no purchase infrequency process. The second part is mandatory, it explains the positive values of the dependant variable. The dist argument indicates the distribution of the error term. If dist = "n", the error term is normal and (at least part of) the zero observations are also explained by the second part as the result of a corner solution. Several models described in the litterature are obtained as special cases :

A model with a formula like y~0|x1+x2 and dist="n" is the Tobit model proposed by TOBIN/58mhurdle.

y~w1+w2|x1+x2 and dist="l" or dist="t" is the single hurdle model proposed by CRAGG/71mhurdle. With dist="n", the double hurdle model also proposed by CRAGG/71mhurdle is obtained. With corr="h1" we get the correlated version of this model described by BLUNDELL/87mhurdle.

y~0|x1+x2|z1+z2 is the P-Tobit model of DEATO/IRISH/84mhurdle, which can be a single hurdle model if dist="t" or dist="l" or a double hurdle model if dist="n".

References

BLUNDELL/87mhurdle

CRAGG/71mhurdle

DEATO/IRISH/84mhurdle

TOBIN/58mhurdle

Examples

Run this code
# NOT RUN {
data("Interview", package = "mhurdle")

# independent double hurdle model
idhm <- mhurdle(vacations ~ car + size | linc + linc2 | 0, Interview,
              dist = "ln", h2 = TRUE, method = "bfgs")

# dependent double hurdle model
ddhm <- mhurdle(vacations ~ car + size | linc + linc2  | 0, Interview,
              dist = "ln", h2 = TRUE, method = "bfgs", corr = TRUE)

# a double hurdle p-tobit model
ptm <- mhurdle(vacations ~ 0 | linc + linc2 | car + size, Interview,
              dist = "ln", h2 = TRUE, method = "bfgs", corr = TRUE)
# }

Run the code above in your browser using DataLab