Learn R Programming

prodest (version 1.0.1)

prodestWRDG_GMM: Estimate productivity - Wooldridge method

Description

The prodestWRDG_GMM() function accepts at least 6 objects (id, time, output, free, state and proxy variables), and returns a prod object of class S3 with three elements: (i) a list of model-related objects, (ii) a list with the data used in the estimation and estimated vectors of first-stage residuals, and (iii) a list with the estimated parameters and their bootstrapped standard errors.

Usage

prodestWRDG_GMM(Y, fX, sX, pX, idvar, timevar, cX = NULL, tol = 1e-100)

Arguments

Y

the vector of value added log output.

fX

the vector/matrix/dataframe of log free variables.

sX

the vector/matrix/dataframe of log state variables.

pX

the vector/matrix/dataframe of log proxy variables.

cX

the vector/matrix/dataframe of control variables. By default cX= NULL.

idvar

the vector/matrix/dataframe identifying individual panels.

timevar

the vector/matrix/dataframe identifying time.

tol

optimizer tolerance. By default tol = 1e-100.

Value

The output of the function prodestWRDG is a member of the S3 class prod. More precisely, is a list (of length 3) containing the following elements:

Model, a list containing:

  • method: a string describing the method ('WRDG').

  • elapsed.time: time elapsed during the estimation.

  • opt.outcome: optimization outcome.

Data, a list containing:

  • Y: the vector of value added log output.

  • free: the vector/matrix/dataframe of log free variables.

  • state: the vector/matrix/dataframe of log state variables.

  • proxy: the vector/matrix/dataframe of log proxy variables.

  • control: the vector/matrix/dataframe of log control variables.

  • idvar: the vector/matrix/dataframe identifying individual panels.

  • timevar: the vector/matrix/dataframe identifying time.

Estimates, a list containing:

  • pars: the vector of estimated coefficients.

  • std.errors: the vector of bootstrapped standard errors.

Members of class prod have an omega method returning a numeric object with the estimated productivity - that is: \(\omega_{it} = y_{it} - (\alpha + w_{it}\beta + k_{it}\gamma)\). FSres method returns a numeric object with the residuals of the first stage regression, while summary, show and coef methods are implemented and work as usual.

Details

Consider a Cobb-Douglas production technology for firm \(i\) at time \(t\)

  • \(y_{it} = \alpha + w_{it}\beta + k_{it}\gamma + \omega_{it} + \epsilon_{it}\)

where \(y_{it}\) is the (log) output, w_it a 1xJ vector of (log) free variables, k_it is a 1xK vector of state variables and \(\epsilon_{it}\) is a normally distributed idiosyncratic error term. The unobserved technical efficiency parameter \(\omega_{it}\) evolves according to a first-order Markov process:

  • \(\omega_{it} = E(\omega_{it} | \omega_{it-1}) + u_{it} = g(\omega_{it-1}) + u_{it}\)

and \(u_{it}\) is a random shock component assumed to be uncorrelated with the technical efficiency, the state variables in \(k_{it}\) and the lagged free variables \(w_{it-1}\). Wooldridge method allows to jointly estimate OP/LP two stages jointly in a system of two equations. It relies on the following set of assumptions:

  • a) \(\omega_{it} = g(x_{it} , p_{it})\): productivity is an unknown function \(g(.)\) of state and a proxy variables;

  • b) \(E(\omega_{it} | \omega_{it-1)}=f[\omega_{it-1}]\), productivity is an unknown function \(f[.]\) of lagged productivity, \(\omega_{it-1}\).

Under the above set of assumptions, It is possible to construct a system gmm using the vector of residuals from

  • \(r_{1it} = y_{it} - \alpha - w_{it}\beta - x_{it}\gamma - g(x_{it} , p_{it}) \)

  • \(r_{2it} = y_{it} - \alpha - w_{it}\beta - x_{it}\gamma - f[g(x_{it-1} , p_{it-1})]\)

where the unknown function \(f(.)\) is approximated by a n-th order polynomial and \(g(x_{it} , m_{it}) = \lambda_0 + c(x_{it} , m_{it})\lambda\). In particular, \(g(x_{it} , m_{it})\) is a linear combination of functions in \((x_{it} , m_{it})\) and \(c_{it}\) are the addends of this linear combination. The residuals \(r_{it}\) are used to set the moment conditions

  • \(E(Z_{it}*r_{it}) =0\)

with the following set of instruments:

  • \(Z1_{it} = (1, w_{it}, x_{it}, c_{it})\)

  • \(Z2_{it} = (w_{it-1}, c_{it}, c_{it})\)

References

Wooldridge, J M (2009). "On estimating firm-level production functions using proxy variables to control for unobservables." Economics Letters, 104, 112-114.

Examples

Run this code
# NOT RUN {
    data("chilean")

    # we fit a model with two free (skilled and unskilled), one state (capital)
    # and one proxy variable (electricity)

    WRDG.GMM.fit <- prodestWRDG_GMM(chilean$Y, fX = cbind(chilean$fX1, chilean$fX2),
                              chilean$sX, chilean$pX, chilean$idvar, chilean$timevar)

    # show results
    WRDG.GMM.fit

    
# }
# NOT RUN {
      # estimate a panel dataset - DGP1, various measurement errors - and run the estimation
      sim <- panelSim()

      WRDG.GMM.sim1 <- prodestWRDG_GMM(sim$Y, sim$fX, sim$sX, sim$pX1, sim$idvar, sim$timevar)
      WRDG.GMM.sim2 <- prodestWRDG_GMM(sim$Y, sim$fX, sim$sX, sim$pX2, sim$idvar, sim$timevar)
      WRDG.GMM.sim3 <- prodestWRDG_GMM(sim$Y, sim$fX, sim$sX, sim$pX3, sim$idvar, sim$timevar)
      WRDG.GMM.sim4 <- prodestWRDG_GMM(sim$Y, sim$fX, sim$sX, sim$pX4, sim$idvar, sim$timevar)

      # show results in .tex tabular format
      printProd(list(WRDG.GMM.sim1, WRDG.GMM.sim2, WRDG.GMM.sim3, WRDG.GMM.sim4),
                      parnames = c('Free','State'))
    
# }
# NOT RUN {
 
# }

Run the code above in your browser using DataLab