Release Notes for BayES v.2.5
The following updates were made to BayES v.2.5:
- Models:
- The mfx() function can be used on multivariate Probit models to calculate marginal effects on the probability of success for each response variable, either marginally with respect to the values of the remaining response variables or conditionally on their values.
- The predict() function can be used on any discrete-response model to generate predictions of the probabilities associated with each model.
Release Notes for BayES v.2.4
The following updates were made to BayES v.2.4:
- Models:
- The identification strategy for multinomial and conditional probit models (available through the mnprobit() and cprobit() functions, respectively) has changed: the restriction is now imposed, instead of , which was used in previous versions, where is the precision matrix of the error terms in the latent-variable representations of the models. This change, obviously, affects the posterior distributions of the parameters, but marginal effects should remain unchanged.
- The mvprobit() function can be used to estimate multivariate Probit models with arbitrary number of right-hand-side variables. After estimation, marginal effects on the probability of each outcome variable being equal to one can be calculated unconditionally on the values of the remaining outcome variables. Marginal effects conditionally on the values of the remaining outcome variables will be implemented in the next release of BayES.
- Scripting:
- The functions sin(), cos() and tan() can be used to calculate, respectively the sine, cosine and tangent of matrices passed to them as arguments. Similarly, arcsines, arccosines and arctangents cane be calculated using the functions asin(), acos() and atan().
- The functions erf() and erfc() can be used to evalute, respectively, the error function and the complementary error fucntion at the points contained in matrices passed to them as arguments.
Release Notes for BayES v.2.3
The following updates were made to BayES v.2.3:
- Models:
-
The
lm_lc()
function can now be used to estimate also latent-class linear models for panel data. These
models restrict each group in the panel to belong to the same class for the entire period for
which it is observed (no class switching within a group). The syntax for the
lm_lc()
function is identical for cross-sectional and panel data and BayES estimates the panel-data
model whenever the dataset used for estimation has been declared as a panel.
There are two types of models in this category:- latent-class models in which the prior class-membership probabilities are the same for all observations/groups and a Dirichlet prior is imposed on these probabilities
- latent-class models in which the prior class-membership probabilities are determined by observation- or group-specific characteristics, using a multinomial-Logit model
-
The
sf_lc()
function can be used to estimate latent-class stochastic frontier models for either cross-sectional
or panel data. The latter type of models restrict each group in the panel to belong to the same
class for the entire period for which it is observed (no class switching within a group), while
the former allow switching of class-membership over time. The syntax for the
sf_lc()
function is identical for cross-sectional and panel data and BayES estimates the panel-data
model whenever the dataset used for estimation has been declared as a panel.
There are two types of models in this category:- latent-class models in which the prior class-membership probabilities are the same for all observations/groups and a Dirichlet prior is imposed on these probabilities
- latent-class models in which the prior class-membership probabilities are determined by observation- or group-specific characteristics, using a multinomial-Logit model
BayES supports two specifications for the distribution of the noise component of the error:- Exponential with rate parameter lambda
- half-Normal with precision parameter phi
-
The
sf_rc()
function can be used to estimate random-coefficients stochastic frontier models for panel data.
As with linear random-coefficients models, BayES supports specifications where all or only some
of the independent variables are associated with group-specific parameters, the remaining being
common to all groups.
BayES supports two specifications for the distribution of the noise component of the error:- Exponential with rate parameter lambda
- half-Normal with precision parameter phi
-
The
lm_lc()
function can now be used to estimate also latent-class linear models for panel data. These
models restrict each group in the panel to belong to the same class for the entire period for
which it is observed (no class switching within a group). The syntax for the
lm_lc()
function is identical for cross-sectional and panel data and BayES estimates the panel-data
model whenever the dataset used for estimation has been declared as a panel.
Release Notes for BayES v.2.2
The following updates were made to BayES v.2.2:
- General system:
- The set_cs() function can now be used to remove any time structure from a dataset, previously set via a call to either the set_ts() (time series) or set_pd() (panel data) functions.
- Models:
-
The
lm_lc()
function can be used to estimate latent-class linear models. There are two types of models in
this category:
- latent-class models in which the prior class-membership probabilities are the same for all observations and a Dirichlet prior is imposed on these probabilities
- latent-class models in which the prior class-membership probabilities are determined by observation-specific characteristics, using a multinomial-Logit model
Currently this function ignores any time structure in the dataset. In future releases the same function will be used to estimate latent-class models for panel data, while restricting each group to belong to the same class for the entire period for which it is observed (no class switching within a group).
-
The
lm_lc()
function can be used to estimate latent-class linear models. There are two types of models in
this category:
Release Notes for BayES v.2.1
The following updates were made to BayES v.2.1:
- General system:
- BayES now provides an interface to Stan via the stan() interface function. This function works in a similar way to the corresponding interface functions for JAGS and OpenBUGS: it takes a Stan model specification file as input, along with any BayES matrices of data and returns a model item that contains the draws generated by Stan. A graphical interface to Stan is available from BayES's main menu via Interfaces → Stan.
- A sightly slower, but more robust algorithm for sampling from a multivariate truncated Normal distribution is used in the background when estimating the parameters of multinomial and conditional Probit models. These models can now be applied to datasets where the response variable involves a much larger number of alternatives/choices.
- Models:
- The tobitII() function can be used to estimate type II Tobit models for sample selection.
Release Notes for BayES v.2.0
This is a major release of BayES and represents a milestone. Now BayES runs on all three major operating systems: Microsoft Windows, Linux and macOS!
The following updates were made to BayES v.2.0:
- General system:
- Many glitches, related to the GUI, are fixed in the macOS version of BayES. Now BayES for macOS is expected to perform as well as on other platforms
- The GUI for Linux systems is now using GTK+3. As most modern Linux distributions provide native support for GTK+3, BayES can now run smoothly on them.
- The Linux installer is now slightly leaner and instead of shipping system libraries, it performs tests on dependencies during installation and issues errors if a system library is missing. This approach increases the chances that BayES will run on Linux distributions it has never been tested on.
- Models:
- The oprobit() and oplogit() functions can be used to estimate models in which the response variable is ordinal.
Release Notes for BayES v.1.13
The following updates were made to BayES v.1.13:
- General system:
- A version that runs natively on macOS is now available. This is still at a beta stage and has some known issues. Most importantly, once a script is submitted for execution, the GUI becomes unresponsive and especially the BayES console freezes until execution of the last command in the script completes. At this stage any output intended for the BayES console is printed on it in bulk. This issue appears only when BayES runs from the GUI and not when a script is submitted for execution from the command shell. Hopefully, it will be resolved in the next release.
- Models:
-
The
tobitI()
function can be used to estimate type I Tobit models. This function allows censoring from below
or above (or both) and after estimation it can calculate marginal effects on three quantities:
- expected value of the observed variable
- expected value of the observed variable, given that this is not censored
- probability of censoring
- The poisson() and nbinom() functions can be used to estimate the parameters of models in which the dependent variable assumes non-negative integer values (count-data models). The difference between the two functions is that in the former the dependent variable follows a Poisson distribution, while in the latter the dependent variable follows a negative-Binomial distribution. In both cases, the expected value of the dependent variable is a expressed as a function of independent variables.
-
The
tobitI()
function can be used to estimate type I Tobit models. This function allows censoring from below
or above (or both) and after estimation it can calculate marginal effects on three quantities:
- Distributions and random-number generators:
- The drchrnd() function automates generation of random vectors from a Dirichlet distribution.
Release Notes for BayES v.1.12
The following updates were made to BayES v.1.12:
- General system:
- All computationally-intensive post-estimation processes (calculating marginal effects, forecasting, etc.) are now multi-threaded. BayES automatically uses as many threads as the "chains" argument used when calling the estimation function of the respective model.
- Models:
- The multinomial and conditional Probit models, which are available through the mnprobit() and cprobit() functions, respectively, can now calculate marginal effects. These marginal effects can be calculated at the means or medians of the independent variables, at any user-provided point or at all data points in the dataset used for estimation. However, calculation of marginal effects is a computationally intensive process, which can take an excessive amount of time when performed at each data point.
- Graphical User Interface:
- BayES' main window now contains a toolbar providing quick access to frequently-used operations, such as importing and exporting data, loading and saving workspaces, toggling the visibility of the panes of the main window, as well as a button for interrupting the currently running job.
- Additional information on the operation currently performed is now included next to the progress bar at the bottom-left corner of the main window.
- Hovering over the progress bar at the bottom-left corner of the main window as this bar is being filled displays information on the elapsed time since the operation started, as well as an estimate of the remaining time until this operation completes.
Release Notes for BayES v.1.11
The following updates were made to BayES v.1.11:
- Models:
- The multinomial and conditional Probit models, which are available through the mnprobit() and cprobit() functions, respectively, can now provide approximations to the log-marginal likelihood.
- The mnlogit() and clogit() functions can be used to estimate multinomial and conditional Logit models, respectively. The implementation of these two models is complete, providing approximations to the log-marginal likelihood and calculation of marginal effects.
Release Notes for BayES v.1.10
The following updates were made to BayES v.1.10:
- Models:
- The mnprobit() and cprobit() functions can be used to estimate multinomial and conditional Probit models, respectively. The implementation of these two models is not yet complete; approximations of the log-marginal likelihood and calculation of marginal effects will be implemented in future releases.
- Bug fixes:
- The webimport() function could close the connection and terminate prematurely under Microsoft® Windows® systems, leading to only part of the data imported. This bug has been fixed in version 1.10.
- Attempting to load a workspace containing an empty dataset (no observations) led to BayES hanging indefinitely. This bug has been fixed in version 1.10.
Release Notes for BayES v.1.9
The following updates were made to BayES v.1.9:
- New keyboard shortcuts are available for interacting with BayES through its GUI:
- A job can be interrupted when either BayES' main window or its script editor have focus by hitting Ctrl+Shift+I.
- In the script editor window Alt+1 brings the first open script to focus, Alt+2 brings the second open script to focus, and so on.
- In the script editor window Alt+Page Down brings the next open script to focus and Alt+Page Up brings the previous open script to focus.
- General system:
- The most up-to-date version, as of the date of the release, of Bayesian Econometrics using BayES™, is now shipped with the installer and is made available from BayES's main menu via Help → Bayesian Econometrics using BayES.
- Bug fixes:
- Errors and warnings printed on the BayES console are now better formatted under Microsoft® Windows® systems.
- The option to automatically change the current working directory upon exporting data from BayES was ignored in previous releases. This bug has been fixed in version 1.9.
Release Notes for BayES v.1.8
The following update was made to BayES v.1.8:
- Models:
-
The
probit_re()
and
logit_re()
functions can be used to estimate a binary Probit and Logit models with random effects. The
mfx()
function can be used on models of this type stored in memory to calculate and report marginal
effects of two types:
- marginally with respect to group heterogeneity (Average Partial Effects)
- conditionally on the group-specific error term being equal to zero
-
The
probit_re()
and
logit_re()
functions can be used to estimate a binary Probit and Logit models with random effects. The
mfx()
function can be used on models of this type stored in memory to calculate and report marginal
effects of two types:
Release Notes for BayES v.1.7
The following update was made to BayES v.1.7:
- Scripting:
- The groupmeans(), groupvars(), groupsds(), groupmedians(), groupsums() and groupcounts() functions are added, which can be used to calculate summary statistics per group in datasets which have been declared as panels using the set_pd() function. These functions are added, primarily, to facilitate estimation of fixed-effects models.
- Bug fixes:
- Plotting multiple plots on a figure window with a single row using the multiplot() function would mix the order of plots. This bug has been fixed in version 1.7.
Release Notes for BayES v.1.6
The following update was made to BayES v.1.6:
- Models:
- The lm() function can now be used to estimate a linear model with heteroskedastic error. In this model the precision of the error term follows a log-Normal distribution, with its location parameter being determined by a vector of covariates.
Release Notes for BayES v.1.5
The following updates and changes were made to BayES v.1.5:
- General system:
- webimport() is a new function that can be used to load data into BayES, directly from the Internet. It works like the typical import() function, but its first argument is a URL that points to the data, instead of a filename on a local drive. This function is provided, primarily, so that the code samples contained in the textbook Bayesian Econometrics using BayES™ can be executed directly, without having to download the datasets to a local drive. However, this function can be used to load data from any URL, as long as the data are organized such that each variable takes up a column, the first row contains the variable names and the data are delimited by a comma, semicolon or tab.
- Plotting:
- The "colors" optional argument can be used in all plotting functions to specify the colors to be used when plotting. The value of this argument must be a matrix with three columns and all elements between zeros and one. Each row of the matrix specifies a color in RGB (red-green-blue) format, with the first row specifying the background color, the second the color of the axes and the text labels and the remaining rows specifying the colors used for plotting the data.
- Interfaces to external programs:
- A call to the jags() interface function now loads JAGS' glm module automatically. Loading this module can result in samplers which have much lower inefficiency factors in some models, especially those based on panel-data.
Release Notes for BayES v.1.4
The following updates and changes were made to BayES v.1.4:
- Models:
- The irf() function can be used on VAR models stored in memory to calculate and plot impulse response functions. The impulses can be on the raw errors or on errors that orthogonalized using the Cholesky decomposition of the system's covariance matrix. The unit of the impulse can be either one unit of the endogenous variable or one standard deviation of the respective error term.
- Interfaces to external programs:
- BayES can now find the command-line-interface executable for GNU Octave under Microsoft® Windows® systems for newer versions of GNU Octave.
- Bug fixes:
- The forecast() function would lead to a crash when the forecast horizon was left unspecified. This bug has been fixed in version 1.4.
Release Notes for BayES v.1.3
The following updates and changes were made to BayES v.1.3:
- Distributions and random-number generators:
- support for the Poisson distribution is added, with the poissonrnd(), poissonpdf(), and poissoncdf() returning random numbers, the probability mass and cumulative functions, respectively
- support for the Binomial distribution is added, with the binomrnd(), binompdf(), and binomcdf() returning random numbers, the probability mass and cumulative functions, respectively
- support for the Negative-Binomial distribution is added, with the nbinomrnd(), nbinompdf(), and nbinomcdf() returning random numbers, the probability mass and cumulative functions, respectively
- Models:
- The varm() function can be used to estimate Vector Autoregressive (VAR) models using time-series data. Additionally, the forecast() function can be used on VAR models stored in memory to produce and store forecasts. Support for VAR models is not yet complete: functions to calculate and plot impulse response functions and to test the stability of the VAR system will be added in future releases.
Release Notes for BayES v.1.2
The following updates and changes were made to BayES v.1.2:
- General system:
- Additional checks are conducted when importing data. Importing data now takes longer, but informative error messages are produced when something goes wrong in the process.
- Datasets can now handle string (text) variables. Support for string variables is limited, in the sense that the entries of string variables cannot be altered or printed on the BayES console. However, these entries can be viewed in the data viewer or used to sort the data according to them, in alphabetical order.
- Setting the dataset structure to time-series or panel-data can now also set the frequency
of the data. The following formats are accepted:
- "index": the time index consists of integer values
- "yyyyqx": quarterly data
- "yyyymx": monthly data
- "yyyy/mm/dd": daily data
- Scripting:
- The lag() and diff() functions are added, which can be used to take lags/leads or differences of a variable in a dataset that is marked either as time-series or panel. Lags/leads can be of any length, while differences can be of any order. Seasonal differences are also supported by the diff() function.
- The quadrature() function is added, which can be used to approximate integrals using either Gauss-Hermite or Gauss- Laguerre quadratures.
- Bug fixes:
- The evpdf() function returned wrong values when a matrix was passed as the first argument. This bug has been fixed in version 1.2.
- Exporting plots in the JPEG format under Microsoft® Windows® produced an error. This bug has been fixed in version 1.2.
- Multiple minor bugs have been identified and fixed in version 1.2. These were mostly related to reporting errors when a command failed.
The major changes listed above set the basis for working with time-series data. ARIMA and VAR models are on their way!
Release Notes for BayES v.1.1
The following updates and changes were made to BayES v.1.1:
- Graphical User Interface:
- A "Quick Start" dialog is displayed the first time the user starts BayES. This can be deactivated so that it does not pop-up in subsequent initializations of the program.
- A new pane, the matrix viewer, is available to the BayES desktop. As the name suggests, this pane can be used to display the values of matrices in the current workspace.
-
The GUI provides better mouse-click integration in the following ways:
- double-clicking on a dataset or variable in the datasets pane displays the dataset in the dataset viewer
- double-clicking on a model in the models pane prints the model's results on the BayES console
- double-clicking on a matrix in the matrices pane displays the matrix in the matrix viewer
- Plotting:
- BayES now supports multiple plots per figure window via the multiplot() and subplot() functions
- A new type of plot is available via the plotdraws() function. This function can be used to create four types of plots from the draws from the posterior distribution of a parameter: (i) history of the draws per chain, (ii) correlogram, (iii) histogram, and (iv) kernel density estimate per chain.
- Scripting:
- The plotting functions (acf(), hist(), kden(), plot(), scatter(), plotdraws(), and multiplot()) can now return, as a string, the title of the figure window (Figure 1, Figure 2, etc.) on which they are plotting. This string can later be used to save or close plots programmatically, or as an argument to the subplot() function. In this way, BayES provides a means of referring to figure windows without having to keep in mind how many windows are currently open. This approach is similar to obtaining a "graphics handle" to a figure.
- Bug fixes:
- Running the probit() and logit() functions while not requesting the Chib and Jeliazkov (2001) approximation to the log-marginal likelihood led to a crash in version 1.0. This bug has been fixed in version 1.1.
- Exporting plots in .eps format after having closed another figure window resulted in a file that contained only a black background. This bug has been fixed in version 1.1.
Acknowledgements
Colleagues and friends have provided comments and suggestions on previous releases of BayES, as well as on the BayES website, and I am grateful to them. These include, in alphabetical order:
- Yu-Fu Chen
- Maria Grydaki
- Dooruj Rambaccussing
If you find a bug which is not documented above, I would appreciate it if you could let me know by email, so that I can fix it.