[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
Wed Aug 22 19:26:21 CEST 2018


Alexios,

I went through your documenation for Rsolnp and I made the following
changes:

fit.control = list(scale = 0),solver.control =
list(tol=1e-20,delta=1e-20,outer.iter = 1000,inner.iter = 1000)

The sum of the total difference comes out to 4.729008e-05. Pretty darn
slick!!!!

So all is good!
Thanks for the catch!!!


On Sun, Aug 19, 2018, 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.
> > >
> >
> >
>
>
On Aug 19, 2018 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