Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • New version of mmqreg on SSC (v2.5) -- adds version statement and ships polished mmqregplot companion


    Thanks to Kit Baum, an update of the -mmqreg- package (originally
    by Fernando Rios-Avila) is now available from SSC, as v2.5.

    -mmqreg- estimates quantile regressions via the Method of Moments
    approach of Machado and Santos Silva (2019). Version 2.4
    (released last week) added a "jknife" option implementing the
    decomposed split-panel jackknife bias correction for short
    panels, and a companion plot command -mmqregplot-.

    WHAT'S NEW IN v2.5
    ------------------

    1. Explicit "version 13" statement added to both mmqreg.ado and
    mmqregplot.ado. (Thanks to Kit for catching that v2.4 was
    relying on the caller's current version setting.)

    2. -mmqregplot- has been polished significantly (now mmqregplot
    v2.1):

    - Bug fix. The previous version produced a conformability
    error (r(503)) on multi-quantile plots after the per-
    quantile loop completed. The qtile path is now computed
    in a single multi-quantile -mmqreg- call (q(numlist) nols)
    and the plot reads e(b) once, locating each (quantile,
    variable) entry by matching (coleq, colname). No more
    row-stacking, no metadata loss. About 17x faster on a
    17-point quantile grid as a side benefit.

    - Two small pre-existing bugs fixed: a duplicate "replace"
    in the location/scale sub-routine call (r(198)), and a
    misspelled "nopts()" option in the histogram-KDE feplot
    branch (should be "normopts()", r(198)).

    - New options for display and disk-saving:
    showall -- draw every panel as its own named graph
    (no hidden nodraw), with a final combined
    summary as the last graph
    keepgraphs -- keep individual panels in memory after
    combining
    nocombine -- skip the graph combine step entirely
    saving(prefix) -- save every panel plus the combined
    figure as .gph files
    gformat(formats) -- additionally export to png, pdf, eps,
    jpg, etc.

    - All panels are now issued as named graphs:
    mmqp1, mmqp2, ... -- quantile-path panels (one per var)
    mmqloc -- location coefplot
    mmqsca -- scale coefplot
    mmqfe -- fixed-effects panel
    mmqcombined -- final combined figure

    so users can revisit or re-export any panel after the fact
    (e.g. -graph display mmqloc-).

    - absorb() is rebuilt from e(fevlist) automatically, so the
    plotted path matches the user's actual FE-absorbed model.

    3. Updated help files. -help mmqregplot- now documents the full
    option set, the named-graph convention, and disk-saving usage,
    with new worked examples.

    INSTALLATION
    ------------

    Code:
    .
    ssc install mmqreg, replace
    or, for users who already have it installed:

    . adoupdate mmqreg, update

    To see the new features in action:

    . webuse nlswork, clear
    . xtset idcode year
    . mmqreg ln_w age ttl_exp tenure not_smsa south, ///
    absorb(idcode) q(25 50 75) jknife
    . mmqregplot age ttl_exp tenure, quantile(10(10)90) ///
    ols label showall saving("wage_qpath") gformat(png)

    BACKWARD COMPATIBILITY
    ----------------------
    All v2.4 (and v2.3) syntax and behavior is preserved. The new
    mmqregplot options and the "version 13" statement are additive.

    REFERENCES
    ----------
    Dhaene, G. and Jochmans, K. (2015). Split-panel jackknife
    estimation of fixed-effect models. Review of Economic Studies,
    82(3), 991-1030.
    Machado, J.A.F. and Santos Silva, J.M.C. (2019). Quantiles via
    moments. Journal of Econometrics, 213(1), 145-173.

    Feedback and bug reports are very welcome.

    Best regards,

    Dr Merwan Roudane
    Researcher in Applied Econometrics
    [email protected]

    (in collaboration with Fernando Rios-Avila, [email protected],
    original mmqreg author, Levy Economics Institute)
    Last edited by Merwan Roudane; 17 May 2026, 12:01.

  • #2
    Dear Merwan Roudane,
    Hope you are doing well. Thank you very much for your excellent contributions. However, I encountered a few issues while using them and would greatly appreciate it if you could help me clarify them.

    My regression is based on -mmqreg- with option jknife. When I estimate -mmqreg- with the jknife option, the coefficients shown in the -mmqregplot- figure do not appear to match the corresponding coefficients in the regression results. So I am not sure whether these are issues with my usage or potential areas for improvement, I noticed two points that might be worth considering:
    1. In -mmqregplot-, if users only want to obtain the quantile graph (only one variable), it seems that they need to add the keepgraphs option to keep the graphs. It might be useful to have a more straightforward way to retain the graphs.
    2. In -mmqregplot-, when I estimate the regression using the jknife option, the coefficient values displayed in the graph appear to differ from the coefficient estimates reported in the regression results. I am not sure whether this is intended behavior or a potential issue with the plotting command.
      [Note: You can use the codes below to reproduce and check these issues.]
    ========================
    codes:

    webuse nlswork, clear
    xtset idcode year

    mmqreg ln_w age ttl_exp tenure not_smsa south, q(25 50 75) absorb(idcode year) robust jknife          
    qregplot age
    mmqregplot age    //the graph dropped        
    mmqregplot age, keepgraphs     //option [keepgraphs] can keep the graph   
     
    ========================

    -mmqreg-
    Click image for larger version

Name:	_20260818214053.png
Views:	1
Size:	56.4 KB
ID:	1787094



    -mmqregplot-
    Click image for larger version

Name:	_20260818214118.png
Views:	1
Size:	26.8 KB
ID:	1787095



    -qregplot-
    Click image for larger version

Name:	_20260818214240.png
Views:	1
Size:	20.3 KB
ID:	1787096

    Last edited by Sarah Lyu; 18 Aug 2026, 08:00.

    Comment

    Working...
    X