prodestWRDG: Estimate productivity - IV Wooldridge method In prodest: Production Function Estimation

Description

The `prodestWRDG()` 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

 `1` ``` prodestWRDG(Y, fX, sX, pX, idvar, timevar, cX = NULL) ```

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.

Details

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

• y_{it} = α + w_{it}β + k_{it}γ + ω_{it} + ε_{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 ε_{it} is a normally distributed idiosyncratic error term. The unobserved technical efficiency parameter ω_{it} evolves according to a first-order Markov process:

• ω_{it} = E(ω_{it} | ω_{it-1}) + u_{it} = g(ω_{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) ω_{it} = g(x_{it} , p_{it}): productivity is an unknown function g(.) of state and a proxy variables;

• b) E(ω_{it} | ω_{it-1)}=f[ω_{it-1}], productivity is an unknown function f[.] of lagged productivity, ω_{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} - α - w_{it}β - x_{it}γ - g(x_{it} , p_{it})

• r_{2it} = y_{it} - α - w_{it}β - x_{it}γ - 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}) = λ_0 + c(x_{it} , m_{it})λ. 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})

Following previous assumptions, being f(ω) = δ_0 + δ_1(c_{it}λ) + δ_2(c_{it}λ)^2 + ... + δ_G(c_{it}λ)^G, one can set δ_1 = G = 1 and estimate the model in a linear fashion - i.e., using a linear 2SLS model.

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: ω_{it} = y_{it} - (α + w_{it}β + k_{it}γ). `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.

Author(s)

Gabriele Rovigatti

References

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

Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25``` ``` data("chilean") # we fit a model with two free (skilled and unskilled), one state (capital) # and one proxy variable (electricity) WRDG.IV.fit <- prodestWRDG_GMM(chilean\$Y, fX = cbind(chilean\$fX1, chilean\$fX2), chilean\$sX, chilean\$pX, chilean\$idvar, chilean\$timevar) # show results WRDG.IV.fit # estimate a panel dataset - DGP1, various measurement errors - and run the estimation sim <- panelSim() WRDG.IV.sim1 <- prodestWRDG_GMM(sim\$Y, sim\$fX, sim\$sX, sim\$pX1, sim\$idvar, sim\$timevar) WRDG.IV.sim2 <- prodestWRDG_GMM(sim\$Y, sim\$fX, sim\$sX, sim\$pX2, sim\$idvar, sim\$timevar) WRDG.IV.sim3 <- prodestWRDG_GMM(sim\$Y, sim\$fX, sim\$sX, sim\$pX3, sim\$idvar, sim\$timevar) WRDG.IV.sim4 <- prodestWRDG_GMM(sim\$Y, sim\$fX, sim\$sX, sim\$pX4, sim\$idvar, sim\$timevar) # show results in .tex tabular format printProd(list(WRDG.IV.sim1, WRDG.IV.sim2, WRDG.IV.sim3, WRDG.IV.sim4), parnames = c('Free','State')) ```

prodest documentation built on June 20, 2018, 5:04 p.m.