Isotonic CNLS¶
This section introduces a variant of CNLS estimator, Isotonic Convex Nonparametric Least squares (ICNLS), where ICNLS only relies on the monotonic assumption. To relax the concavity assumption in CNLS estimation (i.e., estimating a production function), we have to rephrase the Afriat inequality constraint in Problem (2.2). To do that, we define a binary matrix \(P=[p_{ij}]_{n x n}\) to represent the isotonicity (Keshvari and Kuosmanen, 2013).
Define the binary matrix \(P=[p_{ij}]_{n x n}\) as follows
Applying enumeration method to define the elements of matrix \(P\), we solving the following QP problem
Note that the concavity constraints between units \(i\) and \(j\) is relaxed by the matrix \(P_{ij}=0\). If the \(P_{ij}=1\) for all \(i\) and \(j\), then the above QP problem (i.e., ICNLS problem) reduces to CNLS problem.
Example: Isotonic CNLS(ICNLS) [.ipynb]¶
In the following code, we estimate an additive production function using ICNLS approach.
# import packages
from pystoned import ICNLS
from pystoned.constant import CET_ADDI, FUN_PROD, OPT_LOCAL, RTS_VRS
from pystoned.dataset import load_Finnish_electricity_firm
# import Finnish electricity distribution firms data
data = load_Finnish_electricity_firm(x_select=['OPEX', 'CAPEX'], y_select=['Energy'])
# define and solve the ICNLS model
model = ICNLS.ICNLS(y=data.y, x=data.x, z=None, cet = CET_ADDI, fun = FUN_PROD, rts = RTS_VRS)
model.optimize(OPT_LOCAL)
# display residuals
model.display_residual()