Grocer: an econometric toolbox for Scilab

(Painting by Marion Dubois: thanks Marion! for more pictures see Marion's web page )

What is grocer? / Grocer capabilities / Download / What's new / Grocer citations /e-mail / Additional Grocer and Scilab material / Home

What is Grocer?

Grocer is the econometric toolbox for Scilab, a matrix-oriented software similar to Gauss and Matlab, that I have developed, first alone and since 2005 with Emmnanuel Michaux. The current version works with Scilab versions from the 5.5.0 (I do not maintain Grocer anymore for older Scilab versions).
Like Scilab, Grocer is free and open source.

Grocer Capabilities:

- ordinary least squares and various single equation methods (autocorrelated models, instrumental variables, non linear least squares, robust methods, quantile regression...)
- basic estimation with limited dependent variables: ordered logit and probit (with 2 or more variables); tobit; multivariate logit
- specification tests (multicolinearity, autocorrelation, heteroskedasticity, normality, predictive failure,...)
- simultaneous equations methods (SUR, two and three stage least squares,...)
- VAR, VECM, VARMA and GARCH estimation
- the Generalized Method of Moments (GMM)
- the Kalman filter and time varying parameters estimation
- unit root tests (ADF, KPSS,...), panel unit roots and cointegration methods (CADF, Johansen,...)
- various business cycle tools: HP, Baxter-King and Christiano-Fitzgerald filters, the Bry-Boschan-Harding-Pagan procedure for the dating of turning points, spectral analysis
- various panel data estimation methods: fixed and random effects, between estimation and panel models with common correlated effects
- Static and Dynamic factor estimation
- numerous time series disaggregation methods: Chow-Lin, Litterman,...
- a syntactic analyzer and a symbolic derivative program
- an optimization program that mixes various optimization devices to gain robustness
- tools to build, estimate and simulate backward macroeconometric models
- a pc-gets like device, that performs automatic general to specific estimations, including a block search algorithm to deal with the case when there are more variables than observations
- estimation of Markov-switching models
- Bayesian Model Averaging estimation and bayesian structural time-varying VAR estimation
- a contributions device, that provides contributions of exogenous variables to an endogenous one for any dynamic equation

You can download:


e-mail: grocer.toolbox[at] (of course, replace [at] with @).

What's new:

(2023/04/16): Grocer version 1.85 has been posted on the web.

This version contains the needed adaptations to work properly on Scilab 2023.0.0; all obsolete calls svd(.,0) have been replaced with svd(.,'e') (in functions bkw, bkw_scale, bkw_ols, hetero_sq0, ,heterosq0_a, test_add)

Several bugs have been corrected:
- function cumsub, that did not work properly with more than one exogenous variable, now works properly;
- display in demo tvp_d2 that did not work now works properly;
- function nlsmod that did not work properly when there were %nan in some series now work properly in this case;
- function deriv_eq, that performs symbolic derivation, could not work in some cases: this has been repaired;

Tests have been added in several functions (automatic_signed, explovars and explots used by all econometric functions to transform data into matrices, xlwrite), to make error messages more explicit.

Several functions have been enhanced:
- function explovars has been modified to allow all econometric functions to accept booleans, that are transformed into 0 and 1;
- demo automatic_signed_d of function automatic_signed, that performs automatic estimation with constrains on the signs of the coefficients, has been created;
- function johansen1 that performs johansen estimation on matrices, on the model of most other econometric functions, has been created and function johansen function has been modified accordingly ;
- function syslist used by multivariate functions;
- option has been added in pltseries and pltseries0 to allow the user to define her own y axis;
- function automatic has been modified to allow indicator saturation with any other method than ols;
- function statefore has been extended to allow forceasting over a time period;
- vertical dotted lines have been added and the width of the line of the median have been increeased in function fan_chart.

2021/11/21): Grocer version 1.84 has been posted on the web.

The main innovation of this version is the addition of a function readxlsx, that can read xlsx Excel files and of a function expb2xls that can export data to Excel files. Function readxls2bd has consequently been adapted and can now also read these recent Excel files. All this progress comes from the incorporation into Grocer of Stéphane Mottelet's toolbox xlreadwrite. Grocer also incorporates functions xlinfo, xlread and xlwrite from this toolbox. Note however that all these functions can be used only with Scilab versions starting from 6.0. Note also that function readxls is more efficient than the readxlsx one, so you should prefer the former in your work. Lastly function epxbd2exc has been renamed for more clarity epxbd2csv since it exported data in a text format. To keep ascending compatibility, old function epxbd2exc can however still be used.

Function impexc2bd, that imports data csv files into Scilab, has been improved.

As for most other econometric function, Grocer now has contains a adf1 function, that makes Augmented Dickey Fuller tests, as function adf, but that works only with matrices.

Function tsmat2ts that transforms series in a tsmat into ts has been extended to allow the addition of a prefix to the names of the corresponding ts. The corresponding help file, which was lacking, has been created.

The functions allowing the overloading of the logical operators "and" (& in Scilab) and "or" (| in Scilab) for ts have been added.

Because of a regression in Scilab 6.0 (corrected in Scilab 6.1), different versions of some subroutines of function create_model have been created for Scilab 6.0 and other Scilab versions.

An option 'growth rate' has been added to function prt_tsmat to allow the display of growth rate of databases encoded as tsmat.

Function statefore, which provides static forecasts for an econometric equation, has been extended to deal with a time period instead of only a lone date.

Functions da2m and da2q have been extended to deal with series that do not have data over a whole month or quarter.

A few bugs have been corrected: function pltseries did not display in some cases the upper dashed line, it now does; function param_g, that sets some default parameters for Grocer graphic functions (pltseries, pltseries0, histo_ts), and function define_func2inv, used by function statfore, did not work anymore with Scilab versions starting from 6.0, they now works with these versions; in ols4auto_upd, used by function automatic in the case of ols estimations, the log-likehood in the estimated models was not calculated properly, it is now (without consequences except if you recovered the log-likelihood from the regression result tlists: this is only for experts!); function num2date, that did not work properly with daily or weekly data, has been corrected.

(2020/06/28): Grocer version 1.83 has been posted on the web.

With Scilab 6.1, function create_model did not work anymore when some type of objects, e.g endogenous or coefficients, were only defined with suffixes ('y for endogenous, 'c for coefficients): this bug has been corrected.

Function etalcalinsee has been extended to allow the disaggregation of quarterly series into monthly ones. Comments in this function and in the ones called by it that were still in French have been translated into English.

A function test_ts, that checks that a variable is a proper time series has been added. This function is useful only if you have not imported your ts from an Excel or csv file and not created it with reshape, but created it directly as a tlist.

Function date2num_fq has been extended to deal with weekly dates.

A test has been added to function varma, that checks if there are parameters to estimate and gives an explicit error message when this is not the case.

References that were made in the text of numerous functions to the old page have been replaced with this one.

(2020/03/03): Grocer version 1.82 has been posted on the web.

The main goal of this new version is to make the adaptations needed by Scilab 6.1 version released on the 25th of February 2020 (in particular changes to the output of spzeros with null dimensions, the new type of the special character : and the display of strings): the 1.82 version should work on Scilab 6.1 as well as on older Scilab versions from the 5.5.0 one.

This version contains also new functions a2q, a2m and q2m that expand annual ts into a quarterly or monthly one by duplicating the annual values and quarterly ts into a monthly one by duplicating the quarterly values. Corresponding help files have been created.

This version also improves the display of bma by adding the constant, that is imposed to be present in all models, in the tables displayed: this allows better compatibility with other methods. The associated graphs have also been improved: the graphic window is now better filled in the case when some variables have their distibution not plotted because of a probabilty lower than 1%.

Function invxpx that is at the core of all functions involving ordinary least squares calculations has been simplified and its speed slightly improved.

A new option has been added to function hessian that allows to choose the step size used by the function.

Function legends_groc that adds a legend to a graph in functions pltseries0 and pltseries, that was not working anymore with recent Scilab versions, has been restaured.

(2019/11/30): Grocer version 1.81 has been posted on the web.

This new version contains minor innovations:
- the extension of tsmats to allow comments as for ts and to allow the comments to be kept by the ts created from a tsmat;
- the addition of 2 new options ('av growth rate' and 'series') to function tsmat_extrap, that extraps a series in a tsmat respectively with the average growth over a defined period and with the growth rate of an already extrapolated series;
- functions that solve systems of non linear equations have been somehow rationalised and their speed slightly improved;
- function expbd2exc has been modified to allow exporting data names defined by a string vector;
- function pltseries has been modified to deal with constant variables (not an interesting case, but that generated an error in previous Grocer versions).

A few bugs have been corrected:
- function DMA, that performs dynamic model averaging estimation, did not work anymore because of the modification of the satute of variable GROCEDIR: it works again;
- function datelf2hf0 did not work properly for some frequencies; this bug has been corrected.
- function histo_ts extended the x axis beyond the true value when values of the graphed series were all postive or all negative; this bug has been corrected.

2 chapters (15 and 30) have been modified: in chapter 15, the description of the pc-gets like automatic applied to panel methods has been added; chapter 30 has taken into account many useful comments by Thierry Pujol whom I thank warmly and the new options to extrap_tsmat are described.

(2019/06/01): Grocer version 1.8 has been posted on the web. This new version contains a major innovation: tools to build, estimate and simulate backward macroeconometric models. These tools come with specialized functions to solve system of nonlinear equations with variants of the Newton method, that are more robust than Scilab fsolve function. Many estimation functions have been adapted to work with model equations.

Several "low-level" estimation functions that were lacking have been created (iv1, hwhite1, lad1, olsarma1, olspec1, ridge1, robust1 and theil1) at this occasion.

A small number of functions have been adapted to work with Scilab 6.0.2.

The user manual has been adpated accordingly. A new chapter 30, describing how to build, estimate and simulate backward macroeconometric models, has been created; chapter 6, dealing with numerical methods has been extended to the resolution of systems of nonlinear equations. Chapters 2 (overview of Grocer), 3 (about time series), 4 (about matrices of time series), 5 (basic functions), 7 (generalities about regressions), 8 (about estimation of equations), 18 (about business cycles analysis), 20 (about symbolic analysis) and 31 (about printings and graphs) have been updated.

WARNING: With the release of Scilab 6.0 and because of the changes Siclab 6.0 entails to Grocer implementation, Grocer releases now work "only" with Scilab versions from the 5.5.0 one and not with older ones. If this poses a problem to you, do not hesitate to signal it to me by e-mail.

To see older modifications, see here

Last updated: 2023/04/16