**************************************************************************************************** ************** Adaptation of BC92 Code to reflect firm-specific inefficiency patterns ************** **************************************************************************************************** * Dissertation: REGIONAL BENCHMARKING OF THE BRITISH RAIL INFRASTRUCTURE MANAGER A LONG PANEL APPROACH - University of Leeds * Student: Marķa Eugenia Rivas Amiassorho, Supervisor: Dr Phill Wheat **2** Adaptation of BC92 Code (Kumbhakar, 2014) to reflect firm-specific inefficiency patterns * The difference lies in the definition of gamma function and the (T-t) variable. * Optional initial values to help the maximization (through sf_init and sf_search commands) can be established but they were not considered in the estimations. program cuesta, eclass version 11 if !replay() { syntax varlist(numeric ts) [if] [in] [, Level(cilevel) cost production Distribution(string) QUADratic DIFFicult NRTOLerance(string) GTOLerance(string) ITERate(string)] if "`cost'"=="" local production production if "`distribution'"=="" local distribution h if "`nrtolerance'"=="" local nrtolerance 1e-5 if "`gtolerance'"=="" local gtolerance 1e-5 if "`iterate'"=="" local gtolerance 16000 if "`quadratic'"=="quadratic" local quadratic eta_Tt2_* marksample touse gettoken depvar indepvars : varlist _fv_check_depvar `depvar' fvexpand `indepvars' local cnames `r(varlist)' capture drop _bt _est_cuesta00 efficiency xtset gen panelvar=`r(panelvar)' gen timevar=`r(timevar)' quietly summarize timevar quietly replace timevar=timevar-r(min)+1 * 2.1. Generate (T-t) variable sort panelvar by panelvar: egen bigT=max(timevar) gen year_Tt=(bigT-timevar) * 2.2. Specific parameters to each region quietly tab panelvar, gen(firmdum) quietly summarize panelvar local num_firms=r(max) forvalues i = 1/`num_firms' { generate time_v_`i' = timevar*firmdum`i' generate time2_v_`i' = time_v_`i'^2 } forvalues i = 1/`num_firms' { generate eta_Tt_`i' = year_Tt*firmdum`i' generate eta_Tt2_`i' = (year_Tt^2)*firmdum`i' } * 2.3. Adaptation of BC92 Code to reflect firm-specific inefficiency patterns sfpan `depvar', dist(`distribution') `cost' `production' frontier(`indepvars') mu usigmas vsigmas gamma(eta_Tt_* `quadratic', nocons) i(`panelvar') version 10.1 quietly{ regress `depvar' `indepvars' matrix b0=e(b) } ml init b0 ml search ml max, nooutput `difficult' nrtol(`nrtolerance') gtol(`gtolerance') iter(`iterate') matrix betamat=e(b) matrix varmat=e(V) local sigmav=round(sqrt(exp((betamat[1,colsof(betamat)]))),0.0000001) local sigmau=round(sqrt(exp((betamat[1,colsof(betamat)-1]))),0.0000001) if `sigmav'>1 local sigmav=round(`sigmav',0.000001) if `sigmau'>1 local sigmau=round(`sigmau',0.000001) display "" display "Time-varying decay model with firm-specific trends in efficiency" ml display, plus display as result "sigma_u {c |} `sigmau' `sigmause'" display as result "sigma_v {c |} `sigmav' `sigmavse'" display as text "{hline 13}{c BT}{hline 64}" estimates store cuesta00 capture drop efficiency sf_predict, bc(efficiency) drop panelvar timevar bigT year_Tt firmdum* time_v* time2_v* eta* } end