случайная выборка модели вектор-ARMA - PullRequest
0 голосов
/ 10 июля 2019

Я намерен случайным образом отобрать модель 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

1 Ответ

0 голосов
/ 11 июля 2019

Объекты результатов из подгонки модели 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. Основное отличие состоит в том, что, поскольку объекты модели не имеют связанных значений параметров, в этом случае вам необходимо передать определенный вектор параметров).

...