heckit                package:micEcon                R Documentation

_2-_s_t_e_p _H_e_c_k_m_a_n (_h_e_c_k_i_t) _e_s_t_i_m_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     'heckit' performs a 2-step Heckman (heckit) estimation that
     corrects for non-random sample selection.

_U_s_a_g_e:

        heckit( formula, probitformula, data, inst = NULL, print.level = 0 )

_A_r_g_u_m_e_n_t_s:

 formula: formula to be estimated

probitformula: formula for the probit estimation (1st step)

    data: a data frame containing the variables in the model

    inst: one-sided formula specifying instrumental variables for a
          2SLS/IV estimation on the second step.

print.level: this argument determines the level of printing which is
          done during the minimization process.  The default value of
          '0' means that no printing occurs, a value of '1' means that
          heckit reports what is currently done.

_V_a_l_u_e:

     'heckit' returns an object of class 'heckit' containing following
     elements:

    coef: estimated coefficients, standard errors, t-values and
          p-values

    vcov: variance covariance matrix of the estimated coefficients

  probit: object of class 'glm' that contains the results of the 1st
          step (probit estimation).

      lm: object of class 'lm' that contains the results of the 2nd
          step (linear estimation). Note: the standard errors of this
          estimation are biased, because they do not account for the
          estimation of gamma in the 1st step estimation (the correct
          standard errors are returned in 'coef'

   sigma: the estimated sigma, the standard error of the residuals.

     rho: the estimated rho, see Greene (2003, p. 784).

probitLambda: the lambdas based on the results of the 1sr step probit
          estimation (also known as inverse Mills ratio).

probitDelta: the deltas based on the results of the 1sr step probit
          estimation.

_A_u_t_h_o_r(_s):

     Arne Henningsen ahenningsen@agric-econ.uni-kiel.de

_R_e_f_e_r_e_n_c_e_s:

     Greene, W. H. (2003) _Econometric Analysis, Fifth Edition_,
     Prentice Hall.

     Johnston, J. and J. DiNardo (1997) _Econometric Methods, Fourth
     Edition_, McGraw-Hill.

     Wooldridge, J. M. (2003) _Introductory Econometrics: A Modern
     Approach, 2e_, Thomson South-Western.

_S_e_e _A_l_s_o:

     'lm', 'glm', 'binomial'

_E_x_a_m_p_l_e_s:

     ## Greene( 2003 ): example 22.8, page 786
     data( Mroz87 )
     Mroz87$kids  <- ( Mroz87$kids5 + Mroz87$kids618 > 0 )
     greene <- heckit( wage ~ exper + I( exper^2 ) + educ + city,
        lfp ~ age + I( age^2 ) + faminc + kids + educ, Mroz87 )
     summary( greene )        # print summary
     summary( greene$probit ) # summary of the 1st step probit estimation
                              # this is Example 21.4, p. 681f
     greene$sigma             # estimated sigma
     greene$rho               # estimated rho

     ## Wooldridge( 2003 ): example 17.5, page 590
     data( Mroz87 )
     wooldridge <- heckit( log( wage ) ~ educ + exper + I( exper^2 ),
        lfp ~ nwifeinc + educ + exper + I( exper^2 ) + age + kids5 + kids618, Mroz87 )
     summary( wooldridge )        # summary of the 1st step probit estimation
                                  # (Example 17.1, p. 562f) and 2nd step OLS regression
     wooldridge$sigma             # estimated sigma
     wooldridge$rho               # estimated rho

     ## example using random numbers
     nObs <- 1000
     myData <- data.frame( no = c( 1:nObs ), x1 = rnorm( nObs ), x2 = rnorm( nObs ) )
     myData$y <- 2 + myData$x1 + 0.9 * rnorm( nObs )
     myData$s <- ( 2 * myData$x1 + myData$x2 + 4 * rnorm( nObs ) - 0.2 ) > 0
     myData$y[ !myData$s ] <- NA
     myHeckit <- heckit( y ~ x1, s ~ x1 + x2, myData, print.level = 1 )

     ## example using random numbers with IV/2SLS estimation
     nObs <- 1000
     myData <- data.frame( no = c( 1:nObs ), x1 = rnorm( nObs ), x2 = rnorm( nObs ),
        u = 0.5 * rnorm( nObs ) )
     myData$w <- 1 + myData$x1 + 0.2 * myData$u + 0.1 * rnorm( nObs )
     myData$y <- 2 + myData$w + myData$u
     myData$s <- ( 2 * myData$x1 + myData$x2 + 4 * rnorm( nObs ) - 0.2 ) > 0
     myData$y[ !myData$s ] <- NA
     myHeckit <- heckit( y ~ w, s ~ x1 + x2, data = myData,
        inst = ~ x1, print.level = 1 )

