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 until the 4.1.2 and from the 5.2.0 (the versions in between being inferior both to the 4.1.2 and the most recent versions, I do not maintain Grocer anymore for these Scilab versions: if for any reason, you nevertheless need it, e-mail me and I will then restore Grocer for these 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 (multicollinearity, 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
- an optimization program that mixes various optimization devices to gain robustness
- a pc-gets like device, that performs automatic general to specific estimations
- estimation of Markov-switching models
- Bayesian Model Averaging 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:

(2014/04/12): Grocer does not work properly on the just released Scilab version 5.5.0. Therefore, please use older Scilab version, until I have upgraded Grocer.

(2014/03/11): Grocer version 1.61 has been posted on the web. You can download Grocer in 2 different versions, according to the Scilab version you use:

  • until the 4.1.2 version,
  • from the 5.2.0 version.
  • This new version contains new functions: vargranger that performs Granger causality tests in a VAR; rolvar that performs VAR estimations on rolling periods; rolirf that calculates Impulse Response Function for rolling VAR; rolvar_granger that performs Granger (non-)causality tests for a rolling VAR (run help vargranger, help rolvar, help rolirf and help rolvar_granger for details).

  • In function pltseries0, an option to define the size of the graphic window has been added and allows to enter less items in the legend than the corresponding numbers of series.

  • Several bugs to function automatic and automatic_signed, mainly relative to corner solutions, have been corrected (thanks to intensive testing for an empirical project).

  • All '^' applied to vectors have been replaced by '.^' to comply with requirements of future Scilab releases.
  • (2013/10/13): Grocer version 1.6 has been posted on the web. The main novelties of the 1.6 with respect to the previous 1.55 version are the following:

  • new panel functions to estimate panel models with common correlated effects (written by Emmanuel Michaux) have been introduced;

  • a function DMA performing dynamic model averaging, a bayesian estimation method that deals with uncertainty on the true variables among N ones, while allowing time-varying parameters on these variables, has been added;

  • a function varwithfac that allows to introduce factors in a standard VAR has also been added;

  • function doornhans, that performs Doonik and Hansen normality test, has been extended to deal with multivariate models and 2 new functions, arlm0_multi and hetero_sq0_multi, have been created to perform the LM autocorrelation test and the heteroskedasticty test on squared exogenous variables on multivariate models;

  • an optimization function optimg that mixes Scilab optim function and Grocer nelmeade function to gain robustness has been introduced; at the occasion, all functions using an optimization program have been modified to be able to switch between the optim and optimg optimization functions and to allow the user to enter any option to these optimizers; this new function passes all 27 problems provided by the National Institute of Standards and Technology (see

  • a syntactic analyzer (function analyse_eq) and a symbolic derivative function (deriv_eq) have been added; function nls, that performs non linear least squares, now uses whenever possible the symbolic derivative instead of a numeric one;

  • function automatic, that aims at mimicking the LSE methodology, has been improved along several dimensions: first, for more efficiency, specification tests are now performed at the end of a "path", and no more in a systematic way, and, when specification test are not accepted, then the model is backtracked until they are; second, with a new option 'depth=n' the user can now test more models than previously; and third, the function has been adapted to deal with Probit and VAR models, and can be extended by the user to many other econometric methods with minimal programming; at the occasion the program has been made more modular and easier to maintain;

  • in the same vein, printing functions for univariate methods have been rationalized;

  • working of functions transforming variables into matrices (explon and explouniv), which are at the heart of almost all econometric functions, has been slightly modified for more flexibility: when a set of variables contains more than 1 constant variable, then a warning message is generated instead of stopping the function with an error;

  • functions stafore and dynfore could not deal with trends defined directly in the call of an estimation function: now they can;

  • calculation of forecast variance has been added to function varmaf

  • a few bugs have been corrected: working of functions performing temporal aggregation of time series (m2q, m2qa and q2a) has been restored for matrices of ts ('tsmat' objects); function pltseries could not deal anymore with time series and this has been restored; functions pltms_resid and pltms_yyhat did not adjust correctly the size of the sub-windows in the graphs presenting the residuals and the adjusted results from a multivariate Markov-switching and this has been corrected; the function performing the addition of 2 tsmats, %tsmat_m_tsmat did not work when the option for the names was 'reset' and this has been corrected.

    The user manual has been modified accordingly and slightly enhanced (correction of typos, of demos when they were no more working, ...).

    To see older modifications, see here

    Last updated: 2014/04/12