Prévision du modèle ARMA-GARCH en R

3

J'ai réussi à prévoir un modèle GARCH hier et à exécuter une simulation Monte Carlo sur R. Néanmoins, je ne peux pas faire la même chose avec un ARMA-GARCH. J'ai testé 4 méthodes différentes mais sans réaliser de simulation ARMA-GARCH avec mes données.

Les packages et les données que j'ai utilisés:

library(quantmod)
library(tseries)
library(TSA)
library(betategarch)
library(mcsm)
library(PerformanceAnalytics)
library(forecast)
library(fGarch)
library(GEVStableGarch)

getSymbols("DEXB.BR",from="2005-07-01", to="2015-07-01")
STOCK = DEXB.BR
STOCK.rtn=diff(STOCK[,6] )
STOCK.diff = STOCK.rtn[2:length(STOCK.rtn)]
ARI_2_1=arima(STOCK[,6],order=c(2,1,1))
GA_1_1=garch(ARI_2_1$residuals, order = c(1,1)) 

Première méthode testée

specifi = garchSpec(model = list(ar = c(0.49840, -0.0628), ma =c(-0.4551), omega = 8.393e-08, alpha = 1.356e-01, beta = 8.844e-01))

garchSim(spec = specifi, n = 500, n.start = 200, extended = FALSE)

Cela a conduit à une prévision "NaN".

garchSim(spec = specifi, n = 500)

n=1000
armagarch.sim_1 = rep(0,n)
armagarch.sim_50 = rep(0,n)
armagarch.sim_100 = rep(0,n)
for(i in 1:n)
{
    armagarch.sim=garchSim(spec = specifi, n = 500, n.start = 200, extended = FALSE)
    armagarch.sim_1[i] = armagarch.sim[1]
    armagarch.sim_50[i] = armagarch.sim[50]
    armagarch.sim_100[i] = armagarch.sim[100]

}

Deuxième méthode testée

GSgarch.Sim(N = 500, mu = 0, a = c(0.49840, -0.0628), b = c(-0.4551),
omega = 8.393e-08, alpha = c(1.356e-01), gm = c(0), beta = c(8.844e-01),
 cond.dist = "norm")

Cette partie fonctionne.

n=10000

Garmagarch.sim_1 = rep(0,n)
Garmagarch.sim_50 = rep(0,n)
Garmagarch.sim_100 = rep(0,n)

for(i in 1:n)
{
    Garmagarch.sim= GSgarch.Sim(N = 500, mu = 0, a = c(0.49840, -0.0628), b = c(-0.4551),omega = 8.393e-08, alpha = c(1.356e-01), gm = c(0), beta c(8.844e-01), cond.dist = "norm")

    Garmagarch.sim_1[i] = Garmagarch.sim[1]
    Garmagarch.sim_50[i] = Garmagarch.sim[50]
    Garmagarch.sim_100[i] = Garmagarch.sim[100]

}

La simulation fonctionne mais

> Garmagarch.sim[1]
$model
[1] "arma(2,1)-aparch(1,1) ## Intercept:FALSE"

et

> Garmagarch.sim[50]
$<NA>
NULL

Troisième méthode testée

ga_arma = garch.sim(alpha=c(8.393e-08,1.356e-01),beta =8.844e-01 ,n=500, ntrans=200)

Cela a conduit à

Error in garch.sim(alpha = c(8.393e-08, 0.1356), beta = 0.8844, n = 500,  : 
  Check model: it does not have finite variance


arima.sim(ARI_2_1, 500, innov = ga_arma ,n.start = 200)

Et ceci pour

Error in arima.sim(ARI_2_1, 500, innov = ga_arma, n.start = 200) : 
  la partie 'ar' du mopdèle n'est pas stationaire

ce qui signifie que la partie "ar" du modèle n'est pas stationnaire.

Quatrième méthode testée

forecast(ARI_2_1, h = 500, bootstrap = TRUE, npaths=200)

Celui-ci fonctionne réellement mais je ne sais pas comment ajouter le composant GARCH.

forecast(specifi, h = 500, bootstrap = TRUE, npaths=200)
À M
la source
Vous voudrez peut-être essayer les listes de mailing, je sais que l'auteur de rugarch traîne parfois là-bas. Un de mes amis a fait un peu de mannequin, et je sais qu'ils se sont beaucoup battus avec R avant de le faire fonctionner, donc tout ce que je peux dire, c'est que tu
n'es