[R] Garch warning
Spencer Graves
spencer.graves at pdf.com
Sun Jun 18 18:34:17 CEST 2006
KURT: In case you have time to look briefly at the 'garch' code, you
might be interested in this example. This email includes a
self-contained example that generates a warning that seems to me
unnecessary: "Warning in sqrt(pred$e) : NaNs produced". This occurs
because pred$e[1] = -0.121. This NaN is immediately replaced by NA in
the line after this 'sqrt(pred$e)'. If the user should be concerned
about this, I suggest you provide a more informative warning.
Otherwise, I suggest you modify the code to eliminate this warning; see
below.
ARUN KUMAR SAHA:
Thanks for the reproducible example. In addition to the warning you
mention, I also got "FALSE CONVERGENCE". To explore this issue, I
looked at the trace output; the following shows the first and the last
two rows:
IT NF F RELDF PRELDF RELDX STPPAR D*STEP NPRELDF
0 1 -0.284E+04
1 7 -0.284E+04 0.16E-02 0.23E-02 0.3E-03 0.9E+10 0.3E-04 0.98E+07
...
54 131 -0.293E+04 0.39E-14 0.40E-14 0.5E-13 0.2E+01 0.1E-12 -0.97E-02
55 133 -0.293E+04 -0.34E+07 0.81E-15 0.1E-13 0.2E+01 0.2E-13 -0.97E-02
***** FALSE CONVERGENCE *****
The huge negative final value for "RELDF" caught my eye. I don't
know what it means, but it seems strange to me, and could relate in some
way to the "FALSE CONVERGENCE".
To investigate this, I tried, "str(garch1)". This told me that
'garch1' is a list with 10 components, which I also saw on the "garch"
help page. I didn't see anything unusual in summary(garch1) and
plot(garch1). Moreover, garch1$residuals has an NA for the first
observation and no other NAs, which I confirmed using
sum(is.na(garch1$residuals)). However, I am NOT an expert on 'garch';
others might see things that I missed.
To explore this further, I set 'options(warn=2)'; this converts
warnings to errors. I got all the same printed output as before, except
that 'garch' stopped on the 'warning' and failed to return anything.
This told me that the warning is generated in the post-processing of the
fit, preparing the list of 10 components that it normally returns.
Then I listed "garch", set "debug(garch)" and repeated the call to
call to "garch" [after resetting options(warn=1)]. The .C calls to
"fit_garch", "pred_garch", and "ophess_garch" all seemed to work
normally. I then found the following line:
rank <- qr(com.hess$hess, ...)$rank
The proclaimed rank was 3, as it should be. However, to explore this
more, I tried the following:
eigen(com.hess$hess, symmetric=TRUE)
$values
[1] 4.804906e+11 9.671882e+03 5.837768e+02
$vectors
[,1] [,2] [,3]
[1,] 1.000000e+00 0.0001342715 -4.869677e-06
[2,] 6.262745e-06 -0.0827853262 -9.965674e-01
[3,] 1.342137e-04 -0.9965673945 8.278533e-02
The ratio of the first to the last eigenevalues is almost 1e9.
Conclusion: This matrix is ill conditioned, consistent with the "FALSE
CONVERGENCE" report. When we round the near-singular eigenvector to 2
significant digits, we get (0, -1, 0.08). This suggests to me that the
second parameter is poorly estimated. However, when I look at
summary(garch1), I see that the third, not the second parameter seems
unnecessary:
Estimate Std. Error t value Pr(>|t|)
a0 1.196e-04 1.996e-06 59.88 <2e-16 ***
a1 1.001e+00 4.125e-02 24.26 <2e-16 ***
b1 1.113e-14 1.070e-02 1.04e-12 1
The next step generated the warning:
> sigt <- sqrt(pred$e)
Warning in sqrt(pred$e) : NaNs produced
This seems to be more or less anticipated, as the next line
replaces the NaN produced by NA:
sigt[1:max(order[1], order[2])] <- rep(NA, max(order[1],
order[2]))
I'm suggesting to the maintainer that he consider replacing these two
steps by the following:
e. <- pred$e
e.[1:max(order[1], order[2])] <- rep(NA, max(order[1],
order[2]))
sigt <- sqrt(e.)
This looks to me like it does the same thing without generating this
strange warning message. If the warning is needed for some other
purpose, then the code should be modified to more explicitly advice the
user of the concern.
Next, I tried to refit the model without the third, allegedly
insignificant parameter:
garch10 <- garch(dat, 1:0)
<snip>
Warning: singular information
Maybe the eigenvector analysis was correct, and I misunderstood the
"summary". This led me to try the following:
garch01 <- garch(dat, 0:1)
This did NOT produce a warning.
Next, I tried 'anova':
anova(garch1, garch01)
Error in anova(garch1, garch01) : no applicable method for "anova"
This didn't work, but perhaps I can get the log(likelihoods):
> logLik(garch1)
'log Lik.' 2222.459 (df=3)
> logLik(garch01)
'log Lik.' 2222.481 (df=2)
Note that logLik for the second model is larger than the first; this
is a reflection of the "singular convergence".
Hope this helps.
Spencer Graves
Arun Kumar Saha wrote:
> Dear all R-users,
>
> Previously I posted the same query in R-Help. But I haven't got the
> solution. So I am posting the same query again. It is my strong hope that I
> will get my solution this time.
>
> I wanted to fit a Garch(1,1) model to the following data set by:
>
>> garch1 = garch(dat)
> But I got a warning message while executing, which is:
>
>> Warning message:
>> NaNs produced in: sqrt(pred$e)
>
> dat
> 0.018078 -0.0017 0.019082 0.000448 0.006055 -0.02908 -0.0171 0.136383 -
> 0.01098 0.014523 -0.02504 -0.01261 -0.01301 -0.01937 0.031302 0.001924
> 0.016204 -0.01743 -0.00676 0.016391 0.037661 0.009682 -0.00311 0.034842
> 0.007326 0.004407 0.025833 0.013588 0.014807 0.030997 -0.02917 -0.01277 -
> 0.02489 0.003631 0.020853 0.001613 0.016834 0.144082 -0.01198 0.009475 -
> 0.00944 -0.00731 0.00854 -0.0211 -0.00037 -0.01354 -0.009 -0.00294 0.03639
> 0.005408 0.001024 -0.01789 -0.00682 -0.02709 0.015037 0.014098 -0.02083 -
> 0.00259 0.003773 -0.01239 0.002841 0.006787 -0.0069 -0.00729 0.003035
> 0.001797 0.000785 0.001065 0 -0.00062 -0.00022 0.000673 0.001064 0.000168 -
> 0.0019 0.000224 0.000224 0 -0.00022 0.000616 0 0.000448 0.000224 -0.00106
> 0.137144 0.00453 -0.00234 0.009654 0.017495 0.043445 0.036829 0.12604 -
> 0.06833 0.075942 -0.0157 0.012691 0.0006 0.011262 -0.01698 0.001169 0.035891
> 0.026974 -0.01448 -0.01285 0.010269 -0.00944 -0.00627 -0.02959 -0.00226 -
> 0.00658 -0.01566 0.002465 -0.00595 -0.00071 -0.02837 0.011752 0.000191 -
> 0.01585 0.003368 0.017396 -0.01288 -0.01559 -0.00301 0.009209 -0.00362 -
> 0.00477 -0.00588 0.011478 0.002748 0.01776 0.025986 -0.01573 -0.00452 -
> 0.01353 -0.01166 -0.01138 -0.00419 0.020279 -0.00736 -0.0178 0.017386 -
> 0.04783 -0.00973 -0.01211 -0.01552 0.020297 -0.00268 0.020165 -0.03628
> 0.004313 0.002682 0.009511 -0.0543 0.016064 0.020505 0.005516 0.02107
> 0.00809 0.021399 0.104238 -0.10466 0.025576 -0.00577 -0.01866 -0.00736 -
> 0.00443 0.004892 0.012944 0.015257 -0.00633 -0.01304 -0.0065 -0.00791 -
> 0.00226 0.033313 0.011476 -0.0111 -0.00365 0.033186 0.02298 -0.0037 0.002046
> -0.01238 0.008637 -0.00032 -0.00685 -0.01352 -0.00169 0.011631 0.00227
> 0.003654 0.007346 0.001533 0.005212 0.009414 0.0202 0.011882 -0.00218 -
> 0.00316 7.54E-05 -0.02038 0.011471 -0.00396 -0.00658 0.006229 0.002735 -
> 0.00633 0.001307 -0.00802 -0.0007 -0.01103 0.008764 -0.00781 0.01373 -
> 0.00125 -0.01414 0.008101 0.001142 -0.011 0.010643 0.003889 0.006915 -
> 0.00304 -0.00221 0.003028 -0.00171 -0.00144 -0.00396 0.001579 -0.00854 -
> 0.00202 0.00621 0.01185 -0.01605 -0.0063 0.003573 0.001958 0.004974 -0.00326
> 0.005464 0.003653 -0.00027 0.00781 -0.00609 0.007569 -0.00209 0.001707
> 0.007578 0.008708 -0.00078 0.070744 -0.08202 -0.00271 0.018286 0.003212
> 0.00232 0.000183 0.034699 0.011807 -0.00204 0.000616 3.42E-05 0.014975 -
> 0.00183 0.010891 0.010186 -0.00403 0.01614 0.002654 -0.0057 0.005801
> 0.034555 0.00405 0.010423 -0.00521 -0.00558 -0.00762 -0.00405 0.001195
> 0.002731 -0.01309 -0.00283 0.004433 -0.0118 -0.01089 0.004808 -0.00773
> 0.006685 -0.00064 0.004273 0.038674 -0.02693 -0.02044 0.021999 0.007472
> 0.011074 -0.01286 0.00217 -0.00481 0.000436 0.000871 0.003755 0.003 0.00697
> 0.006982 -0.00576 -0.00119 -0.00242 -0.00257 -0.00242 0 -0.00808 0.001454
> 0.000958 0.000124 -0.01118 0.000406 -0.00976 -0.00117 -0.01069 -0.0011 -
> 0.00156 0.004814 -0.00563 0.004265 0.009255 -0.01358 -0.00346 0.003791 -
> 0.00395 -0.00068 0.005023 -0.00586 -0.00207 0.00035 0.0073 0.00158 0.006326
> 0.004164 0.011432 -0.0017 -0.00139 -0.00372 0.01356 0.014993 -0.00602
> 0.011983 -0.00898 -0.00183 0.008998 -0.00252 -0.00448 0.006338 0.002094 -
> 0.00744 0.000873 0.029343 -0.00155 0.005344 0.007062 0.004139 2.85E-05
> 0.00325 -0.00445 0.005597 0.004748 0.003125 0.002022 0.003193 0.002039 -
> 0.00017 0.005511 -0.00264 0.001279 8.34E-05 -0.00636 0 -2.83E-05 0.002344
> 0.005121 0.009747 0.001056 -0.0049 -0.00137 -0.00029 -0.00249 0.002091
> 0.010335 -0.00105 0.001502 -0.00051 -0.00113 0 -0.00023 -0.00098 0 0.008371
> -0.01234 0.00058 0.002855 0.000115 0.007058 -0.00513 0.002124 -0.00169 -
> 0.00242 0.0021 -0.00164 -0.00154 -0.00889 -0.0047 -0.00306 -0.00979 -0.0031
> 0.001016 -0.00467 -0.00952 -0.00147 -0.00335 -0.00361 -0.02078 -0.00466
> 0.007358 0.012572 0.011018 -0.00369 0.004359 0.002006 -0.00955 0.002938 -
> 0.00314 0.001294 -0.00912 0.000123 -0.01086 9.36E-05 0.006065 -0.00311
> 0.004562 -0.0004 -0.00276 -0.01364 -0.0005 0.007126 0.004463 0.005373
> 0.000836 0.005802 0.001599 -0.01348 -0.01842 -0.0056 -0.00329 -0.00526
> 0.001253 -0.00813 0.004265 0.00694 0.005237 -0.00771 9.63E-05 -0.00019
> 0.005506 -0.00026 -0.00195 0.003003 0.001944 0.000699 0.000508 0.00073
> 0.000222 0.005727 0.001041 -0.00404 -0.01018 -0.00307 -0.00865 0.001065 -
> 0.00686 0.002142 0.000907 0.000162 0.003807 -0.00177 -0.00398 -0.00399 -
> 0.00117 0.002893 -0.00081 -0.00068 0.002409 -0.00639 -0.0062 -0.00617
> 0.005078 -0.00292 0.00226 -0.04239 0.003596 -0.00117 -0.00131 0.003765
> 0.000793 0.006592 -0.00123 0.001917 0.003005 0.001876 -0.0016 -0.00229 -
> 0.00347 0.002996 -0.00203 -0.00273 0.002313 -0.00431 0.000187 0.002663 -
> 0.0008 -0.00227 -0.00227 0.002352 -0.00614 -0.00791 0.003025 -0.00174
> 0.004621 0.004621 0.001327 -0.00105 -0.00344 0.003162 -0.00364 0.001658 -
> 0.00161 -0.00086 -0.00179 -0.00061 0.00453 -0.0006 -0.00529 -0.00458 -0.0019
> 0.001411 -0.00148 -0.00888 -0.00045 0.001676 -0.00194 0.002029 0.001394
> 0.001812 0.002699 -0.00207 0.005783 -0.00469 -0.00156 0.008546 -0.00837 -
> 0.01456 -0.02116 0.004523 -0.00673 -0.00626 -0.0145 -0.00313 -0.03585 -
> 0.02317 0.01289 -0.00122 -0.01519 -0.03454 0.008239 -0.00756 -0.00419
> 0.00629 -0.00236 -0.00498 0.004631 0.008615 0.01143 0.016818 -0.00412 -
> 0.00034 0.001046 -0.00774 -0.00239 -0.01782 -0.00428 0.005898 0.004978 -
> 0.00457 -0.00544 0.00923 -0.00402 -0.0076 0 0.003472 -0.00344 0.006295
> 0.006864 -0.00096 0.001192 -0.00498 0.001576 0.006863 0.004808 0.000976
> 0.00086 0.002033 0.002714 0.004112 0.008735 -0.00377 -0.0002 -0.01089 -
> 0.00402 0.003514 0.00171 -0.00351 -0.05464 0.003282 -0.00508 -0.00342 -
> 0.00253 0.006963 -0.00322 -0.00157 -0.00454 -0.00054 0.002806 -0.00057
> 0.002048 -0.00731 -0.0055 0.000986 -0.00087 -0.04326 0.04659 0.005094
> 0.004819 0.002076 -0.00465 -0.00352 -0.00294 -0.00307 0.00022 0.008688
> 0.001182 0.00087 0.00065 -0.00989 0.005141 -0.00655 -0.00632 -0.00965 -
> 0.00497 0.00045 0.004568 0.004253 0.016834 -0.01762 -0.00521 0.000328 -
> 0.00801 -0.00676 -0.00363 -0.00152 -0.00411 0.002059 -0.00764 -0.00746
> 0.001618 0.001951 0.004091 -0.00159 -0.00164 -0.0014 0.0044 -0.00114
> 0.002384 -0.00119 -0.00602 0.031675 0.006157 -0.00487 0.00327 0.006087
> 0.004132 0.001138 0.000126 0.013054 0.000779 -0.00075 -0.00842 -0.00612 -
> 0.0018 0.002125 -0.00157 0.003201 0.001785 -0.00291 -0.00028 -0.00676
> 0.000185 0.003607 0.001109 0.005279 0.000459 -0.0022 -0.00249 0.003486 -
> 0.00841 -0.00529 0.00237 0.003607 0.001737 0.004438 0.001153 -0.00184 -
> 0.00338 0.001567 -9.39E-05 0.002127 0.007596 -0.00028 -6.20E-05 -0.00165 -
> 0.00495 -0.00012 -0.00471 -0.00498 -0.00713 0.008507 0.001599 -9.40E-05
> 0.003224 0.002466 0.012423 -0.00262 0.001542 -0.00126 0.001264 -0.00361 -
> 0.00509 0.003538 -0.00419 -0.00022 0.002021 0.005543 -0.00649 0.004877 -
> 0.00034 0.000155 -0.00292 -0.00022 -0.00134 0.000249 -0.00193 0.000125 -
> 0.00225 -0.00718 -0.00949 0.01128 0.002425 -0.00035 -0.00397 -0.00662
> 0.003302 -0.00096 -0.00447 0.009146 0.0044
> Can anyone tell me where the problem is?
>
> Thanks and regards
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list