[R-SIG-Finance] rugarch gives two different results based on the same model…how is that even possible?

GALIB KHAN ghk18 @ending from @c@rletm@il@rutger@@edu
Tue Aug 21 18:57:33 CEST 2018


Read your documentation and a post describing the details of fit.control
and solver.control

Let mess around those parameters and I'll report my findings back to you.


On Mon, Aug 20, 2018, 9:24 PM GALIB KHAN <ghk18 using scarletmail.rutgers.edu>
wrote:

> Again sorry for the repeat. I accidentally created a new post when I
> wanted to reply back.
>
> Alexios,
>
> I updated my script to use multiple solvers and compare results.
>
> It looks like nlminb is the most accurate solver for this generic dataset
> that I am using.
>
> I posted the results on stack exchange so its easier to view the results.
>
> If you want, I can post the results here.
>
> Here is the url with the updated script and results:
>
>
> https://stackoverflow.com/questions/51900177/should-the-positioning-of-the-external-regressors-change-the-output-of-arma-garc/
>
> On Mon, Aug 20, 2018, 7:29 AM GALIB KHAN <ghk18 using scarletmail.rutgers.edu>
> wrote:
>
>> Alexios,
>>
>> I changed the solver to "hybrid" but kept the scaling that you provided
>> and got different results when switching the positions for the external
>> regressors.
>>
>> ugarchfit(spec = spec, data = as.matrix(temp$y),solver =
>> "hybrid",fit.control=list(scale=1))
>>
>> So it looks like you have to change the solver to "nlminb" and update
>> fit.control with the scaling that you provided.
>>
>> Galib
>>
>>
>> On Sun, Aug 19, 2018 at 11:41 PM, GALIB KHAN <
>> ghk18 using scarletmail.rutgers.edu> wrote:
>>
>>> Alexios,
>>>
>>>
>>> Veryyyy interesting!!!!! No I cannot see any differences at all lol.
>>>
>>> I updated the code and indeed you are correct sir. Thank you for your
>>> time in investigating this.
>>>
>>> I will update my stack exchange post to reflect your answer in the
>>> morning.
>>>
>>> Again thank you for all your help!!!!
>>>
>>> Best,
>>> Galib Khan
>>>
>>>
>>> On Sun, Aug 19, 2018 at 11:19 PM, alexios galanos <alexios using 4dscape.com>
>>> wrote:
>>>
>>>> I did use the seed you provided.
>>>>
>>>> Use the following code for estimation:
>>>>
>>>> fit <- ugarchfit(spec = spec, data = as.matrix(temp$y),solver =
>>>> "nlminb", fit.control=list(scale=1))
>>>>
>>>> model_maker(var1)
>>>>          Estimate  Std. Error     t value     Pr(>|t|)
>>>> mu     -7.3998577  0.69086641 -10.7109821 0.0000000000
>>>> ar1     0.3387323  0.08280162   4.0908900 0.0000429721
>>>> ar2    -0.8834201  0.06569477 -13.4473414 0.0000000000
>>>> ma1    -0.2902069  0.08598589  -3.3750525 0.0007380161
>>>> ma2     0.8660807  0.06778418  12.7770320 0.0000000000
>>>> mxreg1  1.6782992  0.12769644  13.1428825 0.0000000000
>>>> mxreg2  2.5225382  0.04292728  58.7630625 0.0000000000
>>>> omega  12.0047145  0.82986864  14.4658010 0.0000000000
>>>> alpha1  0.0000000  0.07358520   0.0000000 1.0000000000
>>>> shape  63.0103309 98.49188643   0.6397515 0.5223341761
>>>>
>>>> model_maker(var2)
>>>>          Estimate  Std. Error     t value     Pr(>|t|)
>>>> mu     -7.3998549  0.69086651 -10.7109764 0.000000e+00
>>>> ar1     0.3387334  0.08280150   4.0909088 4.296861e-05
>>>> ar2    -0.8834206  0.06569433 -13.4474406 0.000000e+00
>>>> ma1    -0.2902081  0.08598562  -3.3750776 7.379487e-04
>>>> ma2     0.8660811  0.06778412  12.7770487 0.000000e+00
>>>> mxreg1  2.5225383  0.04292728  58.7630642 0.000000e+00
>>>> mxreg2  1.6782987  0.12769640  13.1428817 0.000000e+00
>>>> omega  12.0047142  0.82992363  14.4648419 0.000000e+00
>>>> alpha1  0.0000000  0.07359329   0.0000000 1.000000e+00
>>>> shape  63.0105962 98.49368444   0.6397425 5.223400e-01
>>>>
>>>>
>>>> I can’t see any “significant” differences, can you?
>>>> It’s completely related to the optimization/starting parameters. The
>>>> “scale” is documented and not on by default (perhaps it should be).
>>>>
>>>> Alexios
>>>>
>>>>
>>>> > On Aug 19, 2018, at 9:02 PM, GALIB KHAN <
>>>> ghk18 using scarletmail.rutgers.edu> wrote:
>>>> >
>>>> > Sorry for sending this again, I didn't include r-sig-finance in the
>>>> email address. I'm still adjusting in how to respond.
>>>> >
>>>> > Alexios,
>>>> >
>>>> > Did you set the set the seed to 1, because I'm looking at your
>>>> results and the numbers do not match with the numbers that I have provided.
>>>> >
>>>> > I understand why the coefficients' estimates are similar but it
>>>> doesn't explain why other columns such as the t-value and pr are off by a
>>>> large margin. Also estimates for mu, ar*, ma*, omega, alpha1, and shape may
>>>> have large differences.
>>>> >
>>>> > Take mu as an example:
>>>> > -7.538187e+00 - (-7.877120e+00) = 0.338933, isn't that considered a
>>>> large difference to the point where it's safe to say that these two values
>>>> are not similar?
>>>> >
>>>> > Another example is the t-values for x1 and x2:
>>>> > x1 = 8.799994e+01   -  5.509361e+02 = -462.9362
>>>> > x2 = 8.508606e+01   -  5.287634e+02 = -443.6773
>>>> >
>>>> > An more alarming case that unfortunately I cannot share due to the
>>>> data being sensitive is that when the x variables' positions are switched,
>>>> the p-values are not the same. The p-value for a particular external
>>>> regressor went from 0 to 0.4385.
>>>> >
>>>> > I will attempt to re-create a separate generic dataset that is
>>>> similar to the sensitive data that I am using.
>>>> >
>>>> >
>>>> > Galib Khan
>>>> >
>>>> >
>>>> > On Sun, Aug 19, 2018 at 10:06 PM, alexios galanos <
>>>> alexios using 4dscape.com> wrote:
>>>> > I run the code you provided and obtain the following results related
>>>> to the external parameters:
>>>> >
>>>> >
>>>> > Case 1 (x1,x2)
>>>> > # x2 is second
>>>> >
>>>> >             Estimate   Std. Error       t value  Pr(>|t|)
>>>> > mxreg1  1.6724148 1.203377e-01  1.389767e+01 0.0000000
>>>> > mxreg2  2.5310286 1.878833e-02  1.347128e+02 0.0000000
>>>> >
>>>> > Case 2 (x2,x1)
>>>> > # i.e. x2 is now first
>>>> >
>>>> > mxreg1  2.5225382  0.04292725  58.7631024 0.000000e+00
>>>> > mxreg2  1.6782986  0.12769622  13.1428990 0.000000e+00
>>>> >
>>>> > Small differences in the coefficients are the result of the
>>>> optimizer. There may be an issues in the
>>>> > way starting parameters are being generated based on some recent
>>>> input from Josh Ulrich (still to investigate)
>>>> > and related to arima0 (used to generate start parameters), but
>>>> otherwise don’t see a large problem at first glance.
>>>> >
>>>> > Alexios
>>>> >
>>>> > > On Aug 19, 2018, at 5:46 PM, GALIB KHAN <
>>>> ghk18 using scarletmail.rutgers.edu> wrote:
>>>> > >
>>>> > > Recently I have discovered a problem with a package called rugarch
>>>> that
>>>> > > creates arma-garch models. The issue is that if you literally
>>>> change the
>>>> > > positions of the x variables (external regressors) then you get two
>>>> > > completely different results.
>>>> > >
>>>> > > In other words:
>>>> > >
>>>> > >   - model1 = (arma(2,2) + garch(1,0) + x1 + x2)
>>>> > >   - model2 = (arma(2,2) + garch(1,0) + x2 + x1)
>>>> > >   - rugarch's output is essentially saying that model1 != model2
>>>> > >   - When the correct result should be model1 == model2
>>>> > >
>>>> > > I may not know a lot of statistics but I know for a fact that if
>>>> you move
>>>> > > the x variables around, the output should still be the same.
>>>> > >
>>>> > > Am I wrong on this?
>>>> > >
>>>> > > Here's my stack exchange post that shows a generic R script proving
>>>> my
>>>> > > point: Should the positioning of the external regressors change the
>>>> output
>>>> > > of arma-garch? (Possible rugarch bug/error)
>>>> > > <
>>>> https://stackoverflow.com/questions/51900177/should-the-positioning-of-the-external-regressors-change-the-output-of-arma-garc
>>>> >
>>>> > >
>>>> > > Any feedback is welcomed.
>>>> > >
>>>> > > Thanks
>>>> > >
>>>> > >       [[alternative HTML version deleted]]
>>>> > >
>>>> > > _______________________________________________
>>>> > > R-SIG-Finance using r-project.org 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.
>>>> > >
>>>> >
>>>> >
>>>>
>>>>
>>>
>>
>> Galib Khan
>>
>>
>> On Sun, Aug 19, 2018 at 11:41 PM, GALIB KHAN <
>> ghk18 using scarletmail.rutgers.edu> wrote:
>>
>>> Alexios,
>>>
>>>
>>> Veryyyy interesting!!!!! No I cannot see any differences at all lol.
>>>
>>> I updated the code and indeed you are correct sir. Thank you for your
>>> time in investigating this.
>>>
>>> I will update my stack exchange post to reflect your answer in the
>>> morning.
>>>
>>> Again thank you for all your help!!!!
>>>
>>> Best,
>>> Galib Khan
>>>
>>>
>>> On Sun, Aug 19, 2018 at 11:19 PM, alexios galanos <alexios using 4dscape.com>
>>> wrote:
>>>
>>>> I did use the seed you provided.
>>>>
>>>> Use the following code for estimation:
>>>>
>>>> fit <- ugarchfit(spec = spec, data = as.matrix(temp$y),solver =
>>>> "nlminb", fit.control=list(scale=1))
>>>>
>>>> model_maker(var1)
>>>>          Estimate  Std. Error     t value     Pr(>|t|)
>>>> mu     -7.3998577  0.69086641 -10.7109821 0.0000000000
>>>> ar1     0.3387323  0.08280162   4.0908900 0.0000429721
>>>> ar2    -0.8834201  0.06569477 -13.4473414 0.0000000000
>>>> ma1    -0.2902069  0.08598589  -3.3750525 0.0007380161
>>>> ma2     0.8660807  0.06778418  12.7770320 0.0000000000
>>>> mxreg1  1.6782992  0.12769644  13.1428825 0.0000000000
>>>> mxreg2  2.5225382  0.04292728  58.7630625 0.0000000000
>>>> omega  12.0047145  0.82986864  14.4658010 0.0000000000
>>>> alpha1  0.0000000  0.07358520   0.0000000 1.0000000000
>>>> shape  63.0103309 98.49188643   0.6397515 0.5223341761
>>>>
>>>> model_maker(var2)
>>>>          Estimate  Std. Error     t value     Pr(>|t|)
>>>> mu     -7.3998549  0.69086651 -10.7109764 0.000000e+00
>>>> ar1     0.3387334  0.08280150   4.0909088 4.296861e-05
>>>> ar2    -0.8834206  0.06569433 -13.4474406 0.000000e+00
>>>> ma1    -0.2902081  0.08598562  -3.3750776 7.379487e-04
>>>> ma2     0.8660811  0.06778412  12.7770487 0.000000e+00
>>>> mxreg1  2.5225383  0.04292728  58.7630642 0.000000e+00
>>>> mxreg2  1.6782987  0.12769640  13.1428817 0.000000e+00
>>>> omega  12.0047142  0.82992363  14.4648419 0.000000e+00
>>>> alpha1  0.0000000  0.07359329   0.0000000 1.000000e+00
>>>> shape  63.0105962 98.49368444   0.6397425 5.223400e-01
>>>>
>>>>
>>>> I can’t see any “significant” differences, can you?
>>>> It’s completely related to the optimization/starting parameters. The
>>>> “scale” is documented and not on by default (perhaps it should be).
>>>>
>>>> Alexios
>>>>
>>>>
>>>> > On Aug 19, 2018, at 9:02 PM, GALIB KHAN <
>>>> ghk18 using scarletmail.rutgers.edu> wrote:
>>>> >
>>>> > Sorry for sending this again, I didn't include r-sig-finance in the
>>>> email address. I'm still adjusting in how to respond.
>>>> >
>>>> > Alexios,
>>>> >
>>>> > Did you set the set the seed to 1, because I'm looking at your
>>>> results and the numbers do not match with the numbers that I have provided.
>>>> >
>>>> > I understand why the coefficients' estimates are similar but it
>>>> doesn't explain why other columns such as the t-value and pr are off by a
>>>> large margin. Also estimates for mu, ar*, ma*, omega, alpha1, and shape may
>>>> have large differences.
>>>> >
>>>> > Take mu as an example:
>>>> > -7.538187e+00 - (-7.877120e+00) = 0.338933, isn't that considered a
>>>> large difference to the point where it's safe to say that these two values
>>>> are not similar?
>>>> >
>>>> > Another example is the t-values for x1 and x2:
>>>> > x1 = 8.799994e+01   -  5.509361e+02 = -462.9362
>>>> > x2 = 8.508606e+01   -  5.287634e+02 = -443.6773
>>>> >
>>>> > An more alarming case that unfortunately I cannot share due to the
>>>> data being sensitive is that when the x variables' positions are switched,
>>>> the p-values are not the same. The p-value for a particular external
>>>> regressor went from 0 to 0.4385.
>>>> >
>>>> > I will attempt to re-create a separate generic dataset that is
>>>> similar to the sensitive data that I am using.
>>>> >
>>>> >
>>>> > Galib Khan
>>>> >
>>>> >
>>>> > On Sun, Aug 19, 2018 at 10:06 PM, alexios galanos <
>>>> alexios using 4dscape.com> wrote:
>>>> > I run the code you provided and obtain the following results related
>>>> to the external parameters:
>>>> >
>>>> >
>>>> > Case 1 (x1,x2)
>>>> > # x2 is second
>>>> >
>>>> >             Estimate   Std. Error       t value  Pr(>|t|)
>>>> > mxreg1  1.6724148 1.203377e-01  1.389767e+01 0.0000000
>>>> > mxreg2  2.5310286 1.878833e-02  1.347128e+02 0.0000000
>>>> >
>>>> > Case 2 (x2,x1)
>>>> > # i.e. x2 is now first
>>>> >
>>>> > mxreg1  2.5225382  0.04292725  58.7631024 0.000000e+00
>>>> > mxreg2  1.6782986  0.12769622  13.1428990 0.000000e+00
>>>> >
>>>> > Small differences in the coefficients are the result of the
>>>> optimizer. There may be an issues in the
>>>> > way starting parameters are being generated based on some recent
>>>> input from Josh Ulrich (still to investigate)
>>>> > and related to arima0 (used to generate start parameters), but
>>>> otherwise don’t see a large problem at first glance.
>>>> >
>>>> > Alexios
>>>> >
>>>> > > On Aug 19, 2018, at 5:46 PM, GALIB KHAN <
>>>> ghk18 using scarletmail.rutgers.edu> wrote:
>>>> > >
>>>> > > Recently I have discovered a problem with a package called rugarch
>>>> that
>>>> > > creates arma-garch models. The issue is that if you literally
>>>> change the
>>>> > > positions of the x variables (external regressors) then you get two
>>>> > > completely different results.
>>>> > >
>>>> > > In other words:
>>>> > >
>>>> > >   - model1 = (arma(2,2) + garch(1,0) + x1 + x2)
>>>> > >   - model2 = (arma(2,2) + garch(1,0) + x2 + x1)
>>>> > >   - rugarch's output is essentially saying that model1 != model2
>>>> > >   - When the correct result should be model1 == model2
>>>> > >
>>>> > > I may not know a lot of statistics but I know for a fact that if
>>>> you move
>>>> > > the x variables around, the output should still be the same.
>>>> > >
>>>> > > Am I wrong on this?
>>>> > >
>>>> > > Here's my stack exchange post that shows a generic R script proving
>>>> my
>>>> > > point: Should the positioning of the external regressors change the
>>>> output
>>>> > > of arma-garch? (Possible rugarch bug/error)
>>>> > > <
>>>> https://stackoverflow.com/questions/51900177/should-the-positioning-of-the-external-regressors-change-the-output-of-arma-garc
>>>> >
>>>> > >
>>>> > > Any feedback is welcomed.
>>>> > >
>>>> > > Thanks
>>>> > >
>>>> > >       [[alternative HTML version deleted]]
>>>> > >
>>>> > > _______________________________________________
>>>> > > R-SIG-Finance using r-project.org 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.
>>>> > >
>>>> >
>>>> >
>>>>
>>>>
>>>
>>

	[[alternative HTML version deleted]]



More information about the R-SIG-Finance mailing list