Re: [R] heckit / tobit estimation

From: Achim Zeileis <>
Date: Wed 20 Apr 2005 - 22:31:44 EST


> 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?

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".

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

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...

> 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" ) )
> }

Probably, I would allow both, I guess. Thus go for something like 3).

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

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.

Z mailing list PLEASE do read the posting guide! Received on Wed Apr 20 22:38:18 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:17 EST