[R-SIG-Finance] Scale parameter in fit.control option from "ugarchfit" rugarch function

Jaimie jaimie.villanueva at gmail.com
Fri Jun 20 19:12:52 CEST 2014


Alright. It's pretty clear now. 
Thanks for your quick response. 

Bests
Jaimie
Sent from my iPhone

> On Jun 20, 2014, at 6:39 PM, alexios ghalanos <alexios at 4dscape.com> wrote:
> 
> Scaling of the data is just an optimization "trick" used in order to
> make some of the variables (mainly the conditional mean and GARCH
> intercepts) comparable in "scale" to the other variables during
> optimization, WITHOUT having to tinker with solver control parameters.
> After the optimization is completed, the parameters which are impacted
> (mean, xreg and GARCH intercept) are transformed back to their original
> scale.
> 
> I really don't consider the results you provide as making "much"
> difference, but if you insist, you can always adjust the solver.control
> parameters with varying degrees of success:
> 
> model0=ugarchfit(spec,as.xts(sp500ret),solver = "hybrid", fit.control =
> list(scale = 0), solver.control=list(tol=1e-12,delta=1e-11))
>        Estimate  Std. Error  t value Pr(>|t|)
> omega   0.000001    0.000000   5.1105        0
> alpha1  0.087436    0.007733  11.3066        0
> beta1   0.905252    0.008547 105.9204        0
> 
> model1=ugarchfit(spec,as.xts(sp500ret),solver = "hybrid", fit.control =
> list(scale = 1))
>        Estimate  Std. Error  t value Pr(>|t|)
> omega   0.000001    0.000000   5.1084        0
> alpha1  0.087479    0.007742  11.2994        0
> beta1   0.905254    0.008547 105.9109        0
> 
> 
> cf1 = coef(model1)
> cf0 = coef(model0)
> 
> se1 = sqrt(diag(vcov(model1)))
> se0 = sqrt(diag(vcov(model0)))
> 
> (Log Relative Error :  number of digits of accuracy)
> LRE.vars = -log(abs(cf1-cf0)/abs(cf0), base = 10)
> LRE.se   = -log(abs(se1-se0)/abs(se1), base = 10)
> (likelihood(model0)/likelihood(model1))-1
> 
> Note that scaling is not always available e.g. when using the eGARCH
> model or when using external variables in the conditional variance equation.
> 
> Regards,
> 
> Alexios
> 
> 
>> On 20/06/2014 17:06, Jaimie Villanueva wrote:
>> Hi R users
>> 
>> I'm interested in to know a bit more on what the scale parameter of
>> the "ugarchfit" fit.control option is about. I took a look inside the code
>> and i found out that the data is divided by the standard deviation when the
>> scale option is turned on (scale=1).
>> 
>> Parameters estimated are slightly different when this option is on,
>> compared with when it is off. I would like to get some reference in which i
>> can read about, just to make myself sure that i'm not missing anything when
>> using this option. Scaling the data provides successful estimates that
>> couldn't be achieved without it.
>> Is it recommended to leave this option on (scale=1) or just to use it
>> whenever is strictly necessary?
>> 
>> Here is the comparison i got, switching scaling option on/off.
>> The model is a standard Garch(1,1) with normal innovations
>> 
>> *The code:*
>> 
>> library(rugarch)
>> library(xts)
>> 
>> data(sp500ret)
>> 
>> spec=ugarchspec(variance.model = list(model = "sGARCH", garchOrder =
>> c(1,1)),
>>                 mean.model = list(armaOrder = c(0,0), include.mean =
>> FALSE),
>>                 distribution.model = "norm")
>> 
>> modelo=ugarchfit(spec,as.xts(sp500ret),solver = "hybrid", fit.control =
>> list(scale = 1))
>> modelo
>> 
>> *Results:*
>> 
>> Scale Off
>> 
>>             Estimate  Std. Error  t value  Pr(>|t|)
>> omega   0.000001    0.000001   1.4048  0.16007
>> alpha1  0.087257    0.013596   6.4179  0.00000
>> beta1   0.905045    0.013744  65.8483  0.00000
>> 
>> 
>> Scale On
>> 
>>              Estimate  Std. Error  t value  Pr(>|t|)
>> omega   0.000001    0.000001   1.3055  0.19173
>> alpha1  0.087479    0.014530   6.0206  0.00000
>> beta1   0.905254    0.014614  61.9434  0.00000
>> 
>> 
>> Thanks a lot and have a great weekend.
>> 
>> Jaimie
> 



More information about the R-SIG-Finance mailing list