高斯状态空间模型

示例

 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.LLEV(data=niles,target='Poisson') # 局部水平模型

USgrowth = pd.DataFrame(np.log(growthdata['VALUE']))
USgrowth.index = pd.to_datetime(growthdata['DATE'])
USgrowth.columns = ['Logged US Real GDP']

model2 = pf.LLT(data=USgrowth) # 局部线性趋势模型

类参数

局部水平(LLEV)和局部线性趋势(LLT)模型的形式如下:

class LLEV(data, integ, target)
data

pd.DataFrame 或类数组对象:时间序列数据

integ

int : 时间序列的差分次数(默认值:0)

target

字符串(数据为DataFrame)或整数(数据为np.array):指定用作时间序列的列。如果为None,将选择第一列作为数据。

class LLT(data, integ, target)
data

pd.DataFrame 或类似数组 : 时间序列数据

integ

int : 时间序列的差分次数(默认值:0)

target

字符串(数据为DataFrame)或整数(数据为np.array):指定用作时间序列的列。如果为None,将选择第一列作为数据。

动态线性回归(DynReg)模型的形式如下:

class DynReg(formula, data)
formula

描述回归的patsy符号字符串

data

pd.DataFrame 或类似数组 : 时间序列数据

类方法

adjust_prior(index, prior)

调整模型的先验分布。index可以是整数或列表。prior是先验对象,例如Normal(0,3)。

以下是adjust_prior()的使用示例:

1
2
3
4
5
import pyflux as pf

# 模型 = ... (指定一个模型)
model.list_priors()
model.adjust_prior(2,pf.Normal(0,1))
fit(method, **kwargs)

估计模型的参数。返回一个Results对象。method是推断/估计的选项;有关选项请参阅贝叶斯推断和经典推断部分。如果没有提供method,则将使用默认值。

可选参数特定于您选择的方法 - 有关这些方法的更多详细信息,请参阅相关文档。

以下是fit()的示例用法:

1
2
3
4
import pyflux as pf

# 模型 = ... (指定一个模型)
model.fit("M-H",nsims=20000)
plot_fit(intervals, **kwargs)

绘制模型的拟合图。intervals 是一个布尔值;如果为真,则显示状态的95%置信区间。

可选参数包括 figsize - 图表绘制的尺寸 - 以及 series_type,它有两个选项:Filtered(过滤)或 Smoothed(平滑)。

plot_parameters(indices, figsize)

返回参数及其相关不确定性的绘图。indices是一个列表,指定您想要绘制的参数索引。Figsize参数用于设置绘图的大小。

plot_predict(h, past_values, intervals, **kwargs)

绘制模型的预测结果。h是一个整数,表示预测未来多少步。past_values是一个整数,表示要绘制序列中过去多少个值。intervals是一个布尔值,决定是否包含置信/可信区间。

可选参数包括 figsize - 要绘制的图形尺寸。

plot_predict_is(h, past_values, intervals, **kwargs)

绘制模型样本内滚动预测结果。h是表示模拟性能所需历史步数的整数。past_values是表示需要绘制的序列历史值数量的整数。intervals是布尔值,用于控制是否包含置信/可信区间。

可选参数包括 figsize - 要绘制的图形尺寸。

predict(h)

返回模型预测的DataFrame。h是一个整数,表示预测提前多少步。

predict_is(h)

返回模型样本内滚动预测的DataFrame。h是一个整数,表示要模拟性能的前几步数。

simulation_smoother(data, beta)

从模拟平滑器中输出模拟状态轨迹。参数包括 data:用于模拟的数据(通常使用 self.data)和 beta:要使用的参数。