Skip to content

heckit / tobit estimation

3 messages · Achim Zeileis, Arne Henningsen

#
Dear All,

we (Ott Toomet and I) would like to add  functions for maximum likelihood (ML) 
estimations of generalized tobit models of type 2 and type 5 (*see below)  in 
my R package for microeconomic analysis "micEcon". So far we have called 
these functions "tobit2( )" and "tobit5( )". 
Are these classifications well known? How are these functions called in other 
software packages? Should we keep these names or does anybody have better 
suggestions? 

(* T. Amemiya (1984): Tobit models: a survey, Journal of Econometrics, and
T. Amemiya (1985): Advanced Econometrics)

Furthermore, the generalized tobit model of type 2 is identical to the Heckman 
model. Until now the package "micEcon" contains a function "heckit( )" that 
performs a two-step estimation of the Heckman / Tobit type 2 model. The 
difference between "heckit( )" and "tobit2( )" is that "heckit( )" performs a 
two-step estimation, while "tobit2( )" performs a maximum likelihood 
estimation. At the moment we are debating how to construct the user 
interface. These are our suggestions:

1) Keep it as it is:
heckit( ) does a two-step estimation and
tobit2( ) does a ML estimation

2) Having just one function:
tobit2( ..., method = "2step" ) does a two-step estimation
tobit2( ..., method = "ML" ) does a ML estimation
This has the advantage that other methods like a weighted two-step least 
squares can be added easily.

3) As suggestion 2). Argument "method" has the default "ML" and an
additional a wrapper function is added:
heckit <- function( ... ) {
   return( tobit2( ..., method = "2step" ) )
}

Does anybody have a better suggestion?
How is this implemented in other software packages?
What do you think is the best option?

Thanks,
Arne Henningsen
Ott Toomet
#
Arne:
I don't know them, but I'm certainly not an expert in tobit
estimation...
Generally, I prefer functions that have a name like tobit() and where
the rest can be specified by parameters, that can be more easily
understood than abstract categorizations like "type 2" and "type 5".
OK, I haven't checked those now, but I guess that it should be possible
to figure out first what the common *conceptual* properties of the
different models are and then turn them into *computational* tools. My
guess would be that type 2 and type 5 are not the best conceivable
abstractions of the underlying conceptual properties...
Probably, I would allow both, I guess. Thus go for something like 3).
How did you implement it, btw? Christian Kleiber and I have been playing
around with some tobit models which we fitted by interfacing survreg().
We also intend(ed) to write some tobit() function for our AER project
(which I have told you about offline, I think). Maybe we could pool our
efforts here, such that the functionality is not duplicated...but we
should discuss that offline.

Best,
Z
#
On Wednesday 20 April 2005 14:31, Achim Zeileis wrote:
Just having a single tobit() function sounds good. However, the different 
types of tobit models require different arguments, e.g. something like
   tobit1( formula, ... )
   tobit2( selection, formula, ... )
   tobit3( formula1, formula2, ... )
   tobit4( formula1, formula2, formula3, ... )
   tobit5( selection, formula1, formula2, ... )
where "selection" are binary selection models and "formula*" are censored 
equations.
I think having a function
   tobit( selection = NULL, formula1 = NULL, formula2 = NULL, 
      formula3 = NULL, ... )
and taking the model type according to which arguments are non-NULL might also 
be confusing. What do you think?
The 2-step method follows exactly the proposal of Heckman: a) a probit 
estimation using glm(), b) an OLS using lm() with Inverse Mills Ratio as 
additional regressor. The coefficient covariance matrix and, thus, also the 
standard error of the coefficients are calculated using the formula in 
Greene: Econometric Analysis, 5th edition, p. 785.
The ML estimation was written by Ott. The likelihood value is maximized using 
a Newton-Raphson algorithm, which is implement by him in a supplementary 
function and will be available in the next version of micEcon.