:orphan:

=============
Release 0.8.0
=============

See also changes in the unreleased 0.7

Release summary
---------------

The main features of this release are several new time series models based
on the statespace framework, multiple imputation using MICE as well as many
other enhancements. The codebase also has been updated to be compatible with
recent numpy and pandas releases.

statsmodels is using now github to store the updated documentation which
is available under
https://www.statsmodels.org/stable for the last release, and
https://www.statsmodels.org/devel/ for the development version.

This is the last release that supports Python 2.6.


**Warning**

API stability is not guaranteed for new features, although even in this case
changes will be made in a backwards compatible way if possible. The stability
of a new feature depends on how much time it was already in statsmodels main
and how much usage it has already seen.
If there are specific known problems or limitations, then they are mentioned
in the docstrings.


The following major new features appear in this version.

Statespace Models
-----------------

Building on the statespace framework and models added in 0.7, this release
includes additional models that build on it.
Authored by Chad Fulton largely during GSOC 2015

Kalman Smoother
^^^^^^^^^^^^^^^

The Kalman smoother (introduced in #2434) allows making inference on the
unobserved state vector at each point in time using data from the entire
sample. In addition to this improved inference, the Kalman smoother is required
for future improvements such as simulation smoothing and the expectation
maximization (EM) algorithm.

As a result of this improvement, all state space models now inherit a `smooth`
method for producing results with smoothed state estimates. In addition, the
`fit` method will return results with smoothed estimates at the maximum
likelihood estimates.

Postestimation
^^^^^^^^^^^^^^

Improved post-estimation output is now available to all state space models
(introduced in #2566). This includes the new methods `get_prediction` and
`get_forecast`, providing standard errors and confidence intervals as well
as point estimates, `simulate`, providing simulation of time series following
the given state space process, and `impulse_responses`, allowing computation
of impulse responses due to innovations to the state vector.

Diagnostics
^^^^^^^^^^^

A number of general diagnostic tests on the residuals from state space
estimation are now available to all state space models (introduced in #2431).
These include:

* `test_normality` implements the Jarque-Bera test for normality of residuals
* `test_heteroskedasticity` implements a test for homoskedasticity of
  residuals similar to the Goldfeld-Quandt test
* `test_serial_correlation` implements the Ljung-Box (or Box-Pierce) test for
  serial correlation of residuals

These test statistics are also now included in the `summary` method output. In
addition, a `plot_diagnostics` method is available which provides four plots
to visually assess model fit.

Unobserved Components
^^^^^^^^^^^^^^^^^^^^^

The class of univariate Unobserved Components models (also known as structural
time series models) are now available (introduced in #2432). This includes as
special cases the local level model and local linear trend model. Generically
it allows decomposing a time series into trend, cycle, seasonal, and
irregular components, optionally with exogenous regressors and / or
autoregressive errors.

Multivariate Models
^^^^^^^^^^^^^^^^^^^

Two standard multivariate econometric models - vector autoregressive
moving-average model with exogenous regressors (VARMAX) and Dynamic Factors
models - are now available (introduced in #2563). The first is a popular
reduced form method of exploring the covariance in several time series, and the
second is a popular reduced form method of extracting a small number of common
factors from a large dataset of observed series.

Recursive least squares
^^^^^^^^^^^^^^^^^^^^^^^

A model for recursive least squares, also known as expanding-window OLS, is
now available in `statsmodels.regression` (introduced in #2830).

Miscellaneous
^^^^^^^^^^^^^

Other improvements to the state space framework include:

* Improved missing data handling #2770, #2809
* Ongoing refactoring and bug fixes in fringes and corner cases


Time Series Analysis
--------------------

Markov Switching Models
^^^^^^^^^^^^^^^^^^^^^^^

Markov switching dynamic regression and autoregression models are now
available (introduced in #2980 by Chad Fulton). These models allow regression
effects and / or autoregressive dynamics to differ depending on an unobserved
"regime"; in Markov switching models, the regimes are assumed to transition
according to a Markov process.

Statistics
^^^^^^^^^^

* KPSS stationarity, unit root test #2775 (N-Wouda)
* The Brock Dechert Scheinkman (BDS) test for nonlinear dependence is now
  available (introduced in #934 by Chad Fulton)
* Augmented Engle/Granger cointegration test (refactor hidden function) #3146 (Josef Perktold)


New functionality in statistics
-------------------------------

Contingency Tables #2418 (Kerby Shedden)

Local FDR, multiple testing #2297 (Kerby Shedden)

Mediation Analysis #2352 (Kerby Shedden)

Confidence intervals for multinomial proportions #3162 (Sebastien Lerique, Josef Perktold)

other:

* weighted quantiles in DescrStatsW #2707 (Kerby Shedden)


Duration
--------

Kaplan Meier Survival Function #2614 (Kerby Shedden)

Cumulative incidence rate function #3016 (Kerby Shedden)

other:

* frequency weights in Kaplan-Meier #2992 (Kerby Shedden)
* entry times for Kaplan-Meier #3126 (Kerby Shedden)
* intercept handling for PHReg #3095 (Kerby Shedden)


Imputation
----------

new subpackage in `statsmodels.imputation`

MICE #2076  (Frank Cheng GSOC 2014 and Kerby Shedden)

Imputation by regression on Order Statistic  #3019 (Paul Hobson)


Penalized Estimation
--------------------

Elastic net: fit_regularized with L1/L2 penalization has been added to
OLS, GLM and PHReg (Kerby Shedden)


GLM
---

Tweedie is now available as new family #2872 (Peter Quackenbush, Josef Perktold)

other:

* frequency weights for GLM (currently without full support) #
* more flexible convergence options #2803 (Peter Quackenbush)


Multivariate
------------

new subpackage that currently contains PCA

PCA was added in 0.7 to statsmodels.tools and is now in statsmodels.multivariate


Documentation
-------------

New doc build with latest jupyter and Python 3 compatibility (Tom Augspurger)


Other important improvements
----------------------------

several existing functions have received improvements


* seasonal_decompose: improved periodicity handling #2987 (ssktotoro ?)
* tools add_constant, add_trend: refactoring and pandas compatibility #2240 (Kevin Sheppard)
* acf, pacf, acovf: option for missing handling #3020 (joesnacks ?)
* acf, pacf plots: allow array of lags #2989 (Kevin Sheppard)
* pickling support for ARIMA #3412 (zaemyung)
* io SimpleTable (summary): allow names with special characters #3015 (tvanessa ?)
* tsa tools lagmat, lagmat2ds: pandas support #2310 #3042 (Kevin Sheppard)
* CompareMeans: from_data, summary methods #2754 (Valery Tyumen)
* API cleanup for robust, sandwich covariances #3162 (Josef Perktold)
* influence plot used swapped arguments (bug) #3158



Major Bugs fixed
----------------

* see github issues

While most bugs are usability problems, there is now a new label `type-bug-wrong`
for bugs that cause that silently incorrect numbers are returned.
https://github.com/statsmodels/statsmodels/issues?q=label%3Atype-bug-wrong+is%3Aclosed



Backwards incompatible changes and deprecations
-----------------------------------------------

* predict now returns a pandas Series if the exog argument is a DataFrame,
  including missing/NaN values
* PCA moved to multivariate compared to 0.7


Development summary and credits
-------------------------------

Besides receiving contributions for new and improved features and for bugfixes,
important contributions to general maintenance came from

* Kevin Sheppard
* Pierre Barbier de Reuille
* Tom Augsburger

and the general maintainer and code reviewer

* Josef Perktold

Additionally, many users contributed by participation in github issues and
providing feedback.

Thanks to all of the contributors for the 0.8 release (based on git log):

.. note::

   * Ashish
   * Brendan
   * Brendan Condon
   * BrianLondon
   * Chad Fulton
   * Chris Fonnesbeck
   * Christian Lorentzen
   * Christoph T. Weidemann
   * James Kerns
   * Josef Perktold
   * Kerby Shedden
   * Kevin Sheppard
   * Leoyzen
   * Matthew Brett
   * Niels Wouda
   * Paul Hobson
   * Pierre Barbier de Reuille
   * Pietro Battiston
   * Ralf Gommers
   * Roman Ring
   * Skipper Seabold
   * Soren Fuglede Jorgensen
   * Thomas Cokelaer
   * Tom Augspurger
   * ValeryTyumen
   * Vanessa
   * Yaroslav Halchenko
   * dhpiyush
   * joesnacks
   * kokes
   * matiumerca
   * rlan
   * ssktotoro
   * thequackdaddy
   * vegcev

Thanks to all of the contributors for the 0.7 release:

.. note::

   * Alex Griffing
   * Antony Lee
   * Chad Fulton
   * Christoph Deil
   * Daniel Sullivan
   * Hans-Martin von Gaudecker
   * Jan Schulz
   * Joey Stockermans
   * Josef Perktold
   * Kerby Shedden
   * Kevin Sheppard
   * Kiyoto Tamura
   * Louis-Philippe Lemieux Perreault
   * Padarn Wilson
   * Ralf Gommers
   * Saket Choudhary
   * Skipper Seabold
   * Tom Augspurger
   * Trent Hauck
   * Vincent Arel-Bundock
   * chebee7i
   * donbeo
   * gliptak
   * hlin117
   * jerry dumblauskas
   * jonahwilliams
   * kiyoto
   * neilsummers
   * waynenilsen

These lists of names are automatically generated based on git log, and may not be
complete.
