The below is my summary about adding time-series model to pymc3 which is a part of my proposal and I have already share my draft to numfocus. I have submitted a few pull request for pymc3. I think the proposal is the last step of my application. I appreciate any reply.
- Add ARIMA To Time-series Model:
The ARIMA model is a differential integrated moving average sub-regression model, one of the classic time-series predictive analysis methods, which consists of two processes: autoregressive and sliding average. The modeling process can be divided into roughly six steps: judging stability, differential processing, establishing corresponding time-series model based on identification features, parameter estimation, hypothesis testing and model prediction.
Among the 6 steps, there are 8 methods to implement, including autocorrelation function calculation method, partial autocorrelation function calculation method, stationary processing method, AR method, MA method, ARMA method, parameter estimation method and hypothesis test method. For the stationary processing among the 8, we put the different processing method into use. The parameter estimation can work for three methods altogether: moment estimation, least squares and maximum likelihood estimation. These three methods have their own advantages and disadvantage. We will implement all them in order to adapt to various situations.
- Add Prophet To Time-series Model:
Prophet is a time-series prediction model which is developed by Facebook. It differs from ARIMA in that it requires continuous time data and its data usage is more flexible. In pm-prophet, most of the function of prophet have been implemented without pystan. I will first learn the process of pm-prophet implementation and integrate it into pymc3. And the uncertainty estimate that pm-prophet does not implement is added to pymc3.