Latest News

Free Updates to Stata 17

Did you know Stata is continually being improved with new features? Since the release of Stata 17, multiple new cutting-edge features have been made. These include improvements to:

Jump to section.


➡ Interface
  • The Do-file Editor has many new enhancements.
    • You can now increase the level of indentation for a bookmark’s label in the Navigation Control by adding the character# to the bookmark comment. For example, bookmark comment **## Bookmark 2 will be indented one level more than bookmark comment **# Bookmark 1.
    • Java and Python code blocks are now added to the Navigation Control.
    • You can now execute only the current line that the cursor is on by clicking Tools > Execute (do) line. The cursor will then automatically advance to the next executable line, bypassing empty lines and comments.
    • The Do-file Editor now supports code folding of Java code blocks.
    • When you create a bookmark by toggling or clicking in the bookmark margin for a line, the Do-file Editor now automatically adds a default name for this bookmark.
    • You can now add a bookmark to a Mata or Java code block by clicking in the bookmark margin of a line. The Do-file Editor will add the bookmark comment //#, which is a valid comment for both Mata and Java.
    • You can now select text between bookmarks by clicking Edit > Select between bookmarks.

➡ Data management
  • When you are using jdbc to load, write, or view data from a database with a Java API and your JDBC driver needs multiple JAR files to work, you can use the new jarpath() option to specify the directory where the driver JAR file is stored along with driver dependencies.
  • When you use egen functions iqr(), median(), and pctile(), you can now specify the autotype option to automatically create the smallest type of variable (byte, int, long, or double) possible to hold the results.

➡ Meta-analysis
  • Performing subgroup analysis? You can now obtain prediction intervals for each subgroup’s overall effect size when you use meta forestplot and meta summarize to create forest plots and meta-analysis summaries.
  • When you create a subgroup forest plot, the within-group significance test for each group-specific overall effect size is now displayed.
  • When you create forest plots, you now have fine control of the text that is displayed for the heterogeneity statistics, the homogeneity test, the significance test of overall effect size, and the subgroup variations of these statistics.

➡ Customizable Tables
  • The new etable command creates a table of estimation results from one or more estimation commands. This table can be customized in many ways—statistics to be reported, numeric and string formats, stars for significance, notes, title, labels, and more. The table can be exported directly to Microsoft Word, HTML, PDF, Microsoft Excel, LaTeX, Markdown, SMCL, or plain text. In most cases, etable is used alone to create, customize, and export a table in one step. However, because etable creates a collection, the table can be further customized using the collect suite of commands.
  • The table command is now more powerful and convenient.
  • Variables defining the rows, columns, and separate tables can now be string variables. Previously, only numeric variables were allowed in this context.
  • table now displays results using the formats of numeric variables that used to define the rows, columns, and separate tables and using the formats of factor variables specified in the statistic() option.
  • With the new zerocounts option, table will now report a 0 instead of leaving a cell empty when a cell count of 0 is encountered.
  • The collect suite of commands has enhancements for customizing and exporting tables.
    • With the new collect composite command, you can now create a single result composed of multiple other results. This means that you can create a result such as a mean and a standard deviation and place it in a single cell of your table rather than two separate cells.
    • You can now specify that, when a result exceeds a specified minimum or maximum value, some alternative text will be shown in the table. This is particularly useful for reporting p-values as “<0.0001” when they are less than this value.
    • You can now add customized titles and notes to your tables.
    • You can now append tables when exporting to SMCL, plain text, Markdown, HTML, and LaTeX documents.
    • When you create a table that includes stars for significance, you can now request that a note be added to the bottom of the table, indicating the significance level represented by each symbol.
    • collect export is now faster when exporting big tables with many empty cells to PDF, Microsoft Word, or Microsoft Excel.
    • You can now specify a color of nil or none to remove any existing color specification.
    • When exporting a table to an Excel file, you can now use the open option to open the Excel file in memory for modification.
    • You can now specify styles for exporting tables to LaTeX that determine whether the table is centered horizontally and whether the LaTeX table environment is used.

➡ Reporting
  • Publications often require headers and footers that alternate on odd and even pages. putdocx begin and putdocx sectionbreak now make it easy to create Word documents with content in the headers and footers that varies across pages.
  • When you need to append multiple documents using putdocx append or putdocx save, you can now specify which of the appended documents’ styles should be used in the final document.
  • You can now customize a table’s titles and notes—specifying the font, color, alignment, and more—when using putdocx table or putpdf table to add a table to your document.
  • putdocx table now allows you to specify individual row heights and column widths using the height() and width() options. Alternatively, you can specify the widths of all columns by providing a matrix of column widths.

➡ General statistics

The churdle command for fitting hurdle models now has improved numerical precision for linear models. In some cases, models that did not converge previously or for which initial values were not feasible can now be fit.

➡ Functions

Four new matrix functions—vech()vecp() invvech(), andinvvecp()—are now available for performing transformations between square matrices and vectors.

➡ Bayesian analysis
  • The bayesmh command has a number of enhancements:
    • The new prior mvnscaled() provides a multivariate normal prior with a scaled covariance matrix. The new distribution can be used to specify a conjugate prior for the regression coefficients of a linear regression model.
    • Gibbs sampling is now available for the combination of a probit likelihood and a multivariate normal prior for regression coefficients.
    • Time-series operators are now allowed with independent variables in linear, nonlinear, and multiequation models. This allows you to fit a wide variety of Bayesian time series models such as Bayesian threshold autoregressive models.
➡ Treatment effects
  • The new estat grangerplot command can now be used after didregress and xtdidregress to graphically assess whether treatment effects vary over time.
  • If you are using didregress or xtdidregress for difference-in-differences estimation and you are using the wild bootstrap to compute confidence intervals and p-values, you will now obtain results much faster. In addition, you can now perform the wild bootstrap in blocks if you need to improve memory use.

➡ Survival analysis

If you are using Stata/MP and fitting a Cox proportional hazards model for interval-censored survival-time data with 200 or more observations, estimation is now faster.

➡ Programming
  • In the PyStata module, you can now include the splash argument in the init() function. splash was added to control whether to display the splash message when Stata is initialized.
  • If you are using Mata solvers and inverters, you can now use the mata set matasolvetol command to set the scalar factor in the computation of tolerances.
  • Mata’s solve_tol() function is now faster. Therefore, the many Mata solvers and inverters that rely on solve_tol(), such as qrsolve(), lusolve(), and cholsolve(), are also faster. Likewise, Stata estimation commands (for example, sem) that use these functions are now faster.

➡ Speed
  • If you are using didregress or xtdidregress for difference-in-differences estimation and you are using the wild bootstrap to compute confidence intervals and p-values, you will now obtain results much faster.
  • If you are using Stata/MP and fitting a Cox proportional hazards model for interval-censored event-time data using stintcox with 200 or more observations, estimation is now faster.

Download the new features

Are you ready to use one of these new features? Want to find out what other changes we made? If you already have Stata 17, type

. update all

in your copy of Stata 17 to download the new features. Then type

. help whatsnew

to see a list of all the new features added in free updates since Stata 17 was released.

Upgrade Now