Straight from development to you. With StataNow, you always have the latest features.
This page summarises the latest StataNow additions and enhancements. If you’re comparing options, see Stata editions and the full Stata features list.
___ ____ ____ ____ ____(R)
/__ / ____/ / ____/
___/ / /___/ / /___/
Statistics/Data analysis
Title
Additions to Stata since release 19
Description
Update history:
Stata 19.0 base 08apr2025
updated to 28jan2026
StataNow 19.5 08apr2025
updated to 28jan2026
This file records the additions and fixes made to Stata since the release of version 19. See What's new table of contents for changes in other
Stata versions.
Updates are available for free over the internet. Updates and items available only in StataNow are marked as such. Click here to obtain the
latest update, or see updates for detailed instructions.
The most recent changes are listed first.
-------- update 28jan2026 -------------------------------------------------------------------------------------------------------------------------------
1. (StataNow) Psychometric meta-analysis. The meta suite has been extended to perform psychometric meta-analysis. New command meta psycorr
allows you to correct correlations for the distorting effects of measurement error, range restriction, and other statistical artifacts.
A fundamental assumption in meta-analysis is that the reported effect sizes are accurate reflections of the true relationships being studied.
In many correlational studies, the variables of interest are latent constructs, like intelligence, job satisfaction, or depression, measured
with error or limited sample ranges. The observed correlations are often distorted due to these statistical artifacts.
Psychometric meta-analysis corrects correlations and their standard errors for these distortions, providing more accurate estimates of the mean
correlation and between-study variance and thus providing more valid, generalizable conclusions.
Consider a fictional dataset in which variable rho records the observed correlations between cognitive ability test scores (X) and job
performance ratings (Y) in the restricted sample of hired employees. The unrestricted sample represents all job applicants, but because only
top scorers are hired, the observed correlations are attenuated by range restriction -- a common situation in personnel selection studies.
Variable n contains the within-study sample sizes. Reliability estimates of X (as a measure of true cognitive ability T) and Y (as a measure
of true job performance P), both estimated from the restricted sample, are stored in rxxr and ryyr. Variable ux contains the ratio of
restricted to unrestricted variability in X. The goal of meta psycorr is to use this information to recover the correlation between T and P in
the unrestricted applicant population.
. meta psycorr rho n, xreliability(rxxr) yreliability(ryyr) xuratios(ux)
You may update any setting of the psychometric meta-analysis, keeping all other settings the same, by using the meta update command. For
example, to assume that the range restriction is direct, type
. meta update, direct
To estimate the overall effect size and its confidence interval, based on a random-effects model with the individual-correction meta-analysis
(ICMA) method, type
. meta summarize
All the commands in the meta suite that are available for standard meta-analysis are also available for psychometric meta-analysis. For
example, to perform subgroup meta-analysis and plot the results on a forest plot with credibility intervals, we type
. meta forestplot, subgroup(grpvar) credinterval
Learn more at stata.com/statanow/psychometric-meta-analysis/.
2. (StataNow) Proportional odds test. The ordered logit model fit by ologit relies on the proportional odds assumption, also called the parallel
lines assumption, which implies that the cumulative probability curves for each outcome category plotted against a predictor should be
parallel.
New postestimation command estat parallel provides five tests of the proportional odds assumption: the Brant, likelihood-ratio, score, Wald,
and Wolfe-Gould tests.
Learn more at stata.com/statanow/proportional-odds-test-after-ologit/.
3. (StataNow) Moderating effects for heterogeneous DID. New postestimation command estat moderation is now available after fitting a
heterogeneous DID model with hdidregress twfe or xthdidregress twfe. estat moderation reports the moderating effects of covariates, which show
how the cohort- and time-varying average treatment effects on the treated (ATETs) vary with covariates.
Learn more at stata.com/statanow/moderating-effects-heterogeneous-DID/.
4. (StataNow) Convert Word to HTML, EPUB, and more. You can now convert Word documents (.docx files) to four new file types.
a. New command docx2html converts a Word document to an HTML file.
b. New command docx2epub converts a Word document to an EPUB file.
c. New command docx2markdown converts a Word document to a Markdown file. New command docx2md is a synonym for docx2markdown.
d. New command docx2txt converts a Word document to a plain text file.
Learn more at stata.com/statanow/convert-word-documents/.
5. (StataNow) Discrete derivatives. New mata classes are available for discrete numerical derivatives.
a. New Mata class DerivDiscreteDiff() computes the coefficients for a real, discrete numerical derivative using finite difference
approximation.
b. New Mata class DerivDiscretePartial() computes discrete numerical partial derivatives.
6. (StataNow) HDFE interactions. areg, ivregress 2sls, and xtreg, fe now allow factor-variable notation within option absorb(varlist). This is
particularly useful when you wish to include interactions between high-dimensional fixed effects and continuous variables.
7. (StataNow) Do-file Editor enhancements. The Do-file Editor now includes the following new features:
a. The Do-file Editor now supports bracket pair colorization for do- and ado-files. Bracket pair colorization is a feature where matching
brackets -- (), {}, and [] -- are highlighted so that users can follow nested code structure at a glance. Each nesting level of brackets
receives a distinct, reusable color, making it easy to trace from an opening (, {, or [ to its matching close bracket even in deeply nested,
multiline expressions. Unmatched brackets are also displayed in a unique color, allowing them to stand out in the code. You can enable or
disable bracket pair colorization in the Do-file Editor preferences as well as customize the different nesting level colors and the
unmatched bracket color.
b. The checkbox Display > Show line guide has been added to the Do-file Editor's preferences. When checked, it displays a line guide in the
code-folding margin to denote where a code block begins and ends.
c. The dropdown box Advanced > Default action of Do button: has been added to the Do-file Editor's preferences. The selected action will be
executed when a user clicks the Do button in the Do-file Editor's toolbar.
8. (StataNow) hdidregress twfe and xthdidregress twfe have new option over(). Specifying over(timecohort) when cohort-time ATETs or cohort ATETs
are requested and covariates are specified causes cohort-time-specific covariate means to be used in estimation. over(cohort), the default,
yields the existing behavior of computing cohort-specific covariate means.
9. (StataNow) hdidregress twfe and xthdidregress twfe have new option noxinteract. Specifying noxinteract omits the interaction of specified
covariates with difference-in-difference variables in the model so that covariates enter only as levels.
10. (StataNow) New Mata class NDMatrix() defines an N-dimensional matrix.
11. (StataNow) Mata function quantile() has two improvements:
a. Quantile estimator method "galton" is now supported as a synonym for "parzen".
b. Method "inv_cdf" is renamed to "invedf", and method "avg_inv_cdf" is renamed to "avginvedf". The previous names are still supported but no
longer documented.
12. collect remap, when specified to remap dimension levels that contain square brackets, such as colname's level var(_cons[id]) in
. collect remap colname[var(_cons[id])] = Variance[id]
incorrectly exited with error message "too many brackets". This has been fixed.
13. irf create, bs after xtvar has the following fixes:
a. irf create, bs after xtvar with option vce(bootstrap) incorrectly resampled within existing bootstrap samples. This has been fixed.
b. irf create, bs after xtvar could return an uninformative error message when the last bootstrap replication failed. This has been fixed.
14. twoway rpcap y1var y2var y3var xvar mistakenly drew the caps for observations whose y1var or y2var were missing. This has been fixed.
-------- update 14jan2026 -------------------------------------------------------------------------------------------------------------------------------
1. lincom after logistic now accepts option coef. By default, lincom after logistic continues to report the exponentiated estimated linear
combination, labeled as "Odds ratio". With option coef, lincom will report the estimated linear combination.
2. Prefix commands bootstrap, collect, jackknife, nestreg, permute, simulate, statsby, and stepwise have been updated to accommodate
community-contributed prefix commands.
3. icd10cm and icd10pcs have been updated for the 2026 fiscal year. Type icd10cm query or icd10pcs query to see information about the changes.
4. SMCL paragraph mode directive {p} has an optional fourth argument that sets the overall width for the paragraph. This argument had a minimum
bound of 40. This has been changed to 20 to allow for more flexibility.
5. Online help and the search index have been brought up to date for Stata Journal 25(4).
6. frlink failed to properly set the time portion of the date characteristic on the generated link variable linkvar1. This has been fixed so that
the link creation date and time are reported by frlink describe.
For linked datasets created prior to this fix, frlink describe will continue to only mention the date when the link was created.
7. graph twoway with option color(), when a stylelist was used that contained either ".." or "...", mistakenly produced error message "option(s)
qxav() not allowed", r(198). This has been fixed.
8. markdown, when the source file was in a path containing an uppercase letter, mistakenly looked for the file in the wrong path. For example, if
test.md was located in /home/user/Desktop, markdown test.md looked for /home/user/desktop/test.md. This has been fixed.
9. ologit and oprobit allowed aweights, even though they were not documented. aweights are no longer allowed with these commands because these
estimators are not suitable for aweighted data. For reproducibility, aweights are available under version control; see version.
10. (StataNow) regress, areg, and xtreg, fe with option vce(hc3 [clustvar], hansen) reported confidence intervals at the default confidence level
of 95%, even when option level() specified a different value. This has been fixed.
11. streg with options distribution(weibull) and either vce(robust) or vce(cluster), when the fitted model included the constant term, displayed
correct results, but the entry for the constant term in the posted e(V_modelbased) matrix was in a transformed scale instead of the original
scale. This has been fixed.
12. svy: total, when used with survey data containing strata with a single sampling unit and when the data were svyset with option
singleunit(centered), used the wrong denominator in computing the grand mean used to center the single sampling units. It used the number of
strata within the stage instead of the number of sampling units, and this usually resulted in greatly inflated variance estimates. This has
been fixed.
13. Stata and Mata functions ustrpos(s1, s2) and ustrrpos(s1, s2), when either s1 or s2 contained characters with Unicode code points greater than
U+FFFF (that is, Unicode characters known as supplementary characters, mainly emojis, rare CJK ideographs, and other specialized symbols),
produced incorrect results. This has been fixed.
14. (mac) macOS Tahoe made a change to alert dialogs that caused alert dialogs in Stata that are supposed to contain OK and Cancel buttons to
display only the OK button with no ability to cancel the dialog. This has been fixed.
-------- update 12nov2025 -------------------------------------------------------------------------------------------------------------------------------
1. (StataNow) Import data from Parquet files. New command import parquet reads into memory a Parquet file. Most of the Parquet compression
methods and variable types are supported.
Learn more at stata.com/statanow/import-data-parquet-files/.
2. (StataNow) Causal mediation with two mediators. Existing command mediate fits causal mediation models and estimates natural direct, natural
indirect, and total effects of a treatment on an outcome. mediate now supports estimation of these effects for two mediator variables.
mediate can fit both parallel mediation models (when there is no causal order among mediators) and sequential mediation models (when a causal
order exists among mediators). By accounting for each path-specific component of a treatment effect, mediate estimates the finest possible
decomposition of a total effect into natural direct and indirect effects. Because the number of decompositions grows at a rapid rate when more
than one mediator is included, the finest possible decomposition potentially encompasses many estimands. Coarser decompositions are available
by estimating mediator-specific natural effects. Postestimation commands are available to estimate controlled direct effects and to perform a
sequential mediation sensitivity analysis.
Learn more at stata.com/statanow/causal-mediation-analysis-two-mediators/.
3. (StataNow) Mata quantile function. New Mata function quantile(X, p[, method]) computes quantile values of data matrix X at specified quantile
vector p. Optional argument method allows you to choose from several quantile calculation methods, including both discontinuous and continuous
piecewise linear methods.
4. h2oml postestimation commands now provide permutation variable importance and regression diagnostic plots:
a. h2omlgraph permimp plots permutation variable importance after using h2oml to perform random forest or gradient boosting machine.
b. h2omlgraph rvfplot produces a residual-versus-fitted plot after h2oml gbregress and h2oml rfregress.
c. h2omlgraph rvpplot produces a residual-versus-predictor plot after h2oml gbregress and h2oml rfregress.
5. The Stata-Python API Specification has the following new features:
a. Class Data has new method fromNPArray(arr, prefix='v', force=False) that loads a NumPy array into Stata's memory, making it the current
dataset.
b. Class Data has new method fromPDataFrame(df, force=False) that loads a pandas DataFrame into Stata's memory, making it the current dataset.
c. Class Data has new method toNPArray(var=None, obs=None, selectvar=None, valuelabel=False, missingval=_DefaultMissing()) that exports values
from the current Stata dataset into a NumPy array.
d. Class Data has new method toPDataFrame(var=None, obs=None, selectvar=None, valuelabel=False, missingval=_DefaultMissing()) that exports
values from the current Stata dataset into a pandas DataFrame.
e. Class Frame has new method fromNPArray(arr, stfr, prefix='v', force=False) that loads a NumPy array into a specified frame in Stata.
f. Class Frame has new method fromPDataFrame(df, stfr, force=False) that loads a pandas DataFrame into a specified frame in Stata.
g. Class Frame has new method toNPArray(var=None, obs=None, selectvar=None, valuelabel=False, missingval=_DefaultMissing()) that exports values
from a Stata frame into a NumPy array.
h. Class Frame has new method toPDataFrame(var=None, obs=None, selectvar=None, valuelabel=False, missingval=_DefaultMissing()) that exports
values from a Stata frame into a pandas DataFrame.
i. Class Mata has new method fromNPArray(arr, name) that exports values from a NumPy array into a Mata matrix.
j. Class Mata has new method toNPArray(name, rows=None, cols=None) that exports values from an existing Mata matrix into a NumPy array.
k. Class Matrix has new method fromNPArray(arr, name) that exports values from a NumPy array into a Stata matrix.
l. Class Matrix has new method toNPArray(name, rows=None, cols=None) that exports values from an existing Stata matrix into a NumPy array.
6. Postestimation command estat aggregation after hdidregress and xthdidregress with estimators ra, ipw, and aipw has new option weights(). Two
weight types are allowed: timecohort and cohort. The default weights(timecohort) accounts for variation of cohort size over time.
weights(cohort) provides weights for each cohort that are constant over time. The two weights are equivalent if the proportions and sizes of
groups are stable over time.
7. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version 21.0.9+10-LTS acquired from Azul Systems.
8. bayesmh, when used with a log-posterior evaluator and multiple chains, ignored initial values provided with option chain#() for chains 2, 3,
etc. This has been fixed.
9. bayesselect, when the name of the outcome variable was longer than 16 characters, failed. This has been fixed.
10. didregress, xtdidregress, hdidregress, and xthdidregress, when specified with weights where the weight type was misspelled, failed to abort
with an error message and returned unweighted results. This has been fixed.
11. esize twosample with option by(groupvar), where groupvar had attached but undefined value labels, failed to report the sample size for
undefined value-label levels. This has been fixed.
12. estat ptrends after hdidregress twfe or xthdidregress twfe has the following fixes:
a. estat ptrends after hdidregress twfe or xthdidregress twfe with option controlgroup(notyet) did not exclude the last-treated cohort from the
regression as documented, which affected test results in some cases. This has been fixed.
b. estat ptrends after hdidregress twfe or xthdidregress twfe failed to detect nonestimability of effects in some cases, leading to incorrect
results. This has been fixed.
13. estat series after cate ignored suboption saving() in option graph(). This has been fixed.
14. ivregress 2sls using time-series operators in the model specification posted temporary variable names in ereturn. This has been fixed.
15. predict with statistic residuals, d, or xbd, after areg using a time-series operator on the dependent variable and a single absorbed variable,
could exit with error message "not sorted". This has been fixed.
16. predict after nl using a user-written program with optional arguments would error because the options were not passed through to the program.
This has been fixed.
17. predict after nlsur using a user-written program with optional arguments would error because the options were not passed through to the
program. This has been fixed.
18. putdocx append, when merging multiple .docx files into a single .docx file and when one of them contained a table, in some cases would not
properly open the resulting document in Word. This has been fixed.
19. When initializing Python 3.14 from within Stata, the initialization failed and Stata reported error code 7100. This has been fixed.
20. sts list has the following fixes:
a. sts list with options saving() and risktable() stored all variables' storage types as float, which was inconsistent with the storage types
when specifying option saving() alone. This has been fixed.
b. sts list with option failure or cumhaz listed the reported value incorrectly as 1 when the reporting time points were smaller than the
minimum of the observed time values. This has been fixed.
-------- update 06oct2025 -------------------------------------------------------------------------------------------------------------------------------
1. stcurve and estat gofplot with option saving(), when a space was used in the saving filename, exited with error message "only one filename is
allowed". This has been fixed.
2. (Windows) The 24sep2025 update could cause Stata to crash when the Do-file Editor opened or saved a file and if the user's profile contained
Unicode characters. This has been fixed.
-------- update 24sep2025 -------------------------------------------------------------------------------------------------------------------------------
1. (StataNow) In the Do-file Editor, you can now select Tools > Execute (do) lines on Windows and Unix or View > Do-file Editor > Execute (do)
lines on Mac while multiple lines of text are selected to execute all selected lines. After the lines are executed, the cursor will
automatically advance to the next line that can be executed, skipping comments and blank lines. If the next line is the beginning of a code
block, such as a for loop or an if expression, then the entire code block will be selected so that it will all be executed.
2. By default, the Do-file Editor will save a backup of an open document in the same directory that the document is saved in. There is now an
option for the Do-file Editor to store all backup files in an operating-system-specific directory that is local to the host computer. This
option is ideal when editing documents from a network drive where saving files may be slow, or when collaborating with other users where an
existing backup file can cause conflicts when editing a shared document. The setting for where to save backup files can be changed in the
Do-file Editor's advanced settings. For more information, see 13 Using the Do-file Editor -- automating Stata in Getting Started with Stata
for Windows, Getting Started with Stata for Mac, or Getting Started with Stata for Unix.
3. graph bar, graph box, and graph dot have new option assecondcategory for treating the y variables as the second over() group. This option is
useful when you have specified multiple y variables and the over() option, and you want to group first based on the over() categories and
second on the y variables.
4. Command syntax now supports numbers in minimum option abbreviations, identified by capital letters at the beginning of option names. You can
now define an option name that includes a number between capital letters and this will not produce an error message. For instance, previously,
using option name, say, CASE1OPtion with syntax in a program would produce error message "option case1option not allowed", when option
case1option was specified with the program. This is allowed now, and the desired minimum abbreviation case1op works as expected. However, if
a number appears at the end of the minimum abbreviation, such as CASE1option, the number will continue being ignored in the minimum
abbreviation, such as case instead of case1, per the original design of syntax.
5. Online help and the search index have been brought up to date for Stata Journal 25(3).
6. (StataNow) The variance-covariance estimator in linear regression commands areg, regress, didregress, xtdidregress, and xtreg, fe with option
vce(hc3, hansen) was not equivalent to the Hansen jackknife estimator in cases of cluster noninvertibility but instead was equal to the
ordinary HC3 estimator. Cluster noninvertibility can occur when fixed-effect variables serving as the clustering variable are included in a
regression rather than being partialed out or when some clusters are large relative to the sample size minus the number of regressors. In
these nonstandard cases, jackknife variance estimates provide conservative coverage. This has been fixed.
7. (StataNow) areg now disallows option vce(hc3 [clustvar], hansen) when not specified with a cluster variable that nests the absorbed variable.
This affects specifications in didregress with option vce(hc3 clustvar, hansen) when areg is used for estimation.
8. (StataNow) areg with option vce(hac kernel) and xtreg, fe with option vce(dkraay kernel), when used with time-series operators, could return an
uninformative error message. This has been fixed.
9. (StataNow) areg with option vce(hac kernel) and aweights as well as xtreg, fe with option vce(dkraay kernel) and aweights returned incorrect
standard errors in some cases where the sample was restricted or there were missing values in some variables. This has been fixed.
10. (StataNow) regress and areg with option vce(hac kernel) and using the default lags, in cases where time-series operators were applied to the
dependent or independent variables or when the absorbed variable had missing values, could fail to correctly define the estimation sample when
computing the default lags (N - 2). This has been fixed.
11. (StataNow) regress and areg with option vce(hc3, hansen) or vce(hc3, dfadjust) specified without a cluster variable, when fweights were
specified, could return standard errors that were too large. This has been fixed.
12. estat ptrends after hdidregress twfe in models with no available pretreatment differences exited with an uninformative error message. This has
been fixed.
13. graph bar, graph box, and graph dot with suboption sort(1) of option over(), when specified with option ascategory, did not sort based on the
first y variable. graph bar, graph box, and graph dot with suboption sort(2) of option over(), when specified with option ascategory, exited
with error message "sort() invalid, category 2 not found". This has been fixed.
14. graph box with options over(), by(), and ascategory, when some combination of the by-groups and over() variable produced an empty cell and when
specified with two or more y variables, incorrectly exited with error message "barstyles[].remake_as_copy". This has been fixed.
15. gsem specified with no latent variables or with observation-level latent variables, when specified with options group(varname) and vce(cluster
clustvar), incorrectly exited with error message "highest-level groups are not nested within clustvar". Here "groups" was meant to refer to
multilevel latent variables instead of group(varname), but in this case, there are no multilevel latent variables, so this should not have
triggered the error message. This has been fixed.
16. hdidregress and xthdidregress with option controlgroup(notyet), with no never-treated groups, and with only one treated cohort exited with an
uninformative error message. This has been fixed.
17. hdidregress twfe and xthdidregress twfe in models with covariates and a large number of cohorts and time periods could exit with an
uninformative error message. This has been fixed.
18. regress with option vce(hc2 clustvar) (and also for StataNow with option vce(hc3 clustvar)) has the following fixes:
a. regress with option vce(hc2 clustvar) (or vce(hc3 clustvar)) no longer displays the ANOVA table in the table header.
b. regress with option vce(hc2 clustvar) (or vce(hc3 clustvar)) reported an incorrect model F test in the coefficient table header. However,
the corresponding returned results e(F), e(df_m), and e(df_r) stored the correct values. This has been fixed.
19. return list, when displaying long variable names that use Unicode multibyte character sets used by languages such as Japanese and when set
linesize was set to a value greater than 205, could cause Stata to crash. This has been fixed.
20. tobit, when instructed to use default weights, defaulted to using frequency weights instead of analytical weights as documented. This has been
fixed.
21. Stata numerical formats %w.dgc and %w.dg might produce an incorrect string representation of number if the number of digits of the base 10
representation of the integer part of number was greater than or equal to 19. This has been fixed.
22. Opacity color modifiers such as %20 in mcolor(red%20) after the 13aug2025 update could produce error message "unknown function =int()" instead
of producing the requested graph. This has been fixed.
23. (Mac) macOS 26 introduced a change that caused controls within Stata's programmable dialogs that contained radio buttons (such as twoway) to
not respond to mouse clicks. This has been fixed.
24. (Unix GUI) The Command window now uses the same cursor color as the Do-file Editor when syntax highlighting is enabled.
-------- update 13aug2025 -------------------------------------------------------------------------------------------------------------------------------
1. (StataNow) Local average treatment effects (LATE). New command lateffects estimates a local average treatment effect (LATE), also known as a
complier average treatment effect. When individuals do not comply with their assigned treatment, it may not be possible to estimate a
treatment effect for the entire population. But with lateffects, we can exploit information regarding the assigned treatment by using an
instrumental variable. This allows us to estimate the treatment effect for those who comply with the assigned treatment, the LATE.
lateffects estimates LATE for a continuous, binary, count, or fractional outcome with a binary treatment. Three estimators are available:
o Normalized kappa weighted
o Normalized covariate-balancing propensity scores
o Inverse-probability-weighted regression adjustment
Postestimation command latebalance provides two balancing diagnostics and an overidentification test.
o latebalance summarize compares the means and variances of the raw data and the weighted data over the treatment-assignment groups.
o latebalance density plots the density of the raw data and the weighted data over the treatment-assignment groups.
o latebalance overid performs a test for covariate balance.
Postestimation command lateoverlap provides a diagnostic plot for the overlap assumption.
Learn more at https://www.stata.com/statanow/local-average-treatment-effects/.
2. (StataNow) More VCE options for linear models. Stata's most commonly used linear regression commands now come with a richer set of VCE
specifications.
If you have autocorrelated errors in your time-series or panel-data model, you can use regress or areg, which now allow for heteroskedasticity-
and autocorrelation-consistent (HAC) standard errors with option vce(hac hacspec), or use xtreg, fe, which now allows users to specify
Driscoll-Kraay standard errors with new option vce(dkraay hacspec).
Commands regress, areg, xtreg, fe, didregress, and xtdidregress each now allow for both HC2 and HC3 standard errors with clustering. The
inference adjustment of Hansen (2025) is available with HC3 standard errors using new suboption hansen.
You can also account for multiple nonnested clusters when fitting an instrumental-variables regression with ivregress. And you can allow for
arbitrary correlation within panels by specifying new option corr(unstructured) in xtgls.
Learn more at https://www.stata.com/statanow/vce-options-for-linear-models/.
3. (StataNow) The Do-file Editor can now indicate that changes have been made to a line by using colored markers in the change history ribbon
located in the margin. Two different markers indicate changes to a line: modified and reverted-to-original. A modified marker indicates that
a change was made to a line. A reverted-to-original marker indicates that a change was made to a line, saved, and then reverted to its
original state. To update the visibility of the change history ribbon, right-click in the Do-file Editor, select Preferences..., and check or
uncheck Change history in the General tab for Windows and Unix and the Display tab for Mac. Note that changes to the visibility of the change
history ribbon will only take effect on new editors.
4. (StataNow) In the Data Editor grid, variable names can now be truncated using several different methods, including at the end (the default), in
the middle, or by selecting 1, 2, 3, or 4 characters before the end. The behavior can be changed in the Data Editor's preference dialog.
5. (StataNow) xtgls with option panels(iid) or panels(heteroskedastic) is now faster.
6. Syntax highlighting now includes macros within strings. Unchecking the Do-file Editor preference Advanced > Syntax highlight macros in strings
disables the feature.
7. dtable with option factor(, test(ftest)) now supports factor-variable test (ftest) kendall_p to report the p-value for Kendall's rank
correlation test against zero.
8. collect has new style properties that specify whether to break (wrap) long notes at the table's width. See collect style smcl and collect
style txt.
9. table, dtable, and etable have new options wrapnotes and nowrapnotes that specify whether to break (wrap) long notes at the table's width. The
new default behavior is to break (wrap) long notes at the table's width.
10. lcstats has new options wrapnotes and nowrapnotes that specify whether to break (wrap) long notes at the table's width.
11. putdocx begin has new option compmode() that allows you to set the compatibility mode to be used by Word when opening the generated document.
You may choose to create a document that is compatible with the current version of Word or with Word 2013, Word 2010, Word 2007, or Word 2003.
12. graph options for color now allow a noninteger value for opacity. Previously,
scatter y x, mcolor(red%20.1)
produced error code 198. Now it is the same as specifying the integer part of the noninteger value for opacity,
scatter y x, mcolor(red%20)
13. label copy has new options fromframe() and toframe() that allow you to copy value labels between frames.
14. New command label rename allows you to rename a value label and automatically assign the new name to all variables associated with the old
name.
15. New command frame putlabel copies a list of value labels from the current frame to other frames.
16. New Mata function moptimize_init_k_autoCns() allows you to record the number of base, empty, and omitted constraints from command makecns, that
is, r(k_autoCns). The effect of recording this value is that moptimize_report() will not show these constraints above the coefficient table.
17. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version 21.0.8+9-LTS acquired from Azul Systems.
18. Online help and the search index have been brought up to date for Stata Journal 25(2).
19. didregress and xtdidregress with option aggregate(standard), when the time variable was specified using an abbreviation, could return an
uninformative error message. This has been fixed.
20. estat aggregation after hdidregress or xthdidregress has the following fixes:
a. estat aggregation after hdidregress with pweights or xthdidregress with pweights produced incorrect point estimates and standard errors.
This has been fixed.
b. estat aggregation after hdidregress with estimator twfe or xthdidregress with estimator twfe, when weights were specified, did not take
weights into account when displaying the sample size. This has been fixed.
21. estat effectsplot after mediate, when variable abbreviation was set to off, incorrectly exited with an uninformative error message. This has
been fixed.
22. estat grangerplot after didregress or xtdidregress did not correctly parse the twoway_option xlabel(). Suboption valuelabel was ignored.
Also, manually specified axis labels within option xlabel() caused estat grangerplot to incorrectly exit with error message "invalid label
specifier". This has been fixed.
23. estat summarize after hdidregress or xthdidregress, when weights were specified, did not take the weights into account. This has been fixed.
24. gsem with option group(), when specified with ordinal outcomes where one or more of the ordinal outcomes has observed predictor variables and
there is a latent endogenous variable or an ordinal outcome specified without observed predictor variables, exited with an unhelpful error
message even when the model specification was correct. This has been fixed.
25. graph twoway rbar with option colorvar() ignored suboption colorfillonly. This has been fixed.
26. hdidregress and xthdidregress with estimator twfe, when the dependent variable was specified using a wildcard operator, could drop covariates
mistakenly or return an uninformative error message. This has been fixed.
27. ivregress 2sls has the following fixes:
a. ivregress 2sls with option absorb(varlist, cimmino) ignored suboption cimmino and implemented method halperin. This has been fixed.
b. ivregress 2sls after some community-contributed commands exited with error message "last estimates not found", r(111). This has been fixed.
28. power and ciwidth have the following fixes:
a. power and ciwidth, when a custom column label specified with option table() contained the "%" character, exited with an uninformative error
message. Now an informative error message is produced.
b. power and ciwidth, when a custom column label specified with option table() contained mismatched quotes, could exit with an uninformative
error message. Now an informative error message is produced.
c. power usermethod and ciwidth usermethod, when option graph(ydimension()) was used to specify a parameter whose graph label contained a
comma, could produce an error message. This has been fixed.
29. regress has the following fixes:
a. regress with option vce(hc2, dfadjust), when specified with pweights or iweights, returned adjusted degrees of freedom that did not use
normalized weights as documented. This has been fixed.
b. regress with option vce(hc2, dfadjust) or vce(hc2 clustvar), when specified with iweights, could return a sample size and other stored
values that were not computed using normalized weights as documented. This has been fixed.
30. reshape long, when specified with numeric variable j() with values that vary in their number of digits and when favor(speed) was in effect,
such as reshape wide x, i(i) j(jvar 1 2 10) favor(speed), incorrectly exited with error message "variable x2 not found". This has been fixed.
31. The SEM Builder, when fitting a model with a node that identifies a range of observed variables instead of a single observed variable,
incorrectly exited with an unhelpful error message. The correct behavior is to produce a stopbox dialog mentioning the variables that were not
found in the diagram. This has been fixed.
32. streg, stcox, stintcox, and stmgintcox with option strata(), in the rare case when the number of distinct values of the strata variables was
extremely large and hit the limits imposed by the levelsof command, exited with error message "failed to compute". This has been fixed.
33. sts list has the following fixes:
a. sts list with condition in, when the data were not sorted by the time variable _t and the sorted and unsorted data differed when condition
in was applied, displayed incorrect observed times. This has been fixed.
b. sts list with condition if, when the data were not sorted by the time variable _t, _n was specified in condition if, and the sorted and
unsorted data differed when condition if was applied, displayed incorrect observed times. This has been fixed.
c. sts list with option by() or strata() did not display the observed times in each group that were greater than the last observed time in the
last group. This has been fixed.
34. use varlist using filename, when more than 40% of the variables in the dataset filename had variable labels and the number of variables with
variable labels was greater than 200, could crash Stata. This has been fixed.
35. xtdidregress with option aggregate(standard) and either option vce(robust) or option vce(hc2) failed to cluster standard errors at the group
level as documented. This has been fixed.
-------- update 21may2025 -------------------------------------------------------------------------------------------------------------------------------
1. (StataNow) Power analysis for logistic regression. New command power logistic calculates power, sample size, and effect size for tests of one
covariate in a logistic regression model. Logistic regression is used to examine the effect of continuous or discrete covariates on a binary
outcome. When you are designing an experiment that will be analyzed using logistic regression and you are interested in testing whether a
particular covariate of interest affects the outcome, look no further than power logistic. Up to 20 nuisance covariates, which are predictor
variables included in the logistic regression model but whose coefficients are not tested, are allowed, as is correlation between the covariate
of interest and nuisance covariates. Multiple values of parameters may be specified to perform a sensitivity analysis, with the result
presented as a table or a graph.
Eleven covariate distributions are supported, with special syntaxes to facilitate use with one or two binary predictors. Suppose your outcome
Y is binary and you have two binary covariates: covariate of interest X and nuisance covariate Z. To calculate the sample size needed to
attain 80% power with type I error of 5%, type
. power logistic 1.5, px(0.3) pz(0.2) py(0.6) pycondx1z1(0.8)
To graph the power curve for a normally distributed covariate of interest and two nuisance covariates following uniform and binomial
distributions, type
. power logistic, x(distribution(normal 0 1) oratio(1.5)) z1(distribution(uniform 1 8) oratio(1.2)) z2(distribution(binomial 8 0.3)
oratio(1.4)) pycondxmzm(0.4) n(150(25)300) graph
Learn more at stata.com/statanow/power-analysis-logistic-regression/.
2. xthdidregress and hdidregress have new option usercohort() that allows you to provide a cohort variable to be used during estimation. This is
useful when there are gaps in the data but researchers know treatment for a given group occurred during the missing time period. When
usercohort() is specified, xthdidregress and hdidregress will save the variable in usercohort() as _did_cohort or the name provided in
cohortname().
3. New command gencohort allows you to create a cohort variable that can be used in heterogeneous difference-in-differences commands (
xthdidregress and hdidregress).
4. ttest and ttesti have the following new stored results:
r(N_combined)
r(se_1)
r(se_2)
r(se_combined)
r(sd_diff)
r(mu_combined)
r(mu_diff)
r(lb_1)
r(ub_1)
r(lb_2)
r(ub_2)
r(lb_combined)
r(ub_combined)
r(lb_diff)
r(ub_diff)
5. table, when specified with an estimation command in option command() that contains option eform or eform(string), reported the fitted
coefficients instead of the specified exponentiated coefficients. This has been fixed.
6. (Stata/SE and Stata/BE) sort with more than one billion observations could crash Stata. This has been fixed.
7. (Mac and Unix) python set exec pyexecutable, when pyexecutable contained spaces, could issue error message "failed to set the specified Python
version", r(601). This has been fixed.
-------- update 07may2025 -------------------------------------------------------------------------------------------------------------------------------
1. The Do-file Editor now populates the autocompletion list for macros using macro definitions in the current do-file in addition to macros in
memory.
2. icd10pcs has been updated for the 01apr2025 update. Type icd10pcs query to see information about the changes.
3. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version 21.0.7+6-LTS acquired from Azul Systems.
4. collapse with weights and a stat of sum, when the entire group of the variable contained missing values, generated NaN (not a number) instead
of 0. This has been fixed.
5. graph bar and graph dot with stat meanci failed to save the confidence interval lines when the graph was saved to a live .gph file. This has
been fixed.
6. nl interactive version using free parameters grouped by a name ({group:param1}, {group:param2}, ...) would drop the group name and only display
the free parameter names (/:param1, /:param2, ...) in the coefficient table. This has been fixed.
7. Mata function fileexists() failed to check whether a URL was readable. This has been fixed.
8. pchi did not preserve the dataset sort order. This has been fixed.
9. pchi, pnorm, qchi, qnorm, qqplot, and symplot could mistakenly mark the dataset in memory as changed. This has been fixed.
10. predict (newvar={param:}) or predict stub*, parameters after nl interactive version with param: as a free parameter would produce a Mata
conformability error. This has been fixed.
11. reshape has the following fixes:
a. reshape, when favor(speed) was in effect, failed to keep value labels for the xij variables in the converted data. This has been fixed.
b. reshape wide, when favor(speed) was in effect, and for xij variables without a label in the original data, did not label the corresponding
xij variables in the converted data. The correct behavior, like when favor(memory) is in effect, is to compose the variable label for each
xij variable using the i level and the stub from the original variable. This has been fixed.
12. In Stata/SE, Stata/BE, and Stata/MP with set processors 1, when set sortmethod was set to fsort (the default) and Ctrl+c or Break was pressed
during a long-running sort, the variable being sorted could mistakenly be marked as sorted. This has been fixed.
13. xtgls could fail to drop groups with only one observation in some cases, causing an error. This has been fixed.
14. (Mac) Using frames either directly or indirectly while the Data Editor was open could cause Stata to crash. This has been fixed.
-------- update 16apr2025 -------------------------------------------------------------------------------------------------------------------------------
1. histogram, when specified with options addlabels, horizontal, and by(), failed to place the bar height labels correctly. This has been fixed.
2. ml check now restores the starting values instead of keeping the alternative coefficient vector that is randomly generated between tests 6 and
7. The old behavior, which could result in randomly failed model fits, is not preserved under version control.
3. predict, when called after meglm successfully fit a model with multiple random slopes, sometimes failed to compute the empirical Bayes means
and their standard errors. This has been fixed.
4. After some estimation commands, such as regress, the dialog box for predict would not submit the command to Stata when the Submit button was
pressed. This has been fixed.
5. (Windows) The Project Manager would not be visible after opening a project until View > Show Project Manager was selected. This has been
fixed.
6. (Mac) The latest macOS update could cause Stata's windows that support tabbing to open as individual windows. This has been fixed.
7. (Unix) The GUI version of Stata for Unix, when attempting to convert a string to numeric (for instance, when using string function real()) and
when the string contained a period for a decimal separator and the language or locale for the operating system used a comma for a decimal
separator, incorrectly truncated the string after the decimal separator to an integer (for example, converted the string "4.01" to the number
4). This has been fixed.
-------- previous updates -------------------------------------------------------------------------------------------------------------------------------
See whatsnew18to19.
---------------------------------------------------------------------------------------------------------------------------------------------------------
Explore the full Stata feature set, compare Stata editions, or see how organisations are applying these tools in our real-world case studies.
Want advice on whether StataNow is right for your team? Contact SDAS and we’ll help you choose.