Hi everyone,

I’m writing a thesis around the stock prices with ISEG in Lisbon. 

I wrote the entire end-to-end ETL in R and I’m trying to run all the models in 
R. Just as a sense check, I was comparing the results between Eviews and R and 
realised big differences between then and I wonder if you can help me debugging 
this differences, i’m sure I might be doing something wrong. 

Here is my R code: 

RFunction_garch_estimation=function( #stock, 
                                     variance.model = list(model = "sGARCH", 
garchOrder = c(1, 1), 
                                                           submodel = NULL, 
external.regressors = NULL, variance.targeting = FALSE), 
                                     mean.model = list(armaOrder = c(1, 1), 
include.mean = TRUE, archm = FALSE, 
                                                       archpow = 1, arfima = 
FALSE, external.regressors = NULL, archex = FALSE), 
                                     distribution.model = "norm", start.pars = 
list(), fixed.pars = list(),
                                     
                                     spec, data, out.sample = 0, solver = 
"solnp", solver.control = list(), 
                                     fit.control = list(stationarity = 1, 
fixed.se = 0, scale = 0, rec.init = 'all'), 
                                     numderiv.control = list(grad.eps=1e-4, 
grad.d=0.0001, 
                                                             
grad.zero.tol=sqrt(.Machine$double.eps/7e-7), hess.eps=1e-4, hess.d=0.1, 
                                                             
hess.zero.tol=sqrt(.Machine$double.eps/7e-7), r=4, v=2)
) {
  library(rugarch)
  mod1=ugarchspec(variance.model = variance.model, 
                  mean.model = mean.model, 
                  distribution.model = distribution.model)
  mod1fit=ugarchfit(mod1, data,solver=solver, fit.control, out.sample, 
solver.control , numderiv.control )
  return(mod1fit) }

#This RFunction just sets the ugarchspec and estimates at the same the garch 
function. 


variance_model = list(model = "sGARCH", garchOrder = c(1, 1), 
                      submodel = NULL, external.regressors = 
as.matrix(regressors), variance.targeting = FALSE)
mean_model = list(armaOrder = c(0,0 ), include.mean = TRUE, archm = FALSE, 
                  archpow = 1, arfima = FALSE, external.regressors = 
as.matrix(regressors), archex = FALSE)
distribution_model = "norm"
#as.matrix(regressors)
model1=RFunction_garch_estimation( data=target, variance.model = 
variance_model, mean.model = mean_model,distribution.model = 
distribution_model,solver='solnp')
show(model1) 

#### Results:

Robust Standard Errors:
        Estimate  Std. Error   t value Pr(>|t|)
mu      0.000015    0.234264  0.000063  0.99995
mxreg1  0.709299  292.613915  0.002424  0.99807
mxreg2 -0.000112    0.098905 -0.001135  0.99909
mxreg3  0.000034    0.065088  0.000528  0.99958
mxreg4 -0.000003    0.075987 -0.000037  0.99997
mxreg5 -0.000009    0.012701 -0.000723  0.99942
omega   0.000000    0.000249  0.000175  0.99986
alpha1  0.020642    1.493492  0.013821  0.98897
beta1   0.973943    0.908957  1.071496  0.28395
vxreg1  0.000000    0.030732  0.000000  1.00000
vxreg2  0.000000    0.000019  0.000469  0.99963
vxreg3  0.000000    0.001606  0.000007  0.99999
vxreg4  0.000000    0.000630  0.000015  0.99999
vxreg5  0.000000    0.000634  0.000000  1.00000

LogLikelihood : 30151.719 

Eviews outputs: 

Dependent Variable: target                      
Method: ML - ARCH (Marquardt) - Normal distribution                     
Date: 09/10/15   Time: 11:51                    
Sample: 11/05/2014 09:30 8/28/2015 17:30                        
Included observations: 6763                     
Convergence achieved after 25 iterations                        
Bollerslev-Wooldridge robust standard errors & covariance                       
Presample variance: backcast (parameter = 0.7)                  
                        
GARCH = C(7) + C(8)*RESID(-1)^2 + C(9)*GARCH(-1) + C(10)                        
        
        *reg1 + C(11)*reg2 + C(12)                              
        *reg3 + C(13)*reg4 + C(14)                              
        *reg5                           
                                
Variable                        Coefficient     Std. Error              
z-Statistic     Prob.  
                                
C                               -1.62E-05       4.17E-05                
-0.388964       0.6973
reg1                            0.723305                0.050098                
14.43789                0.0000
reg2                            -0.000242       0.000123                
-1.972702       0.0485
reg3                            0.000170                8.29E-05                
2.049855                0.0404
reg4                            0.000107                0.000175                
0.610040                0.5418
reg5                            -1.22E-05       8.26E-06                
-1.482648       0.1382

                                
Variance Equation                       
                                
C                               9.87E-06                3.85E-06                
2.566464                0.0103
RESID(-1)^2             0.149994                0.035467                
4.229165                0.0000
GARCH(-1)               0.599977                0.118194                
5.076196                0.0000
reg1                            -0.000362       0.002233                
-0.162239       0.8711
reg2                            1.35E-06                1.18E-05                
0.114108                0.9092
reg3                            -5.72E-07       5.44E-07                
-1.050865       0.2933
reg4                            -2.28E-06       9.78E-06                
-0.232631       0.8160
reg5                            -8.48E-08       2.61E-08                
-3.251462       0.0011


Now please note that the  majority of the external regressors have 0 as 
coefficient in the conditional variance and this isn't much different from 
Eviews. However when you look at the coefficients alpha and beta they 
significantly differ from Eviews. In addition, both methods using the robust 
matrix of cov-var, the p-value of a large number of coefs. differ. 

Could you help me understand if I’m doing anything wrong in the R bit? 

Thank you,
Eliano

_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should 
go.

Reply via email to