Comandos R para análises de séries temporais

11 - Modelos GARCH Multivariados

Este texto trata da construção de exemplos de modelos GARCH multivariados. Para tanto, considere os modelos a seguir:

  • BEKK
  • CCC-GARCH e DCC-GARCH
  • GO-GARCH
  • GICA-GARCH (em breve)

As próximas sessões apresentarão exemplos de tais modelos utilizando as bibliotecas ccgarch, rmgarch, MTS e gogarch do R.

11.1 - BEKK

Modelos BEKK(1,1) são da forma:

  1. \[ \Sigma_t=\textbf{A}_0 \textbf{A}_0^T + \textbf{A}_1 \epsilon_{t-1}^T \epsilon_{t-1} \textbf{A}_1^T + \textbf{B}_1\Sigma_{t-1}^T \]

em que \(\textbf{A}_0\) é uma matriz triangular de tal maneira que \(\textbf{A}_0\textbf{A}_0^T\) é positiva deifinida.

Simulação do processo BEKK(1,1)

A partir da formulação (1), considere os seguintes valores das matrizes:

\[ \textbf{A}_0 = \left( \begin{array}{ccc} 1 & 0.20 & 0.30 \\ 0 & 1.04 & 0.01 \\ 0 & 0 & 0.90 \end{array} \right)\\ \textbf{A}_1=\left( \begin{array}{ccc} 0.30 & 0.01 & 0.02 \\ -0.02 & 0.40 & 0.30 \\ -0.01 & -0.06 & 0.50 \end{array} \right)\\ \textbf{B}_1=\left( \begin{array}{ccc} 0.20 & -0.03 & 0.70\\ 0.01 & 0.30 & 0.01 \\ -0.10 & -0.06 & 0.50 \end{array} \right)\\ \Sigma_0=\textbf{I}_3 \]

O gráfico abaixo apresenta as séries simuladas com os parâmetros acima:

plot.ts(matrix.bekk.sim)

Utilizaremos o pacote MTS para estimar os parâmetros deste processo.

Ajustes Utilizando o pacote MTS

Os ajustes para modelos BEKK são, em geral, muito custoso computacionalmente por conta da sua grande quantidade de parâmetros a serem estimados. Nesta seção utilizaremos o pacote MTS para estimar os parâmetros da série multivariada simulada na seção anterior.
Para o ajuste do modelo BEKK(1,1) utilizamos a seguinte sintaxe:

fit.bekk.mts<-BEKK11(matrix.bekk.sim)

As estimativas são dadas por:

##       mu1       mu2       mu3      A011      A021      A031      A022 
## -0.041286  0.036615  0.052380  1.086676  0.173640  0.392394  1.213758 
##      A032      A033       A11       A21       A31       A12       A22 
## -0.036296  1.848755  0.100000  0.020000  0.020000  0.020000  0.100000 
##       A32       A13       A23       A33       B11       B21       B31 
##  0.020000  0.020000  0.020000  0.100000  0.800000  0.020000  0.020000 
##       B12       B22       B32       B13       B23       B33 
##  0.020000  0.800000  0.020000  0.020000  0.020000  0.800000

11.2 - CCC-GARCH

Modelos CCC-GARCH são da forma:

  1. \[ \label{eq:cccgarch} \textbf{H}_t = \textbf{D}_t \times \textbf{R} \times \textbf{D}_t \\ \textbf{D}_t= \left[diag\{h_{ii,t}^{1/2}\}\right],i=1,\dots,n \]

\(h_{ii,t}\) é um modelo GARCH univariado qualquer e \(\textbf{R}= \left[\rho_{i,j}\right],i,j=1,\dots,n\) e \(\rho_{i,i}=1,i=1,\dots,n\) é uma matriz simétrica, positiva definida.
Teremos que \(\textbf{H}_t\) será positiva definida se e só se todas as n variâncias condicionais forem positivas e \(\textbf{H}_t\ge 0\). Em particular um CCC-GARCH(1,1) seria da forma dada em (2), com \(h_{ii,t},i=1,\dots,n\) definidos por
\[ h_{ii,t}=w_i+a_i\epsilon^2_{i,t-1}+b_i h_{ii,t-1},i=1\dots,n \]
Ou seja, cada \(h_{ii,t}\) é dado por um GARCH(1,1).

Exemplo Simulado

Utilizando o pacote ccgarch, simularemos um modelo CCC-GARCH(1,1) bivariado definido por: \[ \textbf{R}=\left(\begin{array}{cc} 1 & 0.3 \\ 0.3 & 1\end{array}\right) \\ h_{11,t}= 0.05 + 0.1 \epsilon^2_{1,t-1}+ 0.6 h_{11,t-1} \\ h_{22,t}= 0.02 + 0.05 \epsilon^2_{2,t-1}+ 0.75 h_{22,t-1} \]

#### EXEMPLOS USANDO O PACOTE 'ccgarch'
# eccc.sim Arguments:

# 'nobs'  a number of observations to be simulated (T)
# 'a'     a vector of constants in the GARCH equation (N×1)
# 'A'     an ARCH parameter matrix in the GARCH equation. 
#         Can be a diagonal matrix for the original CCC-GARCH model or a full
#         matrix for the extended model (N×N)
# 'B'     a GARCH parameter matrix in the GARCH equation. 
#         Can be a diagonal matrix for the original CCC-GARCH model or a full
#         matrix for the extended model (N×N)
# 'R'     a constant conditional correlation matrix (N×N)
# 'd.f'   the degrees of freedom parameter for the t-distribution
# 'model' "diagonal" for the diagonal model and "extended" for the extended model

c.a1=c(0.05,0.02)
c.A1=matrix(c(0.1,0,0,0.05),ncol=2)
c.B1=matrix(c(0.6,0,0,0.75),ncol=2)
c.R1=matrix(c(1,0.3,0.3,1),ncol=2)
c.H1<-eccc.sim(nobs=1000, c.a1, c.A1, c.B1, c.R1, d.f=5, model="diagonal")

#'h'      a matrix of the simulated conditional variances (T × N )
#'eps'    a matrix of the simulated time series with (E)CCC-GARCH process (T × N )
plot.ts(c.H1$eps, main = "Processos simulados")

plot.ts(c.H1$h, main="Volatilidade observada nos processos simulados")

Para o processo simulado, vamos estimar os parâmetros utilizando o mesmo pacote, com a função eccc.estimation. Temos duas séries simuladas, e suporemos então que elas seguem um CCC-GARCH(1,1) e são regidas pelo processo:

  1. \[ \textbf{h}_t=\left( \begin{array}{c} h_{11,t} \\ h_{22,t} \end{array} \right)=\textbf{w}+\textbf{A}\textbf{$\epsilon$}_{t-1}\textbf{$\epsilon$}_{t-1}^T+\textbf{B}\textbf{h}_{t-1}=\\ = \left(\begin{array}{c} a_{1} \\ a_{2} \end{array} \right) + \left(\begin{array}{cc} A_{11} & 0 \\ 0 & A_{22} \end{array} \right) \left(\begin{array}{c} \epsilon^2_{1,t-1} \\ \epsilon^2_{2,t-1} \end{array} \right) + \left(\begin{array}{cc} B_{11} & 0 \\ 0 & B_{22} \end{array} \right) \left(\begin{array}{c} h_{11,t-1} \\ h_{22,t-1} \end{array} \right) \]

Para estimar o processo, é necessário sugerir os ‘chutes’ iniciais para o algoritmo de otimização. Façamos então:

\[ \textbf{w}_0=\textbf{1}_2 \\ \textbf{A}_0=\textbf{I}_2 \\ \textbf{B}_0=\textbf{I}_2 \\ \textbf{R}_0=\textbf{I}_2 \\ \]

c.w0=c(1,1)
c.A0=diag(2)
c.B0=diag(2)
c.R0=diag(2)
c.fit1<-eccc.estimation(a=c.w0,A=c.A0,B=c.B0,R=c.R0,model="diagonal",dvar=c.H1$eps)
c.fit1$opt$convergence
## [1] 0
# $convergence == 0 ## Means convergence criteria has reached

Os resultados da estimação foram:

c.fit1$para.mat
## $a
## [1] 0.098422 0.030121
## 
## $A
##         [,1]    [,2]
## [1,] 0.15865 0.00000
## [2,] 0.00000 0.12523
## 
## $B
##         [,1]    [,2]
## [1,] 0.56705 0.00000
## [2,] 0.00000 0.71541
## 
## $R
##         [,1]    [,2]
## [1,] 1.00000 0.34062
## [2,] 0.34062 1.00000
c.fit1$out
##                       a1       a2      A11       A22       B11      B22
## para.estimates 0.0984224 0.030121 0.158648 0.1252254 0.5670549 0.715409
## Inv. Hessian   0.0092265 0.028668 0.026686 0.0081792 0.0046248 0.047223
## Outer Prod.    0.0233127 0.031010 0.080782 0.0075643 0.0253676 0.056035
## Robust         0.0093408 0.035599 0.028977 0.0111236 0.0033475 0.065910
##                     R21
## para.estimates 0.340622
## Inv. Hessian   0.027924
## Outer Prod.    0.027862
## Robust         0.028438

11.3 - DCC-GARCH

Modelos DCC-GARCH são uma generalização do caso CCC-GARCH, isto é, temos a matris R não necessariamente fixa, ou seja, ela varia no tempo:

  1. \[ \label{eq:dccgarch} \textbf{H}_t = \textbf{D}_t \times \textbf{R}_t \times \textbf{D}_t \\ \]

\(\textbf{D}_t\) é definida como em (2) e \(\textbf{R}_t\) tem expressão específica. Tse e Tsui(2002) sugerem \(\textbf{R}_t\) definida por (DCCt-GARCH)

  1. \[\textbf{R}_t=(1-\theta_1-\theta_2)\textbf{R}+\theta_1\Psi_{t-1}+\theta_2\textbf{R}_{t-1}\]

Em que \(\textbf{R}= \left[\rho_{i,j}\right], i,j = 1,\dots,n\) e \(\rho_{i,i}=1,i=1,\dots,n\) é uma matriz simétrica, positiva definida e \(\Psi_{t-1}\) uma matriz de correlações de \(\epsilon_\tau\) definida convenientemente.
Já Engle(2002) propõe \(\textbf{R}_t\) como (DCCe-GARCH):

  1. \[\textbf{R}_t=\left[diag\{\textbf{Q}_t\}\right]^{1/2}\times \textbf{Q}_t \times \left[diag\{\textbf{Q}_t\}\right]^{1/2}\]

Com \(\textbf{Q}_t\) não negativa definida, de ordem \(n\times n\) definida de forma semelhante a \(\textbf{R}_t\) em (5), isto é:

\[\textbf{Q}_t=(1-\alpha-\beta)\textbf{Q}+\alpha \textbf{u}_{t-1}\textbf{u}^T_{t-1}+\beta\textbf{Q}_{t-1}\]

Exemplo Simulado (DCCe-GARCH)

Para simular o processo DCC-GARCH, consideraremos os pacotes ccgarch. Compararemos o resultado da estimação através dos pacotes ccgarch, rmgarch e MTS, para que possamos comparar suas performances. A parametrização utilizada será aquela proposta por Engle ( veja equação 6).

#### EXEMPLOS USANDO O PACOTE 'ccgarch'
# dcc.sim Arguments:

# 'nobs'     a number of observations to be simulated (T )
# 'a'        a vector of constants in the vector GARCH equation (N × 1)
# 'A'        an ARCH parameter matrix in the vector GARCH equation (N × N )
# 'B'        a GARCH parameter matrix in the vector GARCH equation (N × N )
# 'R'        an unconditional correlation matrix (N × N )
# 'dcc.para' a vector of the DCC parameters (2 × 1)
# 'd.f'      the degrees of freedom parameter for the t-distribution
# 'model'    a character string describing the model. 
#            "diagonal" for the diagonal model  and "extended" for the extended 
#            (full ARCH and GARCH parameter matrices) model

d.a1=c(0.05,0.02)
d.A1=matrix(c(0.1,0,0,0.05),ncol=2)
d.B1=matrix(c(0.6,0,0,0.75),ncol=2)
d.R1=matrix(c(1,0.3,0.3,1),ncol=2)
d.alpha1 = 0.1
d.beta1  = 0.2
d.H1<-dcc.sim(nobs=1000, d.a1, d.A1, d.B1, d.R1, dcc.para=c(d.alpha1,d.beta1), d.f=5, model="diagonal")

# 'dcc'      a matrix of the simulated dynamic conditional correlations (T × N 2 )
# 'h'        a matrix of the simulated conditional variances (T × N )
# 'eps'      a matrix of the simulated time series with DCC-GARCH process (T × N )
plot.ts(d.H1$eps, main = "Processos simulados")

plot.ts(d.H1$h, main="Volatilidade observada nos processos simulados")

plot.ts(d.H1$dcc, main="Dt")

Estimação via ccgarch

Para estimar os parâmetros do processo simulado acima, considere a função dcc.est do ccgarch, que estima os parâmetros via máxima verossimilhança em dois estágios. Assim como no caso do CCC-GARCH, utilizaremos as seguintes quantidades iniciais para o processo iterativo:

\[ \textbf{A}_0=\textbf{I}_2 \\ \textbf{B}_0=\textbf{I}_2 \\ \textbf{R}_0=\textbf{I}_2 \\ \alpha=0.5\\ \beta=0.5 \]

d.w0=c(0.2,0.2)
d.A0=diag(2)
d.B0=diag(2)
d.alpha0 = 0.5
d.beta0  = 0.5
d.fit1<-dcc.estimation(inia=d.w0,iniA=d.A0,iniB=d.B0,ini.dcc=d.w0,model="diagonal",dvar=d.H1$eps)
## ****************************************************************
## *  Estimation has been completed.                              *
## *  The outputs are saved in a list with components:            *
## *    out    : the estimates and their standard errors          *
## *    loglik : the value of the log-likelihood at the estimates *
## *    h      : a matrix of estimated conditional variances      *
## *    DCC    : a matrix of DCC estimates                        *
## *    std.resid : a matrix of the standardised residuals        *
## *    first  : the results of the first stage estimation        *
## *    second : the results of the second stage estimation       *
## ****************************************************************

Os resultados da estimação seguem abaixo:

d.fit1$out
##                 a1       a2     A11      A22      B11     B22 dcc alpha
## estimates 0.056713 0.035230 0.16272 0.103749 0.669107 0.74201  0.124399
## std.err   0.026292 0.067298 0.12208 0.016182 0.035568 0.08875  0.031886
##           dcc beta
## estimates  0.49716
## std.err    0.13897

Estimação via rmgarch

Novamente, utilizaremos a parametrização para \(\textbf{R}_t\) proposta por Engle (2002) (equação 6). Para estimar o processo rmgarch é necessário inicialmente declarar as especificações do modelo. Para tanto, considerando normalidade

spec1 = ugarchspec(distribution = "std")
mspec = multispec(c(spec1,spec1))
fitspec=dccspec(mspec,VAR=TRUE,lag=1,dccOrder=c(1,1),model="DCC",distribution="mvt")

d.fit2=dccfit(fitspec,d.H1$eps)

O resultado do modelo ajustado é o que se segue:

d.fit2
## 
## *---------------------------------*
## *          DCC GARCH Fit          *
## *---------------------------------*
## 
## Distribution         :  mvt
## Model                :  DCC(1,1)
## No. Parameters       :  18
## [VAR GARCH DCC UncQ] : [6+8+3+1]
## No. Series           :  2
## No. Obs.             :  1000
## Log-Likelihood       :  -1339.9
## Av.Log-Likelihood    :  -1.34 
## 
## Optimal Parameters
## -----------------------------------
##                   Estimate  Std. Error  t value Pr(>|t|)
## [Asset_1].omega   0.041421    0.018185   2.2777 0.022742
## [Asset_1].alpha1  0.130846    0.048308   2.7086 0.006757
## [Asset_1].beta1   0.749729    0.085894   8.7285 0.000000
## [Asset_1].shape   5.113644    0.656502   7.7892 0.000000
## [Asset_2].omega   0.039443    0.025447   1.5500 0.121134
## [Asset_2].alpha1  0.101258    0.043287   2.3392 0.019323
## [Asset_2].beta1   0.725629    0.144726   5.0138 0.000001
## [Asset_2].shape   5.131066    0.675158   7.5998 0.000000
## [Joint]dcca1      0.136224    0.030722   4.4341 0.000009
## [Joint]dccb1      0.441155    0.088588   4.9798 0.000001
## [Joint]mshape     5.629992    0.450149  12.5069 0.000000
## 
## Information Criteria
## ---------------------
##                    
## Akaike       2.7158
## Bayes        2.8041
## Shibata      2.7151
## Hannan-Quinn 2.7493
## 
## 
## Elapsed time : 2.8093

Estimação via MTS

O ajuste do modelo DCC-GARCH via pacote MTS é apresentado por Tsay(2014) e é realizado em duas etapas. Em primeiro lugar, ajusta-se um modelo GARCH é ajustado para as componentes da série multivariada e depois os paretros do modelo DCC-GARCH são estimados. Inicialmente, apenas o modelo DCC(1,1) está implementado. A sintaxe para o ajuste do processo simulado é:

mtspre.fit3=dccPre(d.H1$eps, include.mean = T, p = 0, cond.dist = "std")
## Sample mean of the returns:  0.023047 -0.019557 
## Component:  1 
## Estimates:  0.042374 0.13458 0.74396 5.0975 
## se.coef  :  0.016382 0.041482 0.07412 0.81529 
## t-value  :  2.5866 3.2443 10.037 6.2524 
## Component:  2 
## Estimates:  0.039859 0.10117 0.72462 5.017 
## se.coef  :  0.020426 0.038966 0.11472 0.77394 
## t-value  :  1.9514 2.5963 6.3162 6.4824
d.fit3=dccFit(mtspre.fit3$sresi, type = "Engle", theta = c(d.alpha0, d.beta0),
       ub = c(0.92, 0.92), lb = c( 1e-04, 1e-04), cond.dist = "std", df = 5)
## Estimates:  0.44234 0.14215 5.5709 
## st.errors:  0.13729 0.038773 0.50538 
## t-values:   3.2219 3.6663 11.023

Os resultados para o ajuste do modelo simulado são apresentados a seguir:

names(d.fit3$estimates)<-c("theta1","theta2","df.t")
mtspre.fit3$est
##         omega  alpha1   beta1  shape
## [1,] 0.042374 0.13458 0.74396 5.0975
## [2,] 0.039859 0.10117 0.72461 5.0170
d.fit3$estimates
##  theta1  theta2    df.t 
## 0.44234 0.14215 5.57088
plot.ts(d.fit3$rho.t,cex.lab=0.5,cex.axis=0.8, main = "Dt")

11.3 - Conclusões a cerca dos modelos CCC-GARCH e DCC-GARCH

Vimos tanto no exemplo do CCC-GARCH quanto no do DCC-GARCH que o pacote ccgarch não apresentou estimativas satisfatórias para os parâmetros dos modelos simulados, principalmente nos casos dos parâmetros do vetor a e da matriz A da equação (3) que define as componentes dos processos GARCH.
Da mesma forma, os pacotes rmgarch e MTS não apresentaram resultados próximos dos verdadeiros valores dos parâmetros. Dentre os três ajustes, o ajuste do pacote MTS foi o que apresentou menos discrepância, tendo maior viés na estimativa dos parâmetros do modelo DCC(1,1) do que nos modelos GARCH de sua primeira etapa.

11.4 - GO-GARCH

Nos modelos GO-GARCH, estamos interessados em construir decomposições ortogonais para a matriz de covariâncias \(\Sigma_t\). Em outras palavras, buscamos a seguinte igualdade:

\[ Cov(r_t | \mathbb{F}_{t-1}) = \Sigma_t = M V_t M^T \]

em que \(V_t\) é a matriz de covariâncias das componentes latentes do processo, \(\textbf{b}_t=(b_{1t},b_{2t},\dots,b_{kt}),k \ge n\), i.e., \(V_t=Cov(\textbf{b}_t | \mathbb{F}_{t-1})\). Se a transformação acima existir, então as variáveis latentes podem ser expressas por:

  1. \[ \textbf{b}_t = M^{-1} r_t \]

Assumiremos que \(V_t\) é diagonal e que a variância não-condicional de \(\textbf{b}_t\) é a matriz identidade \(\textbf{I}_k\). Ainda, assumiremos que a matriz M é invariante no tempo.

Simulação

Considere um processo composto por variáveis latentes \(b_{i,t},i=1,2,3\). Suporemos que estas variáveis são fatores independentes e seguem um GARCH(1,1) de parâmetros \(\alpha=0.2\) e- \(\beta=0.7\), cada uma delas. Utilizamos o pacote fGarch para simular cada uma destas variáveis:

gog.spec = garchSpec(model = list(alpha = 0.2, beta = 0.7))
gog.b1<-garchSim(gog.spec, n = 1000)
gog.b2<-garchSim(gog.spec, n = 1000)
gog.b3<-garchSim(gog.spec, n = 1000)
gog.bt<-cbind(gog.b1,gog.b2,gog.b3)
plot.ts(as.ts(gog.bt), main="Processos simulados")

A Matriz M apresentada em (7) é dada por:

\[ M= \left( \begin{array}{ccc} -0.4 & 0.1 & -0.3\\ 0.3 & 0.3 & -0.1\\ 0.4 & -0.1 & -0.5 \end{array} \right) \]

M=matrix(c(-0.4,0.1,-0.3,0.3,0.3,-0.1,0.4,-0.1,-0.5),ncol=3,byrow=T)

Assim, a partir da equação (7) teremos:

gog.rt<-t(M%*%t(bt))

Estimação via gogarch

Estimaremos os parâmetros do processo simulado no início da seção a partir do pacote gogarch do R. Os valores ajustados para os processos GARCH dos fatores encontram-se próximos aos valores reais utilizados na simulação do processo. A matriz Z estimada, de acordo com Van Der Weide (2002), deveria representar os valores da matriz M em (7) e a matriz U, a matriz rotacionada ortogonal.

system.time(fit1_gogarch<-gogarch(gog.rt*10^3,~garch(1,1),estby="ml"))
##    user  system elapsed 
##  22.136  33.064  18.943
# Slots:
#   opt: Object of class "list": List returned by nlminb.
#   estby: Object of class "character": Estimation method.
#   models: Object of class "list": List of univariate GARCH model fits.
#   garchf: Object of class "formula": Garch formula used for uncorrelated component GARCH models.
#   name: Object of class "character": The name of the original data object.
#   X: Object of class "matrix": The data matrix.
#   V: Object of class "matrix": Covariance matrix of X.
#   Z: Object of class "matrix": Transformation matrix.
#   H: Object of class "list": List of conditional variance/covariance matrices.

#   U: Object of class "matrix": Orthogonal matrix.
#   Y: Object of class "matrix": Extra  cted component matrix.

#   P: Object of class "matrix": Left singular values of Var/Cov matrix of X.
#   Dsqr: Object of class "matrix": Square roots of eigenvalues on diagonal, else zero.

fit1_gogarch
## 
## **************** 
## *** GO-GARCH *** 
## **************** 
## 
## Components estimated by: maximum likelihood
## Dimension of data matrix: (1000 x 3).
## Formula for component GARCH models: ~ garch(1, 1) 
## 
## Orthogonal Matrix U:
##            [,1]     [,2]     [,3]
## [1,] 1.0478e-17 -0.67246  0.74014
## [2,] 1.7112e-01 -0.72922 -0.66254
## [3,] 9.8525e-01  0.12665  0.11507
## 
## Linear Map Z:
##          [,1]    [,2]     [,3]
## [1,]  0.69552 1.09863 -1.00335
## [2,] -0.85554 0.70368  0.96697
## [3,]  0.75676 0.55470  1.88181
## 
## Estimated GARCH coefficients:
##       omega  alpha1   beta1
## y1 0.044246 0.22426 0.68510
## y2 0.196219 0.20642 0.71274
## y3 0.062684 0.20047 0.72584
## 
## Convergence codes of component GARCH models:
## y1 y2 y3 
##  1  1  1

Estimação via rmgarch

Também é possível ajustar modelos GO-GARCH a partir do pacote rmgarch. Para tanto, especifiquemos os parâmetros do processo inicialmente:

gogarchspec2<-gogarchspec(mean.model=list(model="constant"),distribution.model="mvnorm")

O ajuste do modelo via rmgarch se da a partir da função gogarchfit. Inicialmente o pacote sugere a mudança de escala na matriz de dados, já que os valores originais próximos a zero (usual para log-retornos) apresentou muitos problemas de matrizes não invertíveis. Logo, ajustemos o modelo para a série de interesse re-escalada para \(r_t \times 1000\).

gogarchfit2<-gogarchfit(gogarchspec2,gog.rt*10^3)
gogarchfit2
## 
## *------------------------------*
## *        GO-GARCH Fit          *
## *------------------------------*
## 
## Mean Model       : CONSTANT
## GARCH Model      : sGARCH
## Distribution : mvnorm
## ICA Method       : fastica
## No. Factors      : 3
## No. Periods      : 1000
## Log-Likelihood   : -5331.36
## ------------------------------------
## 
## U (rotation matrix) : 
## 
##         [,1]   [,2]    [,3]
## [1,] -0.9153  0.403 0.00414
## [2,] -0.3998 -0.910 0.11297
## [3,]  0.0493  0.102 0.99359
## 
## A (mixing matrix) : 
## 
##       [,1]   [,2]   [,3]
## [1,] -1.30 -0.980 -0.166
## [2,]  1.01 -0.364 -1.007
## [3,]  1.54 -1.356  0.474
coef(gogarchfit2)
##             F_1      F_2      F_3
## omega  0.074532 0.076493 0.083483
## alpha1 0.230000 0.196565 0.219733
## beta1  0.696784 0.728724 0.690486

O pacote constrói ainda as superfícies estimadas de relação entre as diferentes séries da matriz de dados, a partir dos fatores estimados:

Covariância Estimada entre as séries 1 e 2
Covariância Estimada entre as séries 1 e 3
Covariância Estimada entre as séries 2 e 3

Referências

  • Engle, R.F. and Granger, C.W.J. , Co-integration and Error Correction: Representation, Estimation, and Testing, Econometrica, 55(2), pp. 251-76, 1987.
  • Hannan, E.J. and Quinn, B.G. , The Determination of the Order of an Autoregression, Journal of the Royal Statistical Society. Series B (Methodological) 41(2):190–195, Wiley, 1979.
  • Johansen, S., Statistical Analysis of cointegration vectors, Journal of Economic Dynamics and Control, 12, 231-254, 1988.
  • Laurent S., Analytical Derivates of the APARCH Model, Computational Economics, 24(1), pp 51-57, August 2004, Kluwer Academic Publishers.
  • Morettin P.A., Econometria Financeira, Blucher 2ed. Sao Paulo, 2013.
  • Morettin P.A. e Toloi, C.M.C, Análise de Séries Temporais, Blucher, Sao Paulo, 2006.
  • Phillips, P.C.B. and Ouliaris, S., Asymptotic Properties of Residual Based Tests for Cointegration, Econometrica, 58(1), 165–193, 1990.
  • Shumway R.H. and Stoffer D.S., Time Series Analysis and Its Applications: With R Examples, 3rd ed. Springer Texts in Statistics, 2011.
  • Taylor, J.W., A Quantile Regression Neural Network Approach to Estimating the Conditional Density of Multiperiod Returns, Journal of Forecasting, 19:299–311, Wiley and Sons, 2000.
  • Tsay, R.S., Analysis of Financial Time Series, 2nd ed., Wiley, 2005.
  • Tsay, R.S., Multivariate Analysis of Time Series with R and Financial Applications, Wiley and Sons, 2014.
  • Zivot, E., Wang, J., Modeling Financial Time Series with S-PLUS, 2nd ed., Springer, 2006.
  • Van Der Weide, R., GO-GARCH: A Multivariate Generalized Orthogonal GARCH Model Journal of Applied Econometrics, 17:549–564, 2002.