我打算随机抽样一个VARMA模型,但是为此我似乎看不到statsmodels中的函数,我研究了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
答案 0 :(得分:0)
来自拟合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
方法。主要区别在于,由于模型对象没有关联的参数值,因此在这种情况下,您需要传递特定的参数向量)。