GAS State Space models¶
Example¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import numpy as np
import pyflux as pf
import pandas as pd
nile = pd.read_csv('https://vincentarelbundock.github.io/Rdatasets/csv/datasets/Nile.csv')
nile.index = pd.to_datetime(nile['time'].values,format='%Y')
model = pf.GASLLEV(data=nile, target='Nile', family=pf.GASt()) # local level
USgrowth = pd.DataFrame(np.log(growthdata['VALUE']))
USgrowth.index = pd.to_datetime(growthdata['DATE'])
USgrowth.columns = ['Logged US Real GDP']
model2 = pf.GASLLT(data=USgrowth, family=pf.GASt()) # local linear trend model
|
Class Arguments¶
The GAS local level (GASLLEV) and GAS local linear trend (GASLLT) models are of the following form:
-
class
GASLLEV
(data, integ, target, family)¶ -
data
¶ pd.DataFrame or array-like : the time-series data
-
integ
¶ int : how many times to difference the time series (default: 0)
-
target
¶ string (data is DataFrame) or int (data is np.array) : which column to use as the time series. If None, the first column will be chosen as the data.
-
family
¶ a GAS family object; choices include GASExponential(), GASLaplace(), GASNormal(), GASPoisson(), GASSkewt(), GASt()
-
-
class
GASLLT
(data, integ, target, family)¶ -
data
¶ pd.DataFrame or array-like : the time-series data
-
integ
¶ int : how many times to difference the time series (default: 0)
-
target
¶ string (data is DataFrame) or int (data is np.array) : which column to use as the time series. If None, the first column will be chosen as the data.
-
family
¶ a GAS family object; choices include GASExponential(), GASLaplace(), GASNormal(), GASPoisson(), GASSkewt(), GASt()
-
Class Methods¶
-
adjust_prior
(index, prior)¶ Adjusts the priors of the model. index can be an int or a list. prior is a prior object, such as Normal(0,3).
Here is example usage for adjust_prior()
:
1 2 3 4 5 | import pyflux as pf
# model = ... (specify a model)
model.list_priors()
model.adjust_prior(2,pf.Normal(0,1))
|
-
fit
(method, **kwargs)¶ Estimates latent variables for the model. Returns a Results object. method is an inference/estimation option; see Bayesian Inference and Classical Inference sections for options. If no method is provided then a default will be used.
Optional arguments are specific to the method you choose - see the documentation for these methods for more detail.
Here is example usage for fit()
:
1 2 3 4 | import pyflux as pf
# model = ... (specify a model)
model.fit("M-H",nsims=20000)
|
-
plot_fit
(intervals, **kwargs)¶ Graphs the fit of the model. intervals is a boolean; if true shows 95% C.I. intervals for the states.
Optional arguments include figsize - the dimensions of the figure to plot - and series_type which has two options: Filtered or Smoothed.
-
plot_z
(indices, figsize)¶ Returns a plot of the latent variables and their associated uncertainty. indices is a list referring to the latent variable indices that you want ot plot. Figsize specifies how big the plot will be.
-
plot_predict
(h, past_values, intervals, **kwargs)¶ Plots predictions of the model. h is an int of how many steps ahead to predict. past_values is an int of how many past values of the series to plot. intervals is a bool on whether to include confidence/credibility intervals or not.
Optional arguments include figsize - the dimensions of the figure to plot.
-
plot_predict_is
(h, fit_once, **kwargs)¶ Plots in-sample rolling predictions for the model. h is an int of how many previous steps to simulate performance on. fit_once is a boolean specifying whether to fit the model once at the beginning of the period (True), or whether to fit after every step (False).
Optional arguments include figsize - the dimensions of the figure to plot.
-
predict
(h)¶ Returns DataFrame of model predictions. h is an int of how many steps ahead to predict.
-
predict_is
(h, fit_once)¶ Returns DataFrame of in-sample rolling predictions for the model. h is an int of how many previous steps to simulate performance on. fit_once is a boolean specifying whether to fit the model once at the beginning of the period (True), or whether to fit after every step (False).