JLMS estimator

After estimating the expected inefficiency \(\mu\) using methods of moment (MOM) or quasi-likelihood estimation (QLE), [1] we then employ JLMS estimator proposed by Jondrow et al. (1982) to estimate the firm-specific inefficiencies (Johnson and Kuosmanen, 2015). Under the assumption of a normally distributed error term and a half-normally distributed inefficiency term, JLMS formulates the conditional distribution of inefficiency \(u_i\), given \(\varepsilon_i\), and propose the inefficiency estimator as the conditional mean \(E[u_i|\varepsilon_i]\).

Following Kumbhakar & Lovell (2000), the conditional expected value of inefficiency \(E[u_i|\varepsilon_i]\) for production function and cost function are shown as follow, respectively:

  • Production function

\begin{align*} E[u_i \mid \varepsilon_i] &= \mu_{*i} + \sigma_* \Bigg[ \frac{\phi(-\mu_{*i}/\sigma_*)}{1-\Phi(-\mu_{*i}/\sigma_*)} \Bigg] \\ &= \sigma_* \Bigg[ \frac{\phi(\varepsilon_i \lambda/\sigma)}{1-\Phi(\varepsilon_i \lambda/\sigma)} - \frac{\varepsilon_i \lambda}{\sigma} \Bigg]. \end{align*}

where \(\mu_*= -\varepsilon \sigma_u^2/\sigma^2\), \(\sigma_*^2 = \sigma_u^2\sigma_v^2/\sigma^2\), \(\lambda = \sigma_u/\sigma_v\), and \(\sigma^2 = \sigma_u^2 +\sigma_v^2\). The symbol \(\phi\) is the standard normal density function, and the symbol \(\Phi\) denotes the cumulative distribution function of the standard normal distribution.

  • Cost function

\begin{align*} E[u_i \mid \varepsilon_i]&= \mu_{*i} + \sigma_* \Bigg[ \frac{\phi(-\mu_{*i}/\sigma_*)}{1-\Phi(-\mu_{*i}/\sigma_*)} \Bigg] \\ &= \sigma_* \Bigg[ \frac{\phi(\varepsilon_i \lambda/\sigma)}{1-\Phi(-\varepsilon_i \lambda/\sigma)} + \frac{\varepsilon_i \lambda}{\sigma} \Bigg]. \end{align*}

where \(\mu_*= \varepsilon \sigma_u^2/\sigma^2\), \(\sigma_*^2 = \sigma_u^2\sigma_v^2/\sigma^2\), \(\lambda = \sigma_u/\sigma_v\), and \(\sigma^2 = \sigma_u^2 +\sigma_v^2\).

The firm-level technical efficiency (TE) is then measured based on the estimated conditional mean. For different model, the technical efficiency is calculated as

  • Production function

    • Multiplicative model: \(\text{TE} = \exp(-E[u_i \mid \varepsilon_i])\)

    • Additive model: \(\text{TE} = \frac{y - E[u_i \mid \varepsilon_i]}{y}\)

  • Cost function

    • Multiplicative model: \(\text{TE} = \exp(E[u_i \mid \varepsilon_i])\)

    • Additive model: \(\text{TE} = \frac{y+ E[u_i \mid \varepsilon_i]}{y}\)

Example: CNLS [.ipynb]

# import packages
from pystoned import CNLS, StoNED
from pystoned.dataset import load_Finnish_electricity_firm
from pystoned.constant import CET_MULT, FUN_COST, RTS_VRS, RED_MOM

# import Finnish electricity distribution firms data
data = load_Finnish_electricity_firm(x_select=['Energy', 'Length', 'Customers'],
                                    y_select=['TOTEX'])

# build and optimize the CNLS model
model = CNLS.CNLS(data.y, data.x, z=None, cet=CET_MULT, fun=FUN_COST, rts=RTS_VRS)
model.optimize('email@address')

# print firm-level efficiency using MOM method
rd = StoNED.StoNED(model)
print(rd.get_technical_inefficiency(RED_MOM))

Example: CNLS with Z variable [.ipynb]

# import packages
from pystoned import CNLS, StoNED
from pystoned.dataset import load_Finnish_electricity_firm
from pystoned.constant import CET_MULT, FUN_COST, RTS_VRS, RED_MOM

# import Finnish electricity distribution firms data
data=load_Finnish_electricity_firm(x_select=['Energy','Length','Customers'],
                                y_select=['TOTEX'],
                                z_select=['PerUndGr'])

# build and optimize the CNLS model
model = CNLS.CNLS(y=data.y, x=data.x, z=data.z, cet=CET_MULT, fun=FUN_COST, rts=RTS_VRS)
model.optimize('email@address')

# calculate and print firm-level efficiency using MOM method
rd = StoNED.StoNED(model)
print(rd.get_technical_inefficiency(RED_MOM))