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)

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.