[R-SIG-Finance] To obtain the t student of each rolling window with EGARCH model

alexios galanos alexios at 4dscape.com
Fri Nov 24 04:08:12 CET 2017


Hi Sandrine,

Not sure if this is what you are after:

#####
# reproducible example:
library(rugarch)
library(xts)
data(sp500ret)
spx = xts(as.numeric(sp500ret[,1]), as.Date(rownames(sp500ret)))

spec2b<-ugarchspec(variance.model=list(model="eGARCH",garchOrder=c(1,1)),mean.model=list(armaOrder=c(0,0)), 
distribution.model = "std")
roll1=ugarchroll(spec2b,data=spx,n.start=NULL,window.size=500,solver="solnp")

cf=coef(roll1)

st=do.call(rbind, lapply(1:length(cf), function(i){
   xts(cf[[i]]$coef["shape",1], as.Date(cf[[i]]$index))
}))
st = na.locf(cbind(spx[paste0(index(st[1]),"/",st[length(st)])], st))[,2]
#####


Alexios

On 11/23/2017 12:30 PM, Sandrine Boulerne wrote:
> Hello Alexios
> 
> I have advanced in my research and now I will want to get the student t from each past rolling window (500 days for each window) from 2001 to 2016 and not the student t from each forcasting rolling window.
> My question has evolved and is following your response of September 12th.
> 
> For the EGARCH model, I used Package “Rugarch” :
> 
> spec2b<-ugarchspec(variance.model=list(model="eGARCH",garchOrder=c(1,1),external.regressors=L1),          mean.model=list(armaOrder=c(0,0),archm=TRUE,archpow=1,external.regressors=L2), distribution.model = "std")
> fit2b<-ugarchfit(spec=spec2b,solver="hybrid", data=RENT)
> show(fit2b)
> roll1=ugarchroll(spec2b,data = RENT,n.start = NULL,window.size=500,solver = "solnp" )
> coeff(roll1)
> 
> coef(roll1) allows me to get the student t from the 500 forecasting windows but not the student t from past windows (500 days per windows) from 2001 to 2016.
> 
> Could you orient me to a solution ? I am looking for a solution for several days.
> 
> Thank you very much
> 
> Sandrine BOULERNE
> University of Tours
> www.iae.univ-tours.fr
> 
> 
> ----- Mail original -----
> De: "alexios" <alexios at 4dscape.com>
> À: "Sandrine Boulerne" <sandrine.boulerne at univ-tours.fr>
> Cc: r-sig-finance at r-project.org
> Envoyé: Mardi 12 Septembre 2017 06:27:33
> Objet: Re: To obtain the t student of each rolling window with EGARCH model
> 
> Have you tried 'coef(roll1)'?
> 
> I think the documentation is reasonably clear (?ugarchroll).
> It returns an object of class 'uGARCHroll' (which is clickable in the
> documentation and will take you to the class help page).
> In the class help page you will see that one of the methods on the class
> is:
> 
> "coef
> signature(object = "uGARCHroll"): Extracts the list of coefficients for
> each estimated window in the rolling backtest."
> 
> Therefore, coef(roll1) will return the list of coefficient matrices
> per roll window, from which you can extract the shape parameter of the
> standardized Student distribution.
> 
> Similarly, please read the documentation for ugarchdistribution.
> 
> 
> -Alexios
> 
> On 9/11/2017 9:03 AM, Sandrine Boulerne wrote:
>> Good Morning,
>>
>> I investigate the day-of –the-week of 11 indices in 11 countries using
>> EGARCH model and rolling sample method with one sample interval case of
>> 500 days. The main purpose of the empirical analysis is to determine
>> whether there exist calendar effects or not by observing whether the /t/
>> values exceed the quantile of the standard normal distribution z = 1.96
>> for confidence level of 5%. I want to use the same method as Zhang, Lai,
>> Lin (2017), “the day-of-the-week effects of stocks markets in different
>> countries”, Finance Research Letters 20.
>>
>> For the EGARCH model, I used Package “Rugarch”, and everything is good:
>>
>> spec2b<-ugarchspec(variance.model=list(model="eGARCH",garchOrder=c(1,1),
>> external.regressors=L1),
>> mean.model=list(armaOrder=c(0,0),archm=TRUE,archpow=1,external.regressors=L2),
>>
>> distribution.model = "std")
>>
>> fit2b<-ugarchfit(spec=spec2b,solver="hybrid", data=RENT)
>>
>> show(fit2b)
>>
>> But for the rolling sample method, with EGARCH(1,1), I thought using
>>    “ugarchroll” or “ugarchdistribution*”, ** to calculate the student /t/
>> for each rolling window*, *but **I do not get student /t/* :
>>
>> dist <- ugarchdistribution(fit2b, n.sim = 500, n.start = 1, m.sim = 100,
>> solver = "solnp")
>>
>> show(dist)
>>
>> or
>>
>> roll1=ugarchroll(spec1b,data = RENT,n.start = NULL,window.size =
>> 500,solver = "solnp" )
>>
>> show(roll1)
>>
>> Could you orient me to a solution ?
>>
>> Thank you very much
>>
>>
>>
>> Sandrine BOULERNE
>> Maître de Conférences - Habilitation à Diriger des Recherches (HDR)
>> IAE de Tours - Faculté de Droit, Économie et Sciences Sociales
>> 50 av. Jean Portalis, BP 0607, 37206 TOURS Cedex 3
>> Téléphone : 02 47 36 10 47
>> www.iae.univ-tours.fr
>>
>



More information about the R-SIG-Finance mailing list