我打算随机抽样 VARMA 模型,但我似乎无法在统计模型中看到一个函数,我研究了 ARMA 上的示例,并且可以成功地复制这个变量 1 变量。
# for the ARMA
import numpy as np
from statsmodels.tsa.arima_model import ARMA
import statsmodels.api as sm
arparams=np.array([.9,-.7])
maparams=np.array([.5,.8])
ar=np.r_[1,-arparams]
ma=np.r_[1,maparams]
obs=10000
sigma=1
# for the VARMA
import numpy as np
from statsmodels.tsa.statespace.varmax import VARMAX
# generate a a 2-D correlated normal series
mean = [0,0]
cov = [[1,0.9],[0.9,1]]
data = np.random.multivariate_normal(mean,cov,100)
# fit the data into a VARMA model
model = VARMAX(data, order=(1,1)).fit()
`enter code here`
# I cant seem to find a way to randomly sample the VARMA
拟合 VARMAX 模型的结果对象具有可用于生成随机样本的simulate
方法。例如:
mod = VARMAX(data, order=(1,1))
res = mod.fit()
# to generate a time series of length 100 following the VARMAX process described by `res`:
sample = res.simulate(100)
任何状态空间模型都是如此,包括SARIMAX
、UnobservedComponents
、VARMAX
和DynamicFactor
。
(此外,模型类具有simulate
方法。主要区别在于,由于模型对象没有关联的参数值,因此在这种情况下需要传递特定的参数向量(。