CER with Z variables

Following Kuosmanen et al. (2021), we can also incorporate the contextual variable in the multiplicative CER estimation.

\begin{align} \underset{\phi,\alpha,\boldsymbol{\beta},{{\varepsilon}^{\text{+}}},{\varepsilon}^{-}}{\mathop{\min}}&\, \tilde{\tau} \sum\limits_{i=1}^n(\varepsilon _i^{+})^2+(1-\tilde{\tau} )\sum\limits_{i=1}^n(\varepsilon_i^{-})^2 &{}& \\ \textit{s.t.}\quad & \ln y_i = \ln(\phi_i+1) + \boldsymbol{\delta}^{'}\boldsymbol{z}_i + \varepsilon _i^{+}-\varepsilon _i^{-} &{}& \forall i \notag\\ & \phi_i = \alpha_i + \boldsymbol{\beta}_i^{'}\boldsymbol{x}_i -1 &{}& \forall i \notag\\ & \alpha_i + \boldsymbol{\beta}_i^{'}\boldsymbol{x}_i \le \alpha_j + \boldsymbol{\beta}_j^{'}\boldsymbol{x}_i &{}& \forall i, j \notag\\ & \boldsymbol{\beta}_i \ge \boldsymbol{0} &{}& \forall i \notag \\ & \varepsilon _i^{+}\ge 0,\ \varepsilon_i^{-} \ge 0 &{}& \forall i \notag \end{align}

Example: CER-Z [.ipynb]

# import packages
from pystoned import CQER
from pystoned.constant import CET_MULT, FUN_COST, RTS_CRS, RED_MOM
from pystoned.dataset import load_Finnish_electricity_firm

# import all data (including the contextual varibale)
data = load_Finnish_electricity_firm(x_select=['Energy', 'Length', 'Customers'],
                                     y_select=['TOTEX'],
                                     z_select=['PerUndGr'])

# define and solve the CER-Z model
model = CQER.CER(y=data.y, x=data.x, z=data.z, tau=0.5, cet = CET_MULT, fun = FUN_COST, rts = RTS_CRS)
model.optimize('email@address')

# display the coefficient of contextual variable
model.display_lamda()