The new Stan 1.1.1, featuring Gaussian processes!

Screen Shot 2013-02-05 at 9.02.35 PM

We just released Stan 1.1.1 and RStan 1.1.1

As usual, you can find download and install instructions at:

http://mc-stan.org/

This is a patch release and is fully backward compatible with Stan and RStan 1.1.0. The main thing you should notice is that the multivariate models should be much faster and all the bugs reported for 1.1.0 have been fixed. We’ve also added a bit more functionality. The substantial changes are listed in the following release notes.

v1.1.1 (5 February 2012)
======================================================================

Bug Fixes
———————————-
* fixed bug in comparison operators, which swapped operator< with operator<= and swapped operator> with operator>= semantics
* auto-initialize all variables to prevent segfaults
* atan2 gradient propagation fixed
* fixed off-by-one in NUTS treedepth bound so NUTS goes at most to specified tree depth rather than specified depth + 1
* various compiler compatibility and minor consistency issues
* fixed bug in metaprogram preventing lower/upper bound constraints on matrices
* fixed print error for number of kept samples
* fixed floating point literal precision issue in code generation
* fixed bug in bernoulli_log for boundary chance of success theta=0 or theta=1
* many doc patches (mostly due to user comments — thanks!)
* replace boost sign() to avoid compiler conflicts
* trapping mismatched dimension assignments in arrays, matrices, and vectors

Enhancements
———————————-
* user’s guide chapters w. sample models
+ gaussian processes
+ measurement error and meta-analysis
+ clustering (soft k-means, LDA, naive Bayes)
+ ARCH, GARCH model section in regression chapter
* sample models
+ hidden Markov models (HMMs)
+ non-negative matrix factorization (NNMF)
* speed improvements to multivariate models and matrix solvers
+ mdivide_left, mdivide_left_tri_low, mdivide_right, mdivide_right_tri_low
+ determinant, log_determinant
+ inverse
* much more extensive probability tests
* unstacked vari for multivariate auto-diff unfolding
* faster multiply self transpose / columns_dot_self
* cleaned up error messages for size mismatches in accessors
* simplified vector view expression template parameterization
* cleaned up many –pedantic compiler warnings

New Functions
———————————-
* log absolute determinant, with optimized gradients
* probability functions
+ multivariate normal, precision parameterization
* model timing and n_eff output in CSV for all test models
* ongoing vectorizations and reparameterization of probability functions
* faster Phi_approx computing an approximate cumulative unit normal density
* added dims() function to extract dimensions of arrays of scalars, vectors, and matrices
* added size() function to extract the number of elements in an array

– The Stan Development Team

As usual, we thank the Department of Energy, Institute of Education Sciences, and National Science Foundation for partial support of this work. Your tax dollars are contributing to the public good that is open algorithms and open-source software.

6 thoughts on “The new Stan 1.1.1, featuring Gaussian processes!

  1. Dr. Gelman, will you be adding spatial functionality like car.normal, etc? I would love to make the switch from bugs to Stan, but need the spatial functions!

    Thanks!

    • I hadn’t even realized there was another cache of BUGS models we hadn’t implemented:

      http://www.mrc-bsu.cam.ac.uk/bugs/winbugs/geobugs12manual.pdf

      I’m going to have to figure the models out before I can make suggestions on how to code them in Stan.

      How much of the functionality of GeoBUGS do you need in terms of their special mapping and distance import functions? After a quick glance at the appendix of the above doc, I don’t see anything that’d get in the way of a direct implementation of these models in Stan.

      • Would be amazing! I wouldn’t need mapping functions or the ability to build adjacency matrices since those can be easily done in R and other environments. It would be really exciting for us who rely on GeoBUGS to see these models implemented in Stan, and I would be very happy to contribute in any way I can.

        My contact info is:
        Kathryn Morrison, McGill University, Dept of Epidemiology and Biostatistics
        kt.morrison AT mail.mcgill.ca

        Thanks!

    • I wish I’d understood GPs when you were visiting! Estimating hyperparameters for GPs is pretty easy in Stan once you understand GPs. I was inspired when Andrew assigned it as homework and Yuanjun Gao (who’s been adding some neat new functionality to Stan to estimate full mass matrices during warmup) shared his homework with me :-)

      The models are more efficient now that we improved the speed of matrix solver gradients. But they won’t be as efficient as dedicated GP packages until we add forward sampling, which is near the top of my to-do list (right after RM-HMC, and adding a Cholesky factor data type).

  2. I’m late to the party, but I’d like to ask for a CAR feature too.

    i’ve been looking at variants of the famous poison-lognormal models with two random effects where one random effect coming from the family of CAR processes (studied by the likes of besag, clayton, cressie, carlin and gelfand).

    I’ve been thinking of ways to speed up my current simulations (parameter expansion) and wondered if STAN had this up it’s sleeves.

    Any news?

    Seeing as some gaussian process feature is available, adding a CAR feature might be natural.
    Since under certain conditions, the CAR process can be cast as a MVN

    Maybe this could flex STAN’s muscles a bit.

Comments are closed.