{"action":"created","issue":{"url":"https://api.github.com/repos/statsmodels/statsmodels/issues/2845","repository_url":"https://api.github.com/repos/statsmodels/statsmodels","labels_url":"https://api.github.com/repos/statsmodels/statsmodels/issues/2845/labels{/name}","comments_url":"https://api.github.com/repos/statsmodels/statsmodels/issues/2845/comments","events_url":"https://api.github.com/repos/statsmodels/statsmodels/issues/2845/events","html_url":"https://github.com/statsmodels/statsmodels/pull/2845","id":138368472,"number":2845,"title":"ENH: Statespace: New / improved Kalman filter, smoother, simulation smoother","user":{"login":"ChadFulton","id":280864,"avatar_url":"https://avatars.githubusercontent.com/u/280864?v=3","gravatar_id":"","url":"https://api.github.com/users/ChadFulton","html_url":"https://github.com/ChadFulton","followers_url":"https://api.github.com/users/ChadFulton/followers","following_url":"https://api.github.com/users/ChadFulton/following{/other_user}","gists_url":"https://api.github.com/users/ChadFulton/gists{/gist_id}","starred_url":"https://api.github.com/users/ChadFulton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChadFulton/subscriptions","organizations_url":"https://api.github.com/users/ChadFulton/orgs","repos_url":"https://api.github.com/users/ChadFulton/repos","events_url":"https://api.github.com/users/ChadFulton/events{/privacy}","received_events_url":"https://api.github.com/users/ChadFulton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/statsmodels/statsmodels/labels/comp-tsa","name":"comp-tsa","color":"ededed"},{"url":"https://api.github.com/repos/statsmodels/statsmodels/labels/type-enh","name":"type-enh","color":"99ffff"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-03-04T03:50:04Z","updated_at":"2016-03-08T03:18:12Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/statsmodels/statsmodels/pulls/2845","html_url":"https://github.com/statsmodels/statsmodels/pull/2845","diff_url":"https://github.com/statsmodels/statsmodels/pull/2845.diff","patch_url":"https://github.com/statsmodels/statsmodels/pull/2845.patch"},"body":"Closes #2761. See that issue for an overview. Basically, the improvements amount to:\r\n\r\n- Perfomance improvements (Cython-based smoother and stationary initialization for the filter)\r\n- New filter methods (univariate, collapsed; both help in the case of a large number of endogenous variables)\r\n- A simulation smoother (faster time series simulation, possibility of Gibbs-sampling)\r\n- The new Cython files should be easier to maintain and extend.\r\n\r\nThis PR cleans up and augments the state space component written in Cython. Notes on the new cython files:\r\n\r\n- Uses the Cython blas and lapack wrappers in Scipy >= v0.16, so we can avoid writing our own wrapping code\r\n- Modularizes the Cython files (rather than sticking everything into one giant Cython file), which allows \"plugging in\" different filtering and smoothing algorithms (e.g.  univariate vs the conventional)\r\n\r\nWith this PR there would be two versions of state space \"backends\" (the Cython-based filtering, smoothing, etc.) served by a single \"frontend\" (the python-based classes with which users interact).\r\n\r\nThe two backends are fully compatible, except that the newer one has more features. Thus the frontend classes only needs to check to make sure older systems don't try to use features that are only available with the new backend. Similarly, a single set of unit tests serve both backends, except that the tests with the newer features are only run if those features are available.\r\n\r\nThe new Cython files cannot be built when the user has Scipy < 0.16, so the `setup.py` file builds a list of exclusions based on the availability of `scipy.linalg.cython_blas` so the `cythonize` script can skip them.\r\n\r\nAt runtime, the same check (`scipy.linalg.cython_blas`) is used to select the appropriate backend."},"comment":{"url":"https://api.github.com/repos/statsmodels/statsmodels/issues/comments/193581954","html_url":"https://github.com/statsmodels/statsmodels/pull/2845#issuecomment-193581954","issue_url":"https://api.github.com/repos/statsmodels/statsmodels/issues/2845","id":193581954,"user":{"login":"josef-pkt","id":440735,"avatar_url":"https://avatars.githubusercontent.com/u/440735?v=3","gravatar_id":"","url":"https://api.github.com/users/josef-pkt","html_url":"https://github.com/josef-pkt","followers_url":"https://api.github.com/users/josef-pkt/followers","following_url":"https://api.github.com/users/josef-pkt/following{/other_user}","gists_url":"https://api.github.com/users/josef-pkt/gists{/gist_id}","starred_url":"https://api.github.com/users/josef-pkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josef-pkt/subscriptions","organizations_url":"https://api.github.com/users/josef-pkt/orgs","repos_url":"https://api.github.com/users/josef-pkt/repos","events_url":"https://api.github.com/users/josef-pkt/events{/privacy}","received_events_url":"https://api.github.com/users/josef-pkt/received_events","type":"User","site_admin":false},"created_at":"2016-03-08T03:18:12Z","updated_at":"2016-03-08T03:18:12Z","body":"I don't have much experience with cython, at least not in details.\r\n\r\nI will look at it. My main question when I saw this was how robust it is and whether we should merge it for 0.8 or if it needs a longer trial period in master. Assuming 0.8 will be released in something like 3 weeks."}}