{smcl} {* *! version 1.0.0 28may2026}{...} {cmd:help xtcsnardl_postestimation}{right:also see: {help xtcsnardl} {help xtcsnardl_methodology} {help xtcsnardl_examples} {help xtcsnardl_graph}} {hline} {title:Post-estimation tools {hline 2} CS-NARDL} {title:Contents} {p 8 12 2} {help xtcsnardl_postestimation##return:1.} {cmd:e()} returns{break} {help xtcsnardl_postestimation##testing:2.} Custom Wald tests with {cmd:test} / {cmd:lincom} / {cmd:nlcom}{break} {help xtcsnardl_postestimation##predict:3.} Fitted values, residuals and the EC term{break} {help xtcsnardl_postestimation##multipliers:4.} Recovering long-run and dynamic multipliers manually{break} {help xtcsnardl_postestimation##cd:5.} Independent CD diagnostics{break} {help xtcsnardl_postestimation##estout:6.} Exporting tables (estout / esttab){break} {help xtcsnardl_postestimation##stability:7.} CUSUM, CUSUMSQ and stability diagnostics {marker return}{...} {title:1. e() returns} {pstd} {cmd:xtcsnardl} stores everything {cmd:xtpmg} stores, plus the CS-NARDL-specific entries documented in {help xtcsnardl##return:the main help}. Most useful: {synoptset 28 tabbed}{...} {synopthdr:Macros} {synoptline} {synopt:{cmd:e(cmd)}}always {cmd:xtcsnardl}{p_end} {synopt:{cmd:e(estimator)}}{cmd:cs_nardl_pmg}, {cmd:cs_nardl_mg}, or {cmd:cs_nardl_dfe}{p_end} {synopt:{cmd:e(depvar)}}dependent variable{p_end} {synopt:{cmd:e(asymmetric)}}variables decomposed asymmetrically{p_end} {synopt:{cmd:e(pos_vars)}}generated positive partial-sum variable names{p_end} {synopt:{cmd:e(neg_vars)}}generated negative partial-sum variable names{p_end} {synopt:{cmd:e(csa_vars)}}variables whose CSA was added as proxies{p_end} {synopt:{cmd:e(ec_name)}}name of the EC equation (default {bf:ECT}){p_end} {synopt:{cmd:e(ivar)}, {cmd:e(tvar)}}panel/time identifiers{p_end} {synoptline} {synopthdr:Scalars} {synoptline} {synopt:{cmd:e(npanels)}}N{p_end} {synopt:{cmd:e(avg_T)}}average T{p_end} {synopt:{cmd:e(cr_lags)}}CSA lag length used{p_end} {synopt:{cmd:e(n_csa_orig)}}number of base CSA variables{p_end} {synopt:{cmd:e(level)}}confidence level{p_end} {synoptline} {pstd} {cmd:e(b)} and {cmd:e(V)} hold the full vector of coefficients (xtpmg layout): {p 4 6 2} {c 149} {bf:[ECT]varname} {hline 2} long-run coefficients (the cointegrating vector){p_end} {p 4 6 2} {c 149} {bf:[SR]D.varname} {hline 2} short-run differences (PMG/MG mean group){p_end} {p 4 6 2} {c 149} {bf:[SR]ECT} or {bf:[ec]ECT} {hline 2} pooled speed of adjustment{p_end} {p 4 6 2} {c 149} {bf:[ivar_i:.]} {hline 2} panel-specific coefficients (PMG/MG only){p_end} {pstd} Inspect with: {phang2}{cmd:. ereturn list}{p_end} {phang2}{cmd:. matrix list e(b)}{p_end} {marker testing}{...} {title:2. Custom Wald tests, lincom and nlcom} {pstd} The default Table 5 reports H{sub:0}: {&beta}{sup:+} = {&beta}{sup:-} for every variable in {opt asymmetric()}. You can run any linear or non-linear hypothesis using the standard Stata tools. {pstd} {bf:(a) Long-run asymmetry on a single variable} {phang2}{cmd:. test [ECT]x_pos = [ECT]x_neg}{p_end} {pstd} {bf:(b) Joint long-run asymmetry across several variables} {phang2}{cmd:. test ([ECT]x_pos = [ECT]x_neg) ([ECT]z_pos = [ECT]z_neg)}{p_end} {pstd} {bf:(c) Test of additive long-run elasticity} {phang2}{cmd:. lincom [ECT]x_pos + [ECT]x_neg}{p_end} {pstd} gives the net symmetric long-run elasticity (zero under symmetry by construction). {pstd} {bf:(d) Test of a specific magnitude} {phang2}{cmd:. test [ECT]x_pos = -0.10}{p_end} {pstd} {bf:(e) Half-life as a non-linear function of phi} {phang2}{cmd:. nlcom (HL: ln(2) / abs(_b[SR:ECT]))}{p_end} {pstd} {bf:(f) Sum of short-run coefficients (cumulative impact effect)} {phang2}{cmd:. lincom [SR]D.x_pos + [SR]LD.x_pos + [SR]L2D.x_pos}{p_end} {marker predict}{...} {title:3. Fitted values, residuals and the error-correction term} {pstd} {cmd:xtpmg} provides a {cmd:predict} method that {cmd:xtcsnardl} inherits. {phang2}{cmd:. predict yhat, xb} {hline 2} fitted {&Delta}y{p_end} {phang2}{cmd:. predict uhat, residuals} {hline 2} idiosyncratic residual{p_end} {phang2}{cmd:. predict ec, ec} {hline 2} cointegrating residual (long-run){p_end} {pstd} The {bf:ec} option requires that {opt ec(name)} was specified in estimation; the variable {it:name} is generated by xtpmg during estimation and persists after. Plot the panel trajectories of the EC term to check cointegration visually: {phang2}{cmd:. tsline ECT if country == 1}{p_end} {phang2}{cmd:. xtline ECT}{p_end} {marker multipliers}{...} {title:4. Recovering long-run and dynamic multipliers manually} {pstd} The asymmetric long-run multipliers are just the cointegrating coefficients: {phang2}{cmd:. lincom [ECT]x_pos} {hline 2} m+(infty){p_end} {phang2}{cmd:. lincom [ECT]x_neg} {hline 2} m-(infty){p_end} {phang2}{cmd:. lincom [ECT]x_pos - [ECT]x_neg} {hline 2} asymmetry{p_end} {pstd} For the cumulative dynamic multipliers, the option {opt multip(#)} computes them automatically (Table 8). To export them to a dataset for custom plotting: {cmd} * re-run with multip and capture qui xtcsnardl D.y L.y D.x, lr(L.y x) asymmetric(x) multip(20) * manual recursion using e() returns local phi = _b[SR:ECT] local bp = _b[ECT:x_pos] local bn = _b[ECT:x_neg] local h = 20 clear qui set obs `=`h'+1' gen h = _n - 1 gen mp = 0 gen mn = 0 local gp = 1 local gn = -1 forvalues k = 1/`h' { local gp = `gp' + `phi'*(`gp' - `bp') local gn = `gn' + `phi'*(`gn' - `bn') qui replace mp = `gp' in `=`k'+1' qui replace mn = `gn' in `=`k'+1' } gen asym = mp - mn list h mp mn asym {txt} {marker cd}{...} {title:5. Independent CD diagnostics} {pstd} {cmd:xtcsnardl} runs the Pesaran CD test by default (Table 10). For confirmation with external tools: {phang2}{cmd:. predict uhat, residuals}{p_end} {phang2}{cmd:. xtcd2 uhat} {hline 2} Ditzen-Reese implementation{p_end} {phang2}{cmd:. xtcd uhat} {hline 2} alternative{p_end} {phang2}{cmd:. xtcse2 uhat} {hline 2} Pesaran-Tosetti exponent of CSD{p_end} {pstd} The {help xtcse2:xtcse2} command additionally estimates the {ul:exponent of cross-sectional dependence}; values in [0, 0.5] correspond to weak CSD (CSA augmentation is sufficient), values in (0.5, 1] correspond to strong CSD and indicate residual factor structure. {marker estout}{...} {title:6. Exporting tables (estout / esttab)} {pstd} After estimation, the e(b)/e(V) layout is compatible with {help estout:estout} and esttab. A typical export workflow: {cmd} qui xtcsnardl D.y L.y D.x, lr(L.y x) asymmetric(x) pmg estimates store cs_pmg qui xtcsnardl D.y L.y D.x, lr(L.y x) asymmetric(x) mg estimates store cs_mg * Print to clipboard / LaTeX esttab cs_pmg cs_mg, /// keep([ECT]x_pos [ECT]x_neg [SR]ECT) /// star(* 0.10 ** 0.05 *** 0.01) /// se(%6.4f) b(%7.4f) /// label collabels(none) /// mtitles("PMG" "MG") /// addnotes("Long-run asymmetric coefficients reported." /// "Asterisks denote significance.") {txt} {marker stability}{...} {title:7. CUSUM, CUSUMSQ and stability diagnostics} {pstd} Mehta & Derbeneva (2024) report CUSUM and CUSUMSQ for the pooled residuals. Reconstruct them as follows: {cmd} qui xtcsnardl D.y L.y D.x, lr(L.y x) asymmetric(x) predict uhat, residuals * Pool residuals into a single time series collapse (mean) uhat, by(year) tsset year * CUSUM and CUSUMSQ estat sbcusum // requires Stata 15+ regress fit * Or manually: gen cs = sum(uhat) gen css = sum(uhat^2) tsline cs // CUSUM tsline css // CUSUMSQ {txt} {pstd} Within the 5% confidence bands, the model is stable. In top-journal practice the bands are {±} 2 SE for CUSUM and {±} 1 standard error for the squared variant. See Brown, Durbin and Evans (1975) for the original derivation. {title:Tips for top-journal reporting} {phang} 1. Always report Table 1 (long-run), Table 2 (ECT + half-life), Table 5 (asymmetry tests) and Table 10 (CD residual diagnostic). These four tables are the minimum required by most applied-econometrics referees. {phang} 2. Report {opt panelcoef} (Table 7) when panels differ in characteristics (country-by-country comparison expected). Suppress when N is large. {phang} 3. Report multipliers (Table 8) {ul:and} the corresponding graph ({bf:csn_multip_1}) {hline 2} journals like to see both the numerical and visual evidence. {phang} 4. Test {ul:nested specifications}: linear ARDL (no {opt asymmetric}), Panel NARDL ({opt nocsa}), CS-NARDL (default), and use Hausman / information criteria for selection. {phang} 5. Always run {help xtcd2:xtcd2} on the dependent variable {ul:before} estimation and on the residuals {ul:after}. Report both p-values in the same table. {title:Author} {pstd} {bf:Dr Merwan Roudane}{break} {bf:merwanroudane920@gmail.com}{break} {cmd:xtcsnardl} v1.0.0, 28 May 2026{p_end} {title:Also see} {psee} Online: {help xtcsnardl}, {help xtcsnardl_methodology}, {help xtcsnardl_examples}, {help xtcsnardl_graph}{p_end} {psee} Related: {help xtpmg}, {help xtpmg_postestimation}, {help xtcd2}, {help xtcse2}, {help estout}, {help estat}{p_end}